字体属性设置之一:谷歌浏览器12px以下字体的显示;方法和原理

前言�:

chrome

谷歌浏览器默认的字体大小为16px;可以通过设置font-size来设置字体大小但是当设置到12px以下的时候字体大小不再改变;对于想设置其他大小的字体就很头疼,本文参考网上的方法,并对该方法以及原理介绍;并对该方法的弊端进行阐述并提出一种合适的解决办法。


1.适用对象:

block 或者inline-block类型;


2.方法(该方法先以p标签举例)方法:

通过设置transform:scale();

局限性:标签会发生移动(可以参考下面的代码和图片);

解决办法:设置transform-origin;

可以发现默认的是16px;

可以发现当设置0.8的缩放比例的时候;得到的字体大小:16pxX 0.8 = 12.8px

当在p中设置font-size:10px的时候比例缩放就以10px进行缩放;

(可以看到设置缩放之后标签发生移动,这个在下面会说到解决办法)

p中所有的元素都按照p的缩放比例进行缩放;


3.原理:

当对p加父容器和对p本身设置宽高以及边框;设置scale0.8,p标签自动上下居中(自身原来的宽高-缩放后的宽高得到的宽高平均分配到上下左右);用chrome自带的盒模型发现,p标签内容占据宽度依旧是300px X 300px;

当在p后面(div中)加入span元素发现span出了div的范围,说明等比缩放只是改变的原来标签形式上的大小;其原来所在文档流占据的空间位置并未因缩放而腾出来;

发现改变p的位置之后span仍然被挤出来。


该方法总结:

1.设置scale时时对整个p标签进行缩放(包含p本身及其内容的所有元素),而不单单是对字体的缩放;

2.进行缩放之后会将缩放之前的宽高-缩放之后的宽高的值自动分配到p标签的上下左右;但缩放并不会改变该标签原来在文档流中所占据的位置大小;不会因为缩放而腾出空间;

3.缩放后,缩放对象的位置会发生变化;

4.也是scale不适用于inline类型元素的原因(不能设置宽高;虽然自己的宽高靠内容撑起来;但是在设置css的时候无法获取宽高的准确信息(我是这么理解));所以如果想要设置inline类型的font-size需要先设置display:block或者inline-block。


4.解决办法(解决偏移问题):

即在缩放对象上加入:

-webkit-transform-origin: 0 0;

或者

-webkit-transform-origin-x: 0;

-webkit-transform-origin-y: 0;



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,786评论 1 92
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,327评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,788评论 0 2
  • CSS Q: HTML引入CSS的方式有哪些? A: HTML element的style属性,HTML内部sty...
    赵长安啊阅读 618评论 0 7
  • 好久,没心情、没心思去考虑读书,或者去写点自己认为值得记忆的东西。为什么?迷茫,受伤了。怎么读的进去,心里捋不出思...
    王坪_罗中庆阅读 4,046评论 6 5