日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > CSS >内容正文

CSS

CSS的单位及css3的calc()及line-height百分比

發(fā)布時(shí)間:2025/7/14 CSS 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CSS的单位及css3的calc()及line-height百分比 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

說(shuō)在前面的話(huà)

陽(yáng)歷2014年已經(jīng)離我們遠(yuǎn)去,2015年接踵而來(lái)。祝大家新年快樂(lè)!在新的一年,我將有新的蛻變!這是2015年的第一篇文章,寫(xiě)一篇關(guān)于css的單位的文章吧!

單位介紹

說(shuō)到css的單位,大家應(yīng)該首先想到的是px,也就是像素,我們?cè)诰W(wǎng)頁(yè)布局中一般都是用px,但是近年來(lái)自適應(yīng)網(wǎng)頁(yè)布局越來(lái)越多,em和百分比也經(jīng)常用到了。然后隨著手機(jī)的流行,web app和hybrid app的開(kāi)發(fā),都用到了css3技術(shù),在css3中,新增了許多單位,rem、vw和vh、vmin和vmax、ch和ex等等,那現(xiàn)在對(duì)這些單位分別做一下詳細(xì)的介紹吧。

em

做前端的應(yīng)該對(duì)em不陌生,不是什么罕見(jiàn)的單位,是相對(duì)單位,參考物是父元素的font-size,具有繼承的特點(diǎn)。如果字體大小是16px(瀏覽器的默認(rèn)值),那么 1em = 16px。

不過(guò),這樣使用很復(fù)雜,很難很好的與px進(jìn)行對(duì)應(yīng),因此,前端開(kāi)發(fā)的前輩們總結(jié)了一個(gè)經(jīng)驗(yàn)

body { font-size: 62.5%; }

那么,這樣之后 1em = 10px 在布局等使用的時(shí)候好換算了很多。

百分比

百分比相信大家更不會(huì)陌生了,百分比一般寬泛的講是相對(duì)于父元素,但是并不是十分準(zhǔn)確。

1、對(duì)于普通定位元素就是我們理解的父元素

2、對(duì)于position: absolute;的元素是相對(duì)于已定位的父元素(offset parent)

3、對(duì)于position: fixed;的元素是相對(duì)于 ViewPort

viewport:可視窗口,也就是瀏覽器的window那么大。

例外情況

1、使用了padding、margin 等,實(shí)際百分比和你想要的百分比是有區(qū)別的。(關(guān)于這個(gè),解決方法之一,就是我們可以使用css3的calc()屬性,具體,您請(qǐng)繼續(xù)往下看,在文章最后我會(huì)解釋。)

2、line-height百分比的一些情況,通常結(jié)果是百分比 計(jì)算后的值。(關(guān)于這個(gè),您請(qǐng)繼續(xù)往下看。。。)

rem

rem支持IE9及以上,意思是相對(duì)于根元素html(網(wǎng)頁(yè)),不會(huì)像em那樣,依賴(lài)于父元素的字體大小,而造成混亂。使用起來(lái)安全了很多。

html {font-size: 62.5%; /**10 ÷ 16 × 100% = 62.5% 1rem = 10px **/} body {font-size: 1.4rem; /**1.4 × 10px = 14px **/} h1 { font-size: 2.4rem; /**2.4 × 10px = 24px**/}

這樣整個(gè)網(wǎng)頁(yè)都會(huì)比較統(tǒng)一!不會(huì)造成混亂!

vh 和 vw

IE10+ 和現(xiàn)代瀏覽器都支持這兩個(gè)單位。

vw Viewport寬度,?1vw?等于viewport寬度的1%

vh Viewport高度,?1vh?等于viewport高的的1%

vw和vh會(huì)隨著viewport變化自動(dòng)變化,再也不用js控制全屏了。

甚至有些人喪心病狂的字體大小都用vw和vh控制,來(lái)達(dá)到字體和viewport大小同步的效果。

vmin和vmax

IE10+ 和現(xiàn)代瀏覽器都已經(jīng)支持vmin

webkit瀏覽器之前不支持vmax,新版已經(jīng)支持,所有現(xiàn)代瀏覽器已經(jīng)支持,但是IE?全部?不支持vmax

vmin vw和vh中比較??的值

vmax vw和vh中比較?的值

這兩個(gè)屬性也會(huì)隨著viewport變化

ch和ex

IE9+ 和現(xiàn)代瀏覽器都已經(jīng)支持,這兩個(gè)單位時(shí)根據(jù)?當(dāng)前font-family?的相對(duì)單位。

ch 字符0的寬度

ex 小寫(xiě)字符x的高度

如下圖:

當(dāng)font-family改變的時(shí)候這兩個(gè)單位的值也會(huì)變化,不同字體表現(xiàn)的樣式不一樣。

css3的calc()

上面我們已經(jīng)提到了calc(),下面我們就具體說(shuō)一說(shuō)吧!

瀏覽器支持IE9+、FF4.0+、Chrome19+、Safari6+

calc()語(yǔ)法非常簡(jiǎn)單,就像我們小時(shí)候?qū)W加 (+)、減(-)、乘(*)、除(/)一樣,使用數(shù)學(xué)表達(dá)式來(lái)表示:

.haorooms {width: calc(expression); }

這樣padding和margin和百分比一起用,問(wèn)題就可以解決了。

例如,我們margin是20px。那么我們就可以寫(xiě)成

.haorooms{width: calc(100% - 20px); //注:減號(hào)前后要有空格,否則很可能不生效!! }

也可以這么用:

.box {background: #f60; height: 50px; padding: 10px; border: 5px solid green; width: 90%;/*寫(xiě)給不支持calc()的瀏覽器*/ width:-moz-calc(100% - (10px + 5px) * 2); width:-webkit-calc(100% - (10px + 5px) * 2); width: calc(100% - (10px + 5px) * 2); }

line-height百分比

line-height百分比在面試中可能經(jīng)常問(wèn)到。例如你知道line-height:120%和line-height:1.2的區(qū)別嗎?

現(xiàn)在就說(shuō)一下行高帶單位和不帶單位的區(qū)別,例如下面的例子:

line-height:26px; 表示行高為26個(gè)像素 line-heigth:120%;表示行高為當(dāng)前字體大小的120% line-height:2.6em; 表示行高為當(dāng)前字體大小的2.6

帶單位的行高都有繼承性,其子元素繼承的是計(jì)算值,如父元素的字體大小為14px,定義行高line-height:2em;則計(jì)算值為 28px,不會(huì)因其子元素改變字體尺寸而改變行高。(例如:父元素14px,子元素12px,那么行高就是28px,子元素雖然字體是12,行高還是父元素的行高)

line-height:2.6;表示行高為當(dāng)前字體大小的2.6

不帶單位的行高是直接繼承,而不是計(jì)算值,如父元素字體尺寸為14px,行高line-height:2;他的行高為28px;子元素尺寸為12px,不需要再定義行高,他默認(rèn)的行高為24px。(例如:子元素12px,他的行高是24,不會(huì)繼承父元素的28)

轉(zhuǎn)載于:https://www.cnblogs.com/lidongfeng/p/5179691.html

總結(jié)

以上是生活随笔為你收集整理的CSS的单位及css3的calc()及line-height百分比的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。