精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

終于搞懂了 CSS 中的百分比是基于什么工作的了!

開發 前端
大家有沒有對 CSS 中的百分比是如何工作的感興趣?有沒有想過,為什么它有時會亂七八糟,沒啥頭緒?反正我是有,所以今天分享這篇文章,對自己來說是加深理解,同時也希望對大家有所幫助。

[[425677]]

大家有沒有對 CSS 中的百分比是如何工作的感興趣?有沒有想過,為什么它有時會亂七八糟,沒啥頭緒?反正我是有,所以今天分享這篇文章,對自己來說是加深理解,同時也希望對大家有所幫助。

什么百分比?

作為百分比,顯然應該有一個目標作為參考源,這個參考一般是父元素。這是正確的,但并不涵蓋所有情況。最正確的答案應該是包含塊(containing block),即包含我們元素的塊且它不必是直接的父元素。

看看下面的例子:

代碼:

  1. <div class="grandparent"
  2.   <div class="parent"
  3.     <div class="child"></div> 
  4.   </div> 
  5. </div> 
  1. .grandparent { 
  2.   position: relative
  3.   width: 200px; 
  4.   height: 200px; 
  5.   background: #eaeaea; 
  6.  
  7. .parent { 
  8.   width: 100px; 
  9.   height: 100px; 
  10.   background: #aaa; 
  11.  
  12. .child { 
  13.   position: absolute
  14.   width: 50%; 
  15.   height: 50%; 
  16.   top: 25%; 
  17.   left: 25%; 
  18.   background: red; 

在上面的例子中,我創建了 3 個嵌套 div,它們是具有以下特征的3個正方形

  • 最外面的組元 div 是一個淺灰色,大小為 4x4
  • 父元素 div的顏色為深灰色,大小為 2x2
  • 以及分配 50% 大小的紅色子 div

如果百分比單位以父級為來源,則子級的大小應該是它的 1/2,但上面的不是,子級的大小實際上等于父級,也就是祖父級的 1/2。原因是祖父級 div 是子級 div 的真正包含塊,因為子級具有 position: absolute ,對應于在祖父級中設置的 position:relative 。

因此,為了確定哪個是元素的實際包含塊,它完全基于元素本身的 position 屬性。

但是,對于某些屬性,百分比單元的引用源既不是父塊也不是包含塊,而是它本身—— 自身元素。

百分比的屬性

width/height

如上面的例子中看到的,當一個元素為其寬度分配一個百分比值時, width 是基于包含塊的width, height 是基于包含塊的 height。

padding

對于 padding,垂直(padding-top/padding-bottom)或水平(padding-left/padding-right)都是基于包含塊的 height 來計算。

來個例子:

  1. <div class="parent"
  2.  <div class="child"></div> 
  3. </div> 
  1. .parent { 
  2.   background: #eaeaea; 
  3.   width: 300px; 
  4.   height: 200px; 
  5.  
  6. .child { 
  7.   display: inline-block; 
  8.   background: red; 
  9.   padding-top: 50%; 
  10.   padding-left: 50%; 
  11.  
  12. .parent { 
  13.   position: relative

線上地址:https://codepen.io/khangnd/pen/powbjEL

在這個例子中:

  • 父 div 的大小為 6x4。
  • 子 div的大小為 0,但 padding-top 和 padding-left 分別為 50%

最后的結果是,子元素的大小相當于父級元素 1/2寬度,也就是一個 3x3 的正方形。

margin

與 padding,margin 的百分比(垂直和水平)也是相對于包含塊的寬度來計算。

來個事例:

  1. <div class="parent"
  2.   <div class="child"></div> 
  3. </div> 
  1. .parent { 
  2.   background: #eaeaea; 
  3.   width: 300px; 
  4.   height: 200px; 
  5.  
  6. .child { 
  7.   display: inline-block; 
  8.   background: red; 
  9.   width: 50px; 
  10.   height: 50px; 
  11.   margin-top: 50%; 
  12.   margin-left: 50%; 

在這個例子中:

  • 父級 div 的大小為 6x4。
  • margin-top 和 margin-left 分別為 50%

其結果是,子元素被定位在離父級元素的上邊距和左邊距3個單位的地方(父級寬度的1/2)。

top/bottom/left/right

這4個定位屬性也是基于包含塊的寬度來計算的。

來個例子:

  1. <div class="parent"
  2.   <div class="child"></div> 
  3. </div> 
  1. .parent { 
  2.   position: relative
  3.   background: #eaeaea; 
  4.   width: 300px; 
  5.   height: 200px; 
  6.  
  7. .child { 
  8.   position: absolute
  9.   background: red; 
  10.   width: 16.67%; 
  11.   height: 25%; 
  12.   top: 50%; 
  13.   left: 50%; 

在這個事例中:

  • 父級 div 的大小為 6x4
  • 子元素有 position: absolute, top 和 left 分別為 50%

最終結果,子 div 被定位在離父 div 的頂部邊緣 2個單位的位置(父 div 高度的 1/2),并被定位在離父 div 的左側邊緣 3 個單位的位置(父 div 寬度的 1/2)。

transform: translate()

一個用于動畫/過渡的不可思議的屬性,它也支持百分比值。然而,這個屬性并不指其包含的塊,而是指其自身。

來個例子:

  1. <div class="parent"
  2.   <div class="child"></div> 
  3. </div> 
  1. .parent { 
  2.   background: #eaeaea; 
  3.   width: 300px; 
  4.   height: 200px; 
  5.  
  6. .child { 
  7.   background: red; 
  8.   width: 100px; 
  9.   height: 50px; 
  10.   transform: translate(50%, 50%); 

在這個事例中:

  • 父級 div 的大小為 6x4。
  • 子 div 的大小為 2x1,使用 transform: translate(50%, 50%)

最后結果,子 div 被定位在離父 div 的頂部邊緣 0.5 個單位的位置(自身高度的 1/2),并被定位在離父 div 的左側邊緣 1 個單位的位置(自身寬度的 1/2)。

background-size

background-size 屬性將百分比單元的復雜性提升到一個新的水平

此屬性的百分比值指的是背景定位區域,類似于包含塊,但添加了以下 3 個因素:

  • 只有內容的塊(content-box)
  • 帶有內容和 padding 的塊 (padding-box)
  • 帶有內容、padding 和 border 的塊(border-box)

這三個值是由 background-origin 給出,具體看 MDN :https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-origin

來個例子:

  1. <div class="parent"
  2.   <div class="child"></div> 
  3. </div> 
  1. .parent { 
  2.   background: #eaeaea; 
  3.   width: 300px; 
  4.   height: 200px; 
  5.  
  6. .child { 
  7.   background-image: url(https://d2fltix0v2e0sb.cloudfront.net/dev-rainbow.png); 
  8.   background-size: 50% 50%; 
  9.   background-repeat: no-repeat; 
  10.   background-color: red; 
  11.   width: 50%; 
  12.   height: 50%; 

在這個例子中:

  • 父 div 的大小為 6x4
  • 子 div 的大小為 3x2,沒有 padding,沒有 border
  • 這里使用了一個DEV logo(比例為 1:1 )作為子 div 的背景圖像,背景大小屬性設置為 50% 50%

其結果是,背景圖像被拉伸為 1.5 x 1 的大小。

background-position與 background-size 類似,background-position 屬性的百分比也依賴于背景定位區域。

在這個例子中:

  1. <div class="parent"
  2.   <div class="child"></div> 
  3. </div> 

css

  1. .parent { 
  2.   background: #eaeaea; 
  3.   width: 300px; 
  4.   height: 200px; 
  5.  
  6. .child { 
  7.   background-image: url(https://d2fltix0v2e0sb.cloudfront.net/dev-rainbow.png); 
  8.   background-size: 50% 50%; 
  9.   background-position: 50% 50%; 
  10.   background-repeat: no-repeat; 
  11.   background-color: red; 
  12.   width: 50%; 
  13.   height: 50%; 

在本例中,使用了與前面相同的圖像和布局。當我們改變background-position的值時,可以看到一些變化:

  • 如果沒有任何值(默認值為0 0),背景圖像將位于左上角。
  • 使用 background-position: 0 50%,背景圖片被定位在左邊中間。
  • 使用 background-position: 50% 50%,背景圖片被定位在中心。
  • 使用 background-position: 100% 100%,背景圖片被定位在右下方。

注意:background-position: 0 50% 是下面的縮寫

  • background-position-x: 0
  • background-position-y: 50%

顯然,這個屬性的百分比背后有一些計算,而不僅僅是圖像的頂部和左側邊緣與孩子的距離。通過一些研究和測試,似乎 background-position 屬性在產生一個實際值之前依賴于以下計算。

offset X = (容器的寬度-圖像的寬度) * background-position-x offset Y = (容器的高度-圖像的高度) * background-position-y

在這種情況下:

  • 容器作為子 div
  • 圖像的寬度/高度是 background-size 的結果。

font-size

對于 font-size ,百分比值僅指向它的直接父塊。

來個例子:

  1. <div class="grandparent"
  2.   font-size: 13px 
  3.   <div class="parent"
  4.     font-size: 26px 
  5.     <div class="child">font-size: 50% 
  6.   </div> 
  7. </div> 

在這個例子中,我使用與第一個例子相同的布局,字體大小分配如下。

  • grandparent 13px
  • parent 26px
  • child 50%

我們可以清楚地看到,child 的字體大小現在與 grandparent 一樣,是 parent 的1/2。

線上地址:https://codepen.io/khangnd/pen/MWoeXMO

~~ 完,最近一個禮拜都在趕項目,基本都要2點后才能睡,這篇文章是間斷整理好的,現在時間 是 9/20 深夜3點,睡了,感謝大家的觀看。

作者:Khang 譯者:前端小智 來源:dev 原文:https://dev.to/khgnd/understanding-css-percentage-44gd

 

責任編輯:姜華 來源: 大遷世界
相關推薦

2021-09-27 08:49:03

開發 CSS padding

2021-09-28 08:31:22

Flex:1 CSSflex屬性

2024-05-11 08:11:19

CSS百分比開發

2011-04-06 10:57:11

Cacti監控

2011-03-31 16:16:43

Cacti監控

2021-07-08 06:47:21

Python

2024-08-01 08:41:08

2024-10-08 10:16:22

2025-01-20 09:21:00

2024-10-08 15:09:17

2024-12-26 00:34:47

2024-10-28 15:52:38

機器學習特征工程數據集

2025-01-15 11:25:35

2024-10-30 08:23:07

2024-10-28 00:00:10

機器學習模型程度

2024-09-18 16:42:58

機器學習評估指標模型

2025-02-17 13:09:59

深度學習模型壓縮量化

2024-11-05 12:56:06

機器學習函數MSE

2024-08-23 09:06:35

機器學習混淆矩陣預測

2024-10-14 14:02:17

機器學習評估指標人工智能
點贊
收藏

51CTO技術棧公眾號

手机看片福利在线观看| 少妇无套高潮一二三区| 狠狠躁少妇一区二区三区| 91在线国产福利| 国产精品久久久久9999| 日本一级片免费| 老司机精品视频在线播放| 91豆麻精品91久久久久久| 特色特色大片在线| 黄色av网址在线免费观看| 寂寞少妇一区二区三区| 555www成人网| 日韩va亚洲va欧美va清高| 亚洲免费毛片| 日韩欧美美女一区二区三区| 成人精品视频一区二区| 青青青国内视频在线观看软件| 91蝌蚪国产九色| 69堂成人精品视频免费| 超碰在线免费97| 日韩午夜免费视频| 久久黄色av网站| 中文字幕第4页| 粉嫩av一区二区| 欧美日韩免费一区二区三区 | 亚洲电影成人| 丝袜亚洲另类欧美重口| 亚洲成人av免费在线观看| 国产免费av国片精品草莓男男| 欧美日韩精品在线视频| 黄色一级片国产| 日本在线人成| 国产片一区二区| 免费成人看片网址| 天堂网在线资源| 国产成人日日夜夜| 亚洲一区亚洲| 欧美日韩精品一区二区三区四区 | 91精品国产综合久久久久久 | 国产一区二区美女| 国产精品老女人视频| 国产一级片毛片| 激情综合网址| 欧美第一页在线| 97成人资源站| 亚洲澳门在线| 日韩三级成人av网| 国产一区在线观看免费| 狠狠色狠狠色综合婷婷tag| 亚洲国语精品自产拍在线观看| japan高清日本乱xxxxx| 玖玖玖视频精品| 日韩一区二区三区视频| 手机看片国产精品| 一本色道69色精品综合久久| 欧美成人一区二区三区| 老司机av网站| 成人性生交大片免费看96| 亚洲大胆人体在线| 激情综合丁香五月| 亚洲动漫在线观看| 亚洲性线免费观看视频成熟| 欧美黄色高清视频| 欧美www视频在线观看| 色悠悠久久88| 国产一区二区三区在线视频观看| 一区二区三区午夜探花| 国产一区二区三区四区五区入口| 91精品国产高清| 5月婷婷6月丁香| 在线亚洲人成| 欧美影院一区二区| 爽爽爽在线观看| 一区二区三区国产好| 欧美精品一区二区三区视频| 一级做a爰片毛片| 欧美艳星介绍134位艳星| 日韩视频在线观看免费| 久草网在线观看| 精品人妻无码一区二区三区蜜桃一| 亚洲瘦老头同性70tv| 亚洲欧洲免费视频| 欧美特黄一级片| 黑丝一区二区三区| 日韩av电影在线播放| 中文字幕在线播放不卡| 国产激情一区二区三区| 精品日本一区二区三区在线观看| 经典三级在线| 亚洲三级视频在线观看| 国产极品在线视频| 国产一区二区三区四区五区3d | 亚洲精品国产av| 26uuu亚洲| 色中文字幕在线观看| a'aaa级片在线观看| 91久久精品一区二区| 亚洲综合在线一区二区| 亚洲精品合集| 久久精品青青大伊人av| 成人毛片18女人毛片| 激情成人综合网| 欧美日本韩国国产| 污视频网站免费在线观看| 日韩欧美在线视频| 香蕉在线观看视频| 色小子综合网| 欧美亚洲在线观看| www.久久色| 国产精品亲子乱子伦xxxx裸| 分分操这里只有精品| 亚洲伦理网站| 国产一区二区三区在线免费观看 | 先锋影音在线资源站91| 在线亚洲精品福利网址导航| 国产精品一区二区在线免费观看| 成人在线免费观看视频| 国产91精品不卡视频| 国产精品无码免费播放| 成人黄色在线| 99精品久久久久久| 黑人巨茎大战欧美白妇 | 成人av在线亚洲| 亚洲AV成人无码一二三区在线| 一区二区免费在线| 日韩高清第一页| 精品日本12videosex| 国产69久久精品成人看| 日本免费网站在线观看| 亚洲免费色视频| 午夜激情影院在线观看| 久久亚洲专区| 国产精品亚洲аv天堂网| 可以在线观看的黄色| 精品久久久视频| 蜜臀av粉嫩av懂色av| 亚洲视频中文| eeuss一区二区三区| 色呦呦在线观看视频| 欧美一区二区视频观看视频 | 午夜精品在线看| 国产精品欧美性爱| 国产主播精品| 成人av资源网| 2019中文字幕在线电影免费| 精品日韩欧美一区二区| 久久久全国免费视频| 国产福利一区二区| 日韩国产小视频| 999精品视频在这里| 久久久亚洲国产| 五月天久久久久久| 欧美日韩中文在线观看| 中文字幕高清视频| 日韩在线a电影| 午夜视频久久久| 欧美啪啪网站| 欧美成人sm免费视频| 亚洲国产欧美另类| 亚洲成人自拍一区| 精品人妻少妇嫩草av无码| 美女诱惑一区| 亚洲午夜精品国产| 精品麻豆剧传媒av国产九九九| 另类图片亚洲另类| 老熟妇高潮一区二区高清视频| 午夜精品一区二区三区电影天堂 | 亚洲欧美成人一区二区三区| 日韩欧美中文视频| 激情综合视频| 亚洲精品久久久久久久久| 天堂8在线天堂资源bt| 加勒比色老久久爱综合网| 欧美最近摘花xxxx摘花| www免费网站在线观看| 欧美丰满一区二区免费视频| 色偷偷www8888| 丁香天五香天堂综合| 成年网站在线免费观看| 午夜激情久久| 狠狠干一区二区| 99久久综合国产精品二区| 欧美成人精品一区二区| 性感美女一级片| 日本久久一区二区三区| 日本福利片在线观看| 成人av电影在线| 国产一区二区在线免费播放| 欧美婷婷在线| 日韩欧美在线一区二区| 亚洲大奶少妇| 国产极品精品在线观看| 在线观看a级片| 亚洲午夜国产成人av电影男同| 国产精品无码专区av免费播放| 都市激情亚洲色图| 成人在线观看小视频| 91麻豆国产福利在线观看| 日日干日日操日日射| 午夜一区不卡| a级片一区二区| 欧美先锋资源| 久久99热只有频精品91密拍| 91精品国产一区二区在线观看| 午夜精品一区二区三区在线播放| 欧美极品视频| 亚洲人成人99网站| 超碰人人人人人人| 欧美日韩中文字幕一区| 日韩在线观看第一页| 亚洲人成网站色在线观看| 右手影院亚洲欧美| 国产成人免费视| 成人日韩在线视频| 日日夜夜精品视频免费| 草草视频在线免费观看| 亚洲国产精品久久久天堂| 欧美国产二区| 欧美福利在线播放网址导航| 69堂成人精品视频免费| 九九热这里有精品| 国产经典一区二区| 美女日韩欧美| 2019亚洲日韩新视频| 91桃色在线观看| 欧美另类极品videosbestfree| 92国产在线视频| 亚洲欧美中文另类| 影音先锋男人资源在线观看| 精品三级在线观看视频| 91久久精品日日躁夜夜躁国产| 日本欧美不卡| 欧美诱惑福利视频| 欧美xxx视频| 欧美综合国产精品久久丁香| 欧亚av在线| 91精品国产高清自在线看超| 日本无删减在线| 欧美激情第1页| 国内老司机av在线| 久99久在线视频| 日韩特级毛片| 欧美日韩高清在线观看| 欧美精品videossex少妇| 九九热这里只有在线精品视| 中日韩高清电影网| 欧美国产日韩二区| gratisvideos另类灌满| 午夜精品久久久久久99热软件| 交100部在线观看| 538国产精品一区二区免费视频| 色综合桃花网| 国产精品福利在线| 欧美亚洲人成在线| 91色视频在线导航| 秋霞一区二区三区| 国产精品一区二区欧美| 日韩精品丝袜美腿| 日本一区二区三区在线视频| 成人一区二区| 大片在线观看网站免费收看| 国内精品福利| 欧美在线观看成人| 久久最新视频| 九九热精品在线播放| 国产在线精品免费| 蜜臀av粉嫩av懂色av| 国产亚洲一区二区在线观看| 亚洲精品国产精品国自| 亚洲欧美日韩久久| 久热这里只有精品在线| 日韩欧美aaa| 亚洲永久精品视频| 精品国产凹凸成av人网站| 天堂av电影在线观看| 中文字幕国产精品| 啪啪免费视频一区| 秋霞午夜一区二区| 日本免费一区二区三区等视频| 97影院在线午夜| av影片免费在线观看| 26uuu精品一区二区 | 中文字幕视频一区| 国产大片中文字幕在线观看| 欧美性极品xxxx娇小| 国产又大又粗又硬| 亚洲黄色在线观看| 95在线视频| 97视频在线播放| 国产亚洲欧美日韩精品一区二区三区 | 欧美激情奇米色| 欧美色片在线观看| 国产超碰91| 久久中文字幕二区| 缅甸午夜性猛交xxxx| 久久se精品一区精品二区| 国产精品无码电影| 亚洲色图欧美偷拍| 五月天激情国产综合婷婷婷| 91精品国产手机| 麻豆app在线观看| 欧美激情小视频| 久久久加勒比| 久久综合久久久| 欧美日韩国产探花| 乌克兰美女av| 91麻豆国产自产在线观看| 黄色一级视频免费观看| 欧美视频在线播放| 亚洲av成人精品一区二区三区在线播放 | 国产成人免费在线| 伊人成人免费视频| 国产精品色噜噜| 综合网在线观看| 亚洲精品一区在线观看| 成人福利片网站| 国产精品综合网站| 欧美色图激情小说| 黑人糟蹋人妻hd中文字幕| 国产成人高清视频| 神马午夜精品91| 欧美日韩成人高清| 成人在线观看黄色| 日韩av免费一区| 日本欧美韩国国产| 波多野结衣综合网| 岛国av在线一区| 免费毛片在线播放免费| 91麻豆精品国产91久久久资源速度| 国产视频精选在线| 日韩av电影在线网| 欧美精品momsxxx| 亚洲 高清 成人 动漫| 成人动漫在线一区| 日韩精品在线不卡| 亚洲激情电影中文字幕| 韩国成人二区| 免费精品视频一区二区三区| 亚洲免费播放| 国产精品无码一区二区三| 午夜精品久久久久影视| 欧美一区二区在线观看视频| 欧美极品第一页| 2021年精品国产福利在线| 男人添女人下部视频免费| 国产精品一区二区三区乱码| a在线视频播放观看免费观看| 666欧美在线视频| 91香蕉在线观看| 爱情岛论坛亚洲入口| 国产主播精品| 亚洲av无码一区二区三区网址| 欧美日韩一区二区在线| 国产综合在线观看| 国产精品丝袜久久久久久高清 | 久久综合色婷婷| 久久精品视频1| 国产一区二区三区视频免费| 91国拍精品国产粉嫩亚洲一区| 在线观看欧美日韩国产| www.国产一区二区| 国产香蕉97碰碰久久人人| 欧美在线se| 国产激情在线看| www.欧美.com| 狠狠狠狠狠狠狠| 久久精品亚洲一区| 亚洲一区二区三区在线免费| www.玖玖玖| 国产精品久久久久三级| 国产女同91疯狂高潮互磨| 久久久久五月天| 九九精品在线| 日韩欧美理论片| 精品福利在线看| 97视频在线观看网站| 99www免费人成精品| 亚洲一区二区三区高清不卡| 嘿嘿视频在线观看| 精品国产一区二区亚洲人成毛片| 欧产日产国产精品视频| 亚洲国产精品久久久久婷婷老年| 国产精品一区久久久久| 欧产日产国产69| 久久久极品av| 日韩有码一区| 激情图片中文字幕| 亚洲3atv精品一区二区三区| 阿v免费在线观看| 俄罗斯精品一区二区| 日韩和欧美一区二区三区| 五月婷婷一区二区| 亚洲香蕉成人av网站在线观看| 精品一区二区三区中文字幕视频| 国产视频一视频二| 亚洲色图欧洲色图| 大乳在线免费观看| 国产福利久久精品| 精品在线视频一区| www.国产毛片|