這裡扯一下實際畫素問題,一般來說,px就是對應裝置的物理畫素,然而如果輸出裝置的解析度與電腦顯示器大不相同,輸出效果就會有問題。例如印表機輸出到紙張上,其解析度比電腦螢幕要高許多,如果不縮放,直接使用裝置的物理畫素,那電腦上的照片由600DPI的印表機打出來就比用顯示器看小了約6倍。所以很多時候在實際工作中,應該多考慮一點。
em是相對長度單位,相對於當前文字的字型尺寸。在CSS中,“em”實際上是一個垂直測量。一個em等於任何字型中的字母所需要的垂直空間,而和它所佔據的水平空間沒有任何的關係。
因此: 如果字型大小是16px,那麼1em=16px。如果規定body字型為1em=16px;那麼body {font-size:1em;}就是預設的16px;
在ie下,應該使用html{font-size:100%;};重要的事情說八遍。。。
附上一張表;16px=1em;所以應用的時候你會寫很多小數點。。。
當然,目前已經有自動轉行的外掛了。
如果寬960px就是60em;
html {
font-size: 100%;
}
body {
font-size: 1em;
}
#container {
width: 60em;
}複製程式碼
but,但是,在實際應用中,css會繼承父級的css特性,這點好也不好,如果父級設定了一些字型大小,那麼接下來的子元素在運用時就會遇到,1em等於幾的問題,預設16,此時呢?
如果p標籤內設定了一個字型大小12px,然後有個圖片寬度36px,此時1em=12px; 圖片寬度3em;如果多次遇見這樣的問題,是不是很蛋疼,每次都要再算一次,好吧! 不想寫了。
css3來了,然後有了rem這種好東西。rem相對於html根元素,rem為元素設定字型大小時,仍然是相對大小,但相對的只是HTML根元素。這個單位可謂集相對大小和絕對大小的優點於一身,通過它既可以做到只修改根元素就成比例地調整所有字型大小,又可以避免字型大小逐層複合的連鎖反應。
css這種逆人類的思維模式,我覺得很可怕,不知道當年的css委員會都是些什麼大神。可能當年只要顯示就有人看,如今千萬網站無人問。
就寫到這吧! 本來也不是什麼高深的技術。囉嗦的很夠了。