久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

詳述css中的百分比值

詳細(xì)理解css中的百分比值的含義

來源于:

https://segmentfault.com/a/1190000000590998

要理解諸如100%這樣的百分比值,其關(guān)鍵點(diǎn)是要明白,百分比是一定有其對(duì)應(yīng)的參照值的。也就是說,百分比值是一種相對(duì)值,任何時(shí)候要分析它的效果,都需要正確找到它的參照

一個(gè)css屬性值從定義到最終實(shí)際使用,是存在一個(gè)過程的。這其中涉及到Specified Values(指定值)、Computed Values(計(jì)算值)、 Used Values(使用值)、Actual Values(實(shí)際值)等概念,可以想見到,百分比值實(shí)際會(huì)在這個(gè)過程中,根據(jù)它的參照計(jì)算轉(zhuǎn)化為一個(gè)絕對(duì)值(比如100px),然后再被應(yīng)用。這就是百分比值的意義。

更多關(guān)于css屬性值的處理過程的信息,可以查看Value Processing

百分比值的作用?

簡(jiǎn)單地說,就是可變性。這可以衍生出自適應(yīng)、響應(yīng)式等看起來很有用的東西。

比如說,一個(gè)固定寬高的盒子,然后希望盒子內(nèi)有一個(gè)絕對(duì)定位的,寬高和盒子一樣的蓋板(就這樣稱呼吧...),下面這樣的寫法會(huì)很合適:

.box{position:relative;width:100px;height:100px;}
.box_cover{position:absolute;width:100%;height:100%;left:0;top:0;}

這里使用百分比值的好處的是,如果需要修改盒子的尺寸,只需要修改盒子的寬高,而蓋板會(huì)自動(dòng)保持和盒子的尺寸一致。

再一個(gè)例子是Bootstrap的柵格系統(tǒng):

詳述css中的百分比值

可以看到,柵格系統(tǒng)里會(huì)用到百分比值來實(shí)現(xiàn)確切的對(duì)空間的劃分。百分比值是相對(duì)的,自適應(yīng)的,因此柵格系統(tǒng)可以很好地用于響應(yīng)式設(shè)計(jì)。

可用百分比值的常見css屬性

width & height

寬和高在使用百分比值時(shí),其參照都是元素的包含塊(Containing Block,詳情)。width參照包含塊的寬度,height參照包含塊的高度。在大部分情況下,包含塊就是父元素的內(nèi)容區(qū)(盒模型里的content)。

我以前寫過width:100%; height:100%;這樣的代碼來實(shí)現(xiàn)尺寸和父元素一致。但我發(fā)現(xiàn)有時(shí)候?qū)挾仁欠弦馑迹?00%)的,但高度卻沒有效果。請(qǐng)看下面這個(gè)示例:

詳述css中的百分比值

可以看到,直接父元素(包含塊)是否有明確的高度定義,會(huì)影響height為百分比值時(shí)的結(jié)果。

關(guān)于這一點(diǎn)的詳細(xì)解釋是,當(dāng)一個(gè)元素的高度使用百分比值,如果其包含塊沒有明確的高度定義(也就是說,取決于內(nèi)容高度),且這個(gè)元素不是絕對(duì)定位,則該百分比值等同于autoauto是初始默認(rèn)值,所以看起來就像是“失效”了。

如果元素是根元素(<html>),它的包含塊是視口(viewport)提供的初始包含塊(initial containing block),初始包含塊任何時(shí)候都被認(rèn)為是有高度定義的,且等于視口高度。所以,<html>標(biāo)簽的高度定義百分比總是有效的,而如果你希望在<body>里也用高度百分比,就一定要先為<html>定義明確的高度。這就是為什么在固定頁腳一文中,有html, body{height:100%;}這樣的寫法。

margin & padding

這2個(gè)屬性屬于混合屬性,也通過一個(gè)例子說明:

詳述css中的百分比值

可以分析得到,對(duì)于marginpadding,其任意方向的百分比值,參照都是包含塊的寬度

為什么會(huì)多個(gè)方向都取包含塊的寬度作為參照呢?在我看來,包含塊的寬度在塊布局的排版中是最有用的(想象一下word里輸入文字,到寬度邊緣后換行的場(chǎng)景),對(duì)應(yīng)的,水平方向的內(nèi)外邊距一定要參照包含塊的寬度。再考慮垂直方向的內(nèi)外邊距,它們?nèi)绻缓退椒较蛉∠嗤膮⒄瘴铮蜁?huì)因?yàn)椴灰恢露茈y使用。所以,總體來說,統(tǒng)一以包含塊的寬度作為參考,會(huì)具有相對(duì)最好的可用性。

嚴(yán)格地說,參照是包含塊的寬度,是在樣式屬性writing-mode為默認(rèn)值時(shí)的情況。不過這個(gè)屬性極少被用到,所以在此不做考慮。

border-radius

你也許見過有人用下面的代碼來讓一個(gè)矩形變成剛好的圓形(請(qǐng)?bào)w會(huì)這個(gè)“剛好”):

.circle{border-radius:50%;}

對(duì)此的解釋是,為一個(gè)元素的border-radius定義的百分比值,參照物是這個(gè)元素自身的尺寸。也就是說,假如這個(gè)元素寬是60px,高是50px(border-box的尺寸),那么border-radius:50%的結(jié)果等同于border-radius:30px/20px;

如果你還疑惑這里帶/的圓角寫法,請(qǐng)查看MDN對(duì)border-radius的說明

background-position

background-position的初始值就是百分比值0% 0%。下面是一個(gè)使用示例:

詳述css中的百分比值

background-position的百分比值,取的參照是一個(gè)減法計(jì)算值,由放置背景圖的區(qū)域尺寸,減去背景圖的尺寸得到,可以為負(fù)值。對(duì)照上面的示例,思考一下,應(yīng)該可以感受到,以這個(gè)減法計(jì)算值為參照的話,正好可以符合我們感官上對(duì)背景圖位置的理解。

這個(gè)屬性包括水平位置和垂直位置,它們分別參照的是寬度減法計(jì)算值和高度減法計(jì)算值。

你可能注意到了上面示例的最后一個(gè)竟然寫了4個(gè)值(一般都只用2個(gè)值)。關(guān)于它的意義,請(qǐng)查看W3C的background-position

font-size

參照是直接父元素的font-size。例如,一個(gè)元素的直接父元素的font-size14px,無論這個(gè)是直接定義的,還是繼承得到的,當(dāng)該元素定義font-size:100%;,獲得的效果就是font-size:14px;

line-height

參照是元素自身的font-size。例如,一個(gè)元素的font-size12px,那么line-height:150%;的效果是line-height:18px;

vertical-align

參照是元素自身的line-height(和前面很有關(guān)聯(lián)吧,所以我排在了這里)。例如,一個(gè)元素的line-height30px,則vertical-align:10%;的效果是vertical-align:3px;

對(duì)這個(gè)屬性我還想說,盡管vertical-align可以使用數(shù)字,百分比值,但瀏覽器兼容性差異較大,在跨瀏覽器實(shí)現(xiàn)時(shí)可能需要較多hack。因此,我個(gè)人傾向于使用middle等相對(duì)來說兼容性差異較小的關(guān)鍵字類型的值。

定位用的bottom、left、right、top

參照是元素的包含塊。leftright是參照包含塊的寬度,bottomtop是參照包含塊的高度。

transform: translate

平移變換,在水平方向和垂直方向上也可以使用百分比,其參照是變換的邊界框的尺寸(等于這個(gè)元素自己的border-box尺寸)。例如,一個(gè)寬度為150px,高度為100px的元素,定義transform:translate(50%, 50%)的效果是transform:translate(75px, 50px);

還可以補(bǔ)充一點(diǎn),translate3d對(duì)應(yīng)是還有第三個(gè)維度的,但是,經(jīng)過測(cè)試,最后的第3個(gè)值不可以使用百分比(否則樣式定義無效)。至于為什么不可以參照呢,大概是因?yàn)槟鞘巧衩氐牡谌S度吧...

其他

如果你想要知道更多的百分比值在css屬性中的可用情況及參照值,請(qǐng)參考MDN的CSS percentage values

百分比值的繼承

請(qǐng)注意,當(dāng)百分比值用于可繼承屬性時(shí),只有結(jié)合參照值計(jì)算后的絕對(duì)值會(huì)被繼承,而不是百分比值本身。例如,一個(gè)元素的font-size14px,并定義了line-height:150%;,那么該元素的下一級(jí)子元素繼承到的line-height就是21px,而不會(huì)再和子元素自己的font-size有關(guān)。

結(jié)語

好不容易終于看完了這么多百分比值的用法,有興趣要使用一些嗎?(?-?*)

我自己的看法是,百分比值是css所提供的一種建立元素與元素之間,或者元素的不同屬性之間的關(guān)聯(lián)性的有效方法。只要是想建立一種關(guān)聯(lián)性,都可以適當(dāng)考慮使用百分比值。而且,不需自己做任何動(dòng)態(tài)的事件處理和更新,任何時(shí)候,你都可以信賴這個(gè)百分比。

(重新編輯自我的博客,原文地址:http://acgtofe.com/posts/2014/06/percentage-in-css

給TA贊賞
共{{data.count}}人
人已贊賞
??
Npcink上的部份代碼及教程來源于互聯(lián)網(wǎng),僅供網(wǎng)友學(xué)習(xí)交流,若您喜歡本文可附上原文鏈接隨意轉(zhuǎn)載。
無意侵害您的權(quán)益,請(qǐng)發(fā)送郵件至 1355471563#qq.com 或點(diǎn)擊右側(cè) 私信:Muze 反饋,我們將盡快處理。
?
購(gòu)物車
優(yōu)惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      欧美一区日韩一区| 国产精品妹子av| 91亚洲精品一区二区乱码| 欧美亚洲丝袜传媒另类| 国产成人精品www牛牛影视| 北条麻妃一区二区三区| 欧美日韩一区国产| 久久综合视频网| 久久国产精品99久久久久久老狼 | 99re这里只有精品首页| 国产精品欧美一区二区三区| 国产精品系列在线播放| 国产欧美日韩不卡免费| 美美哒免费高清在线观看视频一区二区| 91精品国产欧美日韩| 久久国产成人午夜av影院| 欧美一级黄色录像| 成人理论电影网| 一区二区免费视频| 欧美一区二区在线免费播放 | 久久婷婷一区二区三区| 韩国视频一区二区| 国产精品久久三区| 欧美三级资源在线| 精品一区二区久久| 亚洲美女少妇撒尿| 久久综合视频网| av在线不卡免费看| 亚洲h在线观看| 亚洲欧洲99久久| 日韩一级二级三级精品视频| 成人av在线看| 亚洲蜜桃精久久久久久久| 欧美一区二区三区视频| 91传媒视频在线播放| 成人综合在线观看| 激情六月婷婷久久| 免费人成在线不卡| 亚洲一区二区三区四区中文字幕| 精品国产91洋老外米糕| 欧美性生交片4| 色综合久久综合网97色综合 | 国产日韩一级二级三级| 色噜噜狠狠色综合欧洲selulu| 成人在线视频一区二区| 国产福利一区二区三区视频在线 | 成人av免费在线播放| 丁香啪啪综合成人亚洲小说 | 国产精品久久久久一区| 精品欧美一区二区三区精品久久| 91精品国产手机| 国产精品网站在线观看| 中文字幕亚洲一区二区av在线| 久久久www免费人成精品| 久久久久久久久久看片| 亚洲免费成人av| 国产一区二区看久久| 99国产麻豆精品| 在线免费视频一区二区| 欧美麻豆精品久久久久久| 久久综合久久综合久久| 国产亚洲制服色| 亚洲色图在线视频| 国产高清亚洲一区| 日韩女同互慰一区二区| 一区二区三区免费观看| 一区二区三区产品免费精品久久75| 一区二区三区在线视频观看58| 水野朝阳av一区二区三区| 成人性生交大合| 久久精品日韩一区二区三区| 最新日韩av在线| 狠狠色综合播放一区二区| 欧洲国内综合视频| 中文字幕永久在线不卡| 日韩精品免费视频人成| 欧洲一区二区三区在线| 国产精品久久久久一区二区三区共| 国产揄拍国内精品对白| 日韩精品在线一区二区| 亚洲欧洲一区二区三区| 高清在线观看日韩| 中文字幕第一区二区| 成人午夜免费电影| 国产精品久久久久久亚洲毛片| 亚洲精品国产成人久久av盗摄 | 九色综合狠狠综合久久| av电影天堂一区二区在线| 一区二区成人在线观看| 亚洲精品一区二区三区精华液 | 色综合色综合色综合| 亚洲激情一二三区| 欧美白人最猛性xxxxx69交| 国内精品写真在线观看| 日韩你懂的在线观看| 波多野洁衣一区| 日本网站在线观看一区二区三区| 欧美三级中文字幕在线观看| 国产精品一区在线| 日韩极品在线观看| 国产精品国产三级国产aⅴ原创| 91麻豆精品久久久久蜜臀| 久草中文综合在线| 一区二区三区四区国产精品| 亚洲精品在线观| 日韩三级在线观看| 日韩欧美在线123| 欧美一区午夜视频在线观看| 国产99久久久国产精品潘金网站| 亚洲成av人片一区二区三区 | 91亚洲精品乱码久久久久久蜜桃| 日韩精品亚洲一区二区三区免费| 中文字幕色av一区二区三区| 日韩一级完整毛片| 精品卡一卡二卡三卡四在线| 欧美精品自拍偷拍| 成人av免费在线播放| 色噜噜偷拍精品综合在线| 91在线精品一区二区三区| av资源站一区| 在线欧美日韩国产| 91精品国产综合久久久久久漫画| 7777女厕盗摄久久久| 精品国产一区久久| 欧美韩国日本一区| 一区二区三区鲁丝不卡| 亚洲6080在线| 国产91精品欧美| 欧美午夜片在线看| 日韩欧美国产精品| 伊人性伊人情综合网| 蜜臀va亚洲va欧美va天堂| 国产一区二区中文字幕| 色婷婷狠狠综合| 精品粉嫩aⅴ一区二区三区四区| 国产精品三级av在线播放| 天天影视网天天综合色在线播放| 国产九色sp调教91| 欧美一级电影网站| 国产精品日日摸夜夜摸av| 青青草97国产精品免费观看 | 在线看日本不卡| 国产欧美一区二区精品性| 日韩精品一二三四| 欧美手机在线视频| 国产精品黄色在线观看| 国产精品自拍网站| 欧美一二三在线| 久久精品99久久久| 日韩三级电影网址| 精品夜夜嗨av一区二区三区| 欧美日韩国产另类一区| 一区二区三区精品| 日韩一区二区三区三四区视频在线观看 | 9l国产精品久久久久麻豆| 欧美一区2区视频在线观看| 日本不卡123| 精品sm在线观看| 国产一区二区精品久久91| 精品国产乱码久久久久久图片| 国内成人精品2018免费看| 欧美激情一区二区三区不卡| 92精品国产成人观看免费| 日本伊人精品一区二区三区观看方式 | 久久9热精品视频| 日本一区二区免费在线 | 日韩成人一区二区| 中文字幕免费一区| 日韩一区二区电影在线| 国产91丝袜在线播放0| 蜜桃传媒麻豆第一区在线观看| 日韩三级伦理片妻子的秘密按摩| 国产成人亚洲精品青草天美| 亚洲国产精品一区二区www在线| 精品三级在线观看| 欧美成人三级在线| 欧美特级限制片免费在线观看| 国精产品一区一区三区mba视频| 亚洲影视资源网| 亚洲欧美在线aaa| 欧美一级一区二区| 欧美偷拍一区二区| 在线免费观看日本欧美| 91美女在线看| 国产成人亚洲综合色影视| 欧美国产精品劲爆| 久久久蜜臀国产一区二区| 亚洲综合色在线| 激情成人综合网| 欧美在线色视频| 日韩精品电影在线| 亚洲精品大片www| 国产精品伦理在线| 久久久久9999亚洲精品| 911精品国产一区二区在线| 99riav久久精品riav| 99国内精品久久| 91麻豆文化传媒在线观看| eeuss鲁片一区二区三区在线看| 国产一区二区三区免费在线观看|