前言?:
chrome
谷歌瀏覽器默認(rèn)的字體大小為16px柬泽;可以通過設(shè)置font-size來設(shè)置字體大小但是當(dāng)設(shè)置到12px以下的時候字體大小不再改變蛇耀;對于想設(shè)置其他大小的字體就很頭疼结闸,本文參考網(wǎng)上的方法唇兑,并對該方法以及原理介紹;并對該方法的弊端進行闡述并提出一種合適的解決辦法桦锄。
1.適用對象:
block 或者inline-block類型;
2.方法(該方法先以p標(biāo)簽舉例)方法:
通過設(shè)置transform:scale();
局限性:標(biāo)簽會發(fā)生移動(可以參考下面的代碼和圖片)扎附;
解決辦法:設(shè)置transform-origin;
可以發(fā)現(xiàn)默認(rèn)的是16px;
可以發(fā)現(xiàn)當(dāng)設(shè)置0.8的縮放比例的時候结耀;得到的字體大小:16pxX 0.8 = 12.8px
當(dāng)在p中設(shè)置font-size:10px的時候比例縮放就以10px進行縮放;
(可以看到設(shè)置縮放之后標(biāo)簽發(fā)生移動留夜,這個在下面會說到解決辦法)
p中所有的元素都按照p的縮放比例進行縮放;
3.原理:
當(dāng)對p加父容器和對p本身設(shè)置寬高以及邊框图甜;設(shè)置scale0.8碍粥,p標(biāo)簽自動上下居中(自身原來的寬高-縮放后的寬高得到的寬高平均分配到上下左右);用chrome自帶的盒模型發(fā)現(xiàn)黑毅,p標(biāo)簽內(nèi)容占據(jù)寬度依舊是300px X 300px嚼摩;
當(dāng)在p后面(div中)加入span元素發(fā)現(xiàn)span出了div的范圍,說明等比縮放只是改變的原來標(biāo)簽形式上的大锌笫荨枕面;其原來所在文檔流占據(jù)的空間位置并未因縮放而騰出來;
發(fā)現(xiàn)改變p的位置之后span仍然被擠出來。
該方法總結(jié):
1.設(shè)置scale時時對整個p標(biāo)簽進行縮放(包含p本身及其內(nèi)容的所有元素)缚去,而不單單是對字體的縮放潮秘;
2.進行縮放之后會將縮放之前的寬高-縮放之后的寬高的值自動分配到p標(biāo)簽的上下左右;但縮放并不會改變該標(biāo)簽原來在文檔流中所占據(jù)的位置大幸捉帷唇跨;不會因為縮放而騰出空間;
3.縮放后衬衬,縮放對象的位置會發(fā)生變化;
4.也是scale不適用于inline類型元素的原因(不能設(shè)置寬高改橘;雖然自己的寬高靠內(nèi)容撐起來;但是在設(shè)置css的時候無法獲取寬高的準(zhǔn)確信息(我是這么理解))滋尉;所以如果想要設(shè)置inline類型的font-size需要先設(shè)置display:block或者inline-block。
4.解決辦法(解決偏移問題):
即在縮放對象上加入:
-webkit-transform-origin: 0 0;
或者
-webkit-transform-origin-x: 0;
-webkit-transform-origin-y: 0;