CSS單位

其實(shí)CSS中的長(zhǎng)度單位一共有8個(gè)榨乎,分別是px怎燥,em,pt蜜暑,ex铐姚,pc,in肛捍,mm隐绵,cm。(ex:相對(duì)長(zhǎng)度單位拙毫。相對(duì)于字符“x”的高度“x-height”依许。此高度通常為字體尺寸的一半。如當(dāng)前對(duì)行內(nèi)文本的字體尺寸未被人為設(shè)置恬偷,則相對(duì)于瀏覽器的默認(rèn)字體尺寸悍手。pc:派卡(Pica),絕對(duì)長(zhǎng)度單位袍患。相當(dāng)于我國(guó)新四號(hào)鉛字的尺寸坦康。in:英寸(Inch),絕對(duì)長(zhǎng)度單位诡延。mm:毫米(Millimeter)滞欠,絕對(duì)長(zhǎng)度單位。cm:厘米(Centimeter)肆良,絕對(duì)長(zhǎng)度單位筛璧。)

1、px:像素(Pixel),相對(duì)長(zhǎng)度單位惹恃,相對(duì)于設(shè)備的長(zhǎng)度單位夭谤,像素是相對(duì)于顯示器屏幕分辨率而言的。譬如巫糙,WONDOWS的用戶所使用的分辨率一般是96像素/英寸朗儒。而MAC的用戶所使用的分辨率一般是72像素/英寸。

2参淹、pt:點(diǎn)(Point)醉锄,絕對(duì)長(zhǎng)度單位。確切的說法是一個(gè)專用的印刷單位“磅”浙值,大小為1/72英寸恳不。用于印刷業(yè)。

3开呐、em:相對(duì)長(zhǎng)度單位烟勋。相對(duì)于當(dāng)前對(duì)象內(nèi)文本的字體尺寸规求。如當(dāng)前對(duì)行內(nèi)文本的字體尺寸未被人為設(shè)置,則相對(duì)于瀏覽器的默認(rèn)字體尺寸神妹。任意瀏覽器的默認(rèn)字體大小都是16px颓哮。em的值并不是固定的家妆;em會(huì)繼承父級(jí)元素的字體大小鸵荠。

4、rem:使用rem為元素設(shè)定字體大小時(shí)伤极,仍然是相對(duì)大小蛹找,但相對(duì)的只是HTML根元素。這個(gè)單位可謂集相對(duì)大小和絕對(duì)大小的優(yōu)點(diǎn)于一身哨坪,通過它既可以做到只修改根元素就成比例地調(diào)整所有字體大小庸疾,又可以避免字體大小逐層復(fù)合的連鎖反應(yīng)。

5当编、vw届慈、vh:vh等于viewport高度的1/100.例如,如果瀏覽器的高是900px,1vh求得的值為9px忿偷。同理金顿,如果顯示窗口寬度為750px,1vw求得的值為7.5px。

6鲤桥、vmin揍拆、vmax:vh和vm總是與視口的高度和寬度有關(guān),與之不同的茶凳,vmin和vmax是與這次寬度和高度的最大值或最小值有關(guān)嫂拴,取決于哪個(gè)更大和更小。例如贮喧,如果瀏覽器設(shè)置為1100px寬筒狠、700px高,1vmin會(huì)是7px,1vmax為11px箱沦。然而辩恼,如果寬度設(shè)置為800px,高度設(shè)置為1080px饱普,1vmin將會(huì)等于8px而1vmax將會(huì)是10.8px运挫。

在頁(yè)面上可以看到,72px的字體要比72pt的字體小一些套耕,但96px正好和72pt大小一樣谁帕。(因?yàn)閣indow下,屏幕分辨率一般是96像素/英寸冯袍,而1pt大小為1/72英寸)

分別用800×600和1024×768看頁(yè)面的文字匈挖,明顯高分辨率下碾牌,文字就變小。而且儡循,關(guān)鍵的是舶吗,無論用px還是pt,都會(huì)變小择膝。pt并沒有如有些人所說誓琼,是“絕對(duì)”的,“固定”的肴捉。

但如果用打印機(jī)把這頁(yè)面打印出來腹侣,就可以看到:無論屏幕用什么分辨率,打印出來大小都是一樣的(這是當(dāng)然的)齿穗。

“屏幕”上的各種信息傲隶,包括文字、圖片窃页、表格等等跺株,都會(huì)隨屏幕的分辨率變化而變化,一個(gè)100px寬度大小的圖片脖卖,在800×600分辨率下乒省,要占屏幕寬度的1/8,但在1024×768下胚嘲,則只占約1/10作儿。所以如果在定義字體大小時(shí),使用px作為單位馋劈,那一旦用戶改變顯示器分辨率從800到1024攻锰,用戶實(shí)際看到的文字就要變“小”(自然長(zhǎng)度單位)。

那是不是用pt做單位就沒這樣的問題呢妓雾?錯(cuò)娶吞!問題同樣出現(xiàn)。剛才的例子已經(jīng)很清楚的說明械姻,在不同分辨率下妒蛇,無論是px還是pt,都會(huì)改變大小楷拳。

Mac機(jī)怎么情況不清楚绣夺,在Windows里,默認(rèn)的顯示設(shè)置中欢揖,把文字定義為96DPI(PPI陶耍,微軟都將DPI和PPI混為一體,我們也就無須較真了)她混。這樣的定義烈钞,說明了:1px=1/96英寸泊碑。聯(lián)系pt的概念,1pt=1/72英寸毯欣,可以得出馒过,在這樣的設(shè)置中,1px=0.75pt酗钞,常見的宋體9pt=12px腹忽。在顯示器分辨率不變的基礎(chǔ)上(比如現(xiàn)在常用的1024×768),1px大小也就固定不變算吩,改變顯示設(shè)置留凭,調(diào)整為144DPI,可以得出偎巢,1px=0.5pt,常見的宋體9pt=18px兼耀。原先用12px來組成的一個(gè)文字压昼,現(xiàn)在需要18px來組成,px多了瘤运,文字就“大”了窍霞,更易閱讀了。

所以拯坟,px和pt的使用區(qū)別但金,只有當(dāng)用戶改變默認(rèn)的96DPI下才會(huì)產(chǎn)生:使用px定義文字,無論用戶怎么設(shè)置郁季,都不會(huì)改變大欣淅!;使用pt定義文字梦裂,當(dāng)用戶設(shè)置超過96DPI的值似枕,數(shù)值越大,字體就越大年柠。

(附公式:pt = px * dpi / 72)

在網(wǎng)頁(yè)設(shè)計(jì)中凿歼,面向用戶的屏幕的基本單位是px,因此使用px作為單位是最簡(jiǎn)單也最容易理解的冗恨,而pt也不過是通過了Windows的設(shè)置乘上了一個(gè)比率轉(zhuǎn)變成px再顯示答憔,算是繞了個(gè)圈子。

但在Word或Photoshop中掀抹,使用pt就相當(dāng)方便虐拓。因?yàn)槭褂肳ord和Photoshop的主要目的都不是為了屏幕瀏覽,而是輸出打印渴丸。

PPI(DPI):pixel(dot)per inch侯嘀,每英寸的像素(點(diǎn))數(shù)另凌,是一個(gè)率,表示了“清晰度”戒幔,“精度”吠谢。

1em=16px。那么12px=0.75em,10px=0.625em诗茎。為了簡(jiǎn)化font-size的換算工坊,需要在css中的body選擇器中聲明Font-size=62.5%,這就使em值變?yōu)?6px*62.5%=10px, 這樣12px=1.2em, 10px=1em,也就是說只需要將你的原來的px數(shù)值除以10敢订,然后換上em作為單位就行了王污。

注意:避免字體大小的重復(fù)聲明。也就是避免1.2 * 1.2= 1.44的現(xiàn)象楚午。比如說你在#content中聲明了字體大小為1.2em昭齐,那么在聲明p的字體大小時(shí)就只能是1em,而不是1.2em, 因?yàn)榇薳m非彼em矾柜,它因繼承#content的字體高而變?yōu)榱?em=12px阱驾。

相對(duì)單位em是相對(duì)于元素本身的字體大小的。在css中唯一例外的是font-size屬性怪蔑,它的em和ex值指的是相對(duì)父元素的字體大小里覆。

除了font-size之外其他屬性的em計(jì)算相對(duì)于元素自身字體大小。

可以看出缆瓣,子元素的字體大小是父元素字體大小的50%喧枷,而子元素的margin-right值是自己字體大小的20%。且子元素的寬度用em表示也是基于自己字體大小弓坞,而不是父元素的寬度哦隧甚!

ex單位被定義為”當(dāng)前字體的x-height或者一個(gè)em的一半”。給定的字體的x-height是指那個(gè)字體的小寫x的高度昼丑。通常呻逆,這是這個(gè)字體的中間的標(biāo)志。

x-height:小寫字母x的高度

對(duì)于這種單位有很多的用途菩帝,大多數(shù)是用于排版的微調(diào)咖城。例如,sup元素,代表上標(biāo)呼奢,可以用相對(duì)定位和一個(gè)1ex的底部值在行內(nèi)被推高宜雀。類似地,你可以拉低一個(gè)下標(biāo)元素握础。

PS:calc()= calc(四則運(yùn)算)

說明:用于動(dòng)態(tài)計(jì)算長(zhǎng)度值辐董。需要注意的是,運(yùn)算符前后都需要保留一個(gè)空格禀综,例如:width: calc(100% - 10px)简烘;

任何長(zhǎng)度值都可以使用calc()函數(shù)進(jìn)行計(jì)算苔严;

calc()函數(shù)支持 "+", "-", "*", "/" 運(yùn)算;

calc()函數(shù)使用標(biāo)準(zhǔn)的數(shù)學(xué)運(yùn)算優(yōu)先級(jí)規(guī)則孤澎;

下面看對(duì)于calc()的應(yīng)用:

此時(shí)的效果很簡(jiǎn)單届氢,就是div.box完全遮蓋了div.demo,如下圖所示:

下面覆旭,在div.box上添加10px的內(nèi)距padding退子,同時(shí)添加5px的border,div.demo上添加了一個(gè)padding:3px 0;

這個(gè)時(shí)候div.box的寬度大于了其容器div.demo的總寬度型将,從而撐破容器伸出來了寂祥,如圖所示:

為了解決撐破容器的問題,以前我們只能去計(jì)算div.box的寬度七兜,用容器寬度減去padding和border的值丸凭,但有時(shí)候,我們苦于不知道元素的總寬度惊搏,比如說是自適應(yīng)的布局贮乳,只知道一個(gè)百分值,但其他的值又是px之類的值恬惯,這就是難點(diǎn),死卡住了亚茬。

有兩種解決這個(gè)問題的方法:1酪耳、box-sizing 2、calc()刹缝。隨著CSS3的出現(xiàn)碗暗,其中利用box-sizing來改變?cè)氐暮心P皖愋蛯?shí)使實(shí)現(xiàn)效果,但今天我們學(xué)習(xí)的calc()方法更是方便梢夯。

1言疗、div.box的box-sizing設(shè)置為border-box;

效果:

div.demo:

div.box:

2颂砸、使用calc()

知道總寬度是100%噪奄,在這個(gè)基礎(chǔ)上減去boder的寬度(5px * 2 = 10px),在減去padding的寬度(10px * 2 = 20px),即"100% - (10px + 5px) * 2 = 30px" 人乓,最終得到的值就是div.box的width值:

這樣一來勤篮,通過calc()計(jì)算后,div.box不在會(huì)超出其容器div.demo的寬度色罚,如圖所示:

rem來做移動(dòng)端的響應(yīng)式適配:

參考文獻(xiàn):http://web.jobbole.com/82490/

calc()參考文獻(xiàn):http://www.w3cplus.com/css3/how-to-use-css3-calc-function.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碰缔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子戳护,更是在濱河造成了極大的恐慌金抡,老刑警劉巖瀑焦,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異梗肝,居然都是意外死亡榛瓮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門统捶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榆芦,“玉大人,你說我怎么就攤上這事喘鸟〈倚澹” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵什黑,是天一觀的道長(zhǎng)崎淳。 經(jīng)常有香客問我,道長(zhǎng)愕把,這世上最難降的妖魔是什么拣凹? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮恨豁,結(jié)果婚禮上嚣镜,老公的妹妹穿的比我還像新娘。我一直安慰自己橘蜜,他們只是感情好菊匿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著计福,像睡著了一般跌捆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上象颖,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天佩厚,我揣著相機(jī)與錄音,去河邊找鬼说订。 笑死抄瓦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的克蚂。 我是一名探鬼主播闺鲸,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼埃叭!你這毒婦竟也來了摸恍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎立镶,沒想到半個(gè)月后壁袄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡媚媒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年嗜逻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缭召。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栈顷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嵌巷,到底是詐尸還是另有隱情萄凤,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布搪哪,位于F島的核電站靡努,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏晓折。R本人自食惡果不足惜惑朦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望漓概。 院中可真熱鬧漾月,春花似錦、人聲如沸胃珍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)堂鲜。三九已至,卻和暖如春护奈,著一層夾襖步出監(jiān)牢的瞬間缔莲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工霉旗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痴奏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓厌秒,卻偏偏與公主長(zhǎng)得像读拆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸵闪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案檐晕? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,748評(píng)論 1 92
  • 我們很容易無法擺脫的使用我們所熟悉的CSS技術(shù),當(dāng)新的問題出現(xiàn),這樣會(huì)使我們處于不利的地位辟灰。 隨著Web繼續(xù)的發(fā)展...
    yo_yo_閱讀 347評(píng)論 0 0
  • CSS 一共有四種引入方式 外聯(lián)式1.link2.@import url 嵌入式style 標(biāo)簽一般放在head部...
    petertou閱讀 642評(píng)論 2 0
  • CSS 單位 尺寸 單位描述 %百分比 in英寸 cm厘米 mm毫米 em1em等于當(dāng)前的字體尺寸个榕。2em等于當(dāng)前...
    love2013閱讀 393評(píng)論 0 0
  • 1. px 如果全篇用px布局會(huì)暗藏一個(gè)蛋疼的問題,就是當(dāng)用戶和Ctrl滾頁(yè)面的時(shí)候(說白了就是ctrl+芥喇,ctr...
    wen4e閱讀 747評(píng)論 0 2