在學習的過程當中,發現CSS有不少能夠描述單位的尺寸。好比px
,em
,rem
,vw
等等。平時也沒有深究,一來是沒時間,二來是在我學習清單中優先級太低。一直想完全弄明白,一直耽擱到如今。如今花上一點時間來整理一下,完全弄懂它。css
好比有一個圖片,細分,最小單位就是像素。也就是說,圖片由許多的像素構成。像素是小方塊,這些小方塊都有一個明確的位置和被分配的色彩數值,小方格顏色和位置就決定該圖像所呈現出來的樣子。html
一個設備生產出來,它們的像素就已經肯定了。iPhone5的分辨率是640x1136px
,表明屏幕由640行,1136列像素小方塊組成。
爲了理解像素和避免與CSS像素混淆,
能夠將物理像素當作物理小方塊。
好比iPhone5的像素是640X1136px,能夠當作640*1136個小方塊。
複製代碼
也叫作解析度,解像度。能夠從顯示分辨率與圖像分辨率兩個方向來分類。前端
CSS像素的單位也叫作px。它是圖像顯示的基本單元,既不是一個肯定的物理量,也不是一個點或者小方塊,而是一個抽象概念。因此在談論像素時必定要清楚它的上下文!css3
ctrl +/-
能夠擴大縮小屏幕,其實就是屏幕分辯率的調低/調高。ctrl +
屏幕放大,分辨率下降。em是相對長度單位。相對於當前對象內文本的字體尺寸。如當前對行內文本的字體尺寸未被人爲設置,則相對於瀏覽器的默認字體尺寸,瀏覽器字體默認爲16px。git
1em = 16px * 62.5% = 10px
em
當作px
使用。固然此時,1em = 10px
font-size:20px
,那麼在子容器裏的1em
就等於20px
。rem單位是相對於字體大小的html元素,也稱爲根元素。github
html {
font-size: 10px; /* 不建議設置 font-size: 62.5%; 在 IE 9-11 上有誤差,具體表現爲 1rem = 9.93px。 */
}
.sqaure {
width: 5rem; /* 50px */
height: 5rem; /* 50px */
}
複製代碼
<style>
html{ font-size: 20px; }
body{
font-size: 1.4rem; /* 1rem = 28px */
padding: 0.7rem; /* 0.7rem = 14px */
}
div{
padding: 1em; /* 1em = 28px */
}
span{
font-size:1rem; /* 1rem = 20px */
padding: 0.9em; /* 1em = 18px */
}
</style>
<html>
<body>
<div>
<span></span>
</div>
</body>
</html>
複製代碼
上面的例子中,發現了一個有意思的狀況。em 會層層繼承父元素的字體大小
,很容易形成字體大小的混亂。因此之後用rem
會更好。小程序
rpx 是微信小程序解決自適應屏幕尺寸的尺寸單位。微信小程序規定屏幕的寬度爲750rpx。微信小程序
不管是在iPhone6上面仍是其餘機型上面都是750rpx的屏幕寬度,拿iPhone6來說,屏幕寬度爲375px,把它分爲750rpx後, 1rpx = 0.5px = 1物理像素。瀏覽器
vw
,視窗寬度,1vw=視窗寬度的1%vh
,視窗高度,1vh=視窗高度的1%.box {
height: 100vmax;
width: 100vmax;
}
複製代碼
前端開發中像素的概念bash
CSS3中常見的單位 移動設備分辨率(終於弄懂了爲何移動端設計稿老是640px和750px)
歡迎訪問個人博客,會分享一些技術文章,一塊兒學習前端。