-webkit-text-size-adjust 的本職是用于mobile的,見規(guī)范 CSS Mobile Text Size Adjustment Module Level 1 和 apple 的 Safari Web Content Guide。
之所以現(xiàn)在的桌面版webkit瀏覽器支持他,是因?yàn)閷?shí)際上這是一下bug。Bug 56543 – CSS property "-webkit-text-size-adjust" means different things in Safari and iOS這個(gè)bug在最新版的 WebKit Nightly Builds 里已經(jīng)被修復(fù)了。這屬性現(xiàn)在的一般用處是防止iPhone在堅(jiān)屏轉(zhuǎn)向橫屏?xí)r放大文字(注意,就算viewport設(shè)置了maximum-scale=1.0 文字還是會(huì)放大的)。而且iPhone和iPad的默認(rèn)設(shè)定是不一樣的iPhone默認(rèn)設(shè)定 -webkit-text-size-adjust: auto;iPad默認(rèn)設(shè)定-webkit-text-size-adjust: none;所以iPad默認(rèn)是不調(diào)節(jié)的。此屬性還支持百分比,這在當(dāng)前的桌面版的webkit瀏覽器是不支持的,所以如果不想讓iPhone橫堅(jiān)屏切換的時(shí)候調(diào)節(jié)文字,用-webkit-text-size-adjust: 100%;絕對(duì)不能用-webkit-text-size-adjust: none;這會(huì)導(dǎo)致仍然支持 -webkit-text-size-adjust: none;的桌面版的webkit瀏覽器無法人為放大文字大小,嚴(yán)重影響可用性。關(guān)于如何在chrome里實(shí)現(xiàn)小于12px的文字。當(dāng)然文字縮小到12px以下本來就一定程度影響到可用性了,建議無視chrome的這個(gè)特性。硬要實(shí)現(xiàn)的話,我想到的一個(gè)變通方法是先用js判斷是否為chrome (至今還沒聽說有區(qū)分safari 和 chrome 的 css hack )var isChrome = !!window.chrome;再用-webkit-transform: scale( ) 縮小到合適值。如果你非得要font-size:10px(使用em單位時(shí)方便計(jì)算),你會(huì)發(fā)現(xiàn)在chrome里最小還是12px,就算你設(shè)置了font-size: 10px;-webkit-text-size-adjust: 100%;(或-webkit-text-size-adjust: none;)也沒用。原因如下:
-webkit-text-size-adjust: 100%|none;
- 只對(duì)chrome27.0 版本以下有效,27.0以上版本無效;
- 只對(duì)英文才有效,對(duì)中文無效。
在新版的chrome中,已經(jīng)禁止了改屬性,建議使用CSS3中的方法:transform:scale(0.875);當(dāng)使用transform:scale(0.875)時(shí); 不僅是文字變小了,整個(gè)文字所在的容器也同時(shí)會(huì)變小。
綜上所述:
推薦采用-webkit-text-size-adjust: 100%;
ps:如果要用小于12px字體時(shí),用-webkit-transform: scale( ) 縮小到合適值。