精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

美女黄色片网站| 456亚洲影院| 在线观看欧美一区二区| 久草在线资源站资源站| 99久久99精品久久久久久 | 69av成人| 国产精品丝袜久久久久久app| 91九色国产视频| 91国产丝袜播放在线| 欧美精选一区二区三区| 亚洲精品91| 亚洲一区二区自偷自拍| 久久久日本电影| 成年人国产精品| 爱啪视频在线观看视频免费| 中文字幕一二三| 欧美理论电影在线观看| 久久伊人蜜桃av一区二区| 国产一区二区三区视频免费| 日韩不卡的av| 奇米777日韩| 972aa.com艺术欧美| 国产激情视频在线看| 青青草国产精品视频| 大伊香蕉精品视频在线| 五月天婷婷在线播放| 天堂成人国产精品一区| 天堂91在线| 青青青国内视频在线观看软件| 99视频一区二区| 91久久在线播放| 一级黄色av片| 亚洲美女网站| 欧美成人免费网| 懂色av粉嫩av蜜乳av| 日本熟女毛茸茸| 精品国产一区二区三区久久久蜜臀 | 欧美在线色视频| 99精品在线免费视频| 在线观看三级视频| 中文字幕中文乱码欧美一区二区| 久久久精品有限公司| 亚洲欧美黄色片| 97成人资源| 99久久99久久久精品齐齐| 97人人干人人| 国产免费不卡视频| 久久激五月天综合精品| 日本亚洲欧洲色| 久久精品视频1| 亚洲日本视频| 国内自拍欧美激情| 国产精品99精品| 黄色另类av| 九九视频这里只有精品| 动漫性做爰视频| 一本到12不卡视频在线dvd| 综合欧美国产视频二区| 亚洲一二三精品| 久久福利影院| 日韩专区中文字幕| 一级片一级片一级片| 欧美a级片视频| 日韩日本欧美亚洲| 欧美第一页在线观看| 久久久久电影| 欧美另类69精品久久久久9999| 青草影院在线观看| 一区二区亚洲| 97视频人免费观看| 国产成人一级片| 日韩av一区二区三区四区| 国产精品精品一区二区三区午夜版| 欧美一级淫片免费视频黄| 久久最新视频| 成人xvideos免费视频| 99久久免费国产精精品| 国产99久久久国产精品| 久久99欧美| 电影av在线| 亚洲精品乱码久久久久久| 欧美国产综合在线| 中文字幕资源网在线观看免费| 色婷婷一区二区三区四区| 青青草精品视频在线观看| 日韩五码电影| 精品sm捆绑视频| 男生草女生视频| 香蕉视频国产精品| 97在线视频免费| 日批视频免费观看| 国产精品综合二区| 久久riav二区三区| 暖暖日本在线观看| 亚洲欧美一区二区不卡| 国内自拍在线观看| av日韩久久| 精品国产一区二区三区不卡| www.狠狠爱| 国产精品mv在线观看| 日本在线精品视频| 国产喷水吹潮视频www| 99re66热这里只有精品3直播| 欧美日韩一区二区三| 亚洲精品天堂| 欧美怡红院视频| 日韩少妇一区二区| 日本黄色精品| 欧美亚洲激情在线| 国产成人三级在线播放| 久久久久久久久99精品| 国产精品久久久影院| 浪潮色综合久久天堂| 日韩免费视频线观看| 亚洲自拍偷拍图| 亚洲视频成人| 91手机在线观看| h视频在线观看免费| 精品福利免费观看| 免费人成视频在线播放| 日产精品一区二区| 欧美孕妇性xx| 少妇av在线播放| 亚洲精选视频免费看| 成人3d动漫一区二区三区| 国内精品国产成人国产三级粉色 | 亚洲码无人客一区二区三区| 欧美日韩综合| 亚洲一区中文字幕在线观看| av在线第一页| 欧美自拍偷拍午夜视频| 国产草草浮力影院| 雨宫琴音一区二区在线| 91网站在线免费观看| 1024国产在线| 精品视频999| 先锋影音av在线| 久久国产精品99国产| 国产在线一区二区三区四区| 日本在线视频站| 欧美三级电影网站| 国产在视频线精品视频| 日韩国产欧美一区二区三区| 欧美大香线蕉线伊人久久| 国产又色又爽又黄刺激在线视频| 91麻豆精品国产91久久久久 | 天天色天天干天天色| 欧美韩日一区| 成人国产精品av| 久久综合之合合综合久久| 欧美日韩国产经典色站一区二区三区| xxxxx在线观看| 日日噜噜夜夜狠狠视频欧美人 | 又黄又色的网站| 国产精品99免费看| 国产精品一区二区欧美| av中文字幕在线观看第一页| 日韩午夜激情视频| 国产真实夫妇交换视频| 99热在这里有精品免费| 日韩在线视频在线观看| 伊人春色之综合网| 国产精品都在这里| 日本美女高清在线观看免费| 欧美精品一级二级三级| 欧美色图亚洲视频| av一区二区三区黑人| 欧美精品99久久| 欧美精选视频在线观看| 91深夜福利视频| 欧美人与动牲性行为| 亚洲精品国产精品国自产在线| 毛片基地在线观看| 国产精品久久影院| 亚洲在线观看网站| 亚洲美女毛片| 日韩国产欧美一区| 欧美.com| 4p变态网欧美系列| 美女av在线播放| 欧美大片一区二区三区| 亚洲欧美偷拍视频| 国产精品成人网| 日批在线观看视频| 日韩电影免费一区| 国产a级黄色大片| 亚洲精品一级二级三级| 成人字幕网zmw| 国产盗摄——sm在线视频| 在线观看91久久久久久| 亚洲第一免费视频| 色婷婷精品大在线视频 | 欧美婷婷久久五月精品三区| 欧美日韩一区视频| 伊人365影院| 中文字幕欧美激情| 成人啪啪18免费游戏链接| 久久久久看片| 欧美视频在线第一页| 国产精品入口久久| 懂色av一区二区三区在线播放| 亚洲精品一区| 久久免费视频在线观看| 91网页在线观看| 亚洲福利视频久久| 国产乱淫a∨片免费视频| 欧美性猛xxx| 青娱乐av在线| 国产精品福利电影一区二区三区四区 | 国产亚洲精品久久久久久打不开 | 国产精品论坛| 久久影视免费观看| 成人高潮成人免费观看| 精品国产免费久久| 一区二区三区午夜| 色综合久久88色综合天天| 久久高清无码视频| 亚洲欧洲av在线| 美女100%露胸无遮挡| 91碰在线视频| 日韩少妇一区二区| 丰满亚洲少妇av| 久久久久久久久久毛片| 日韩av电影天堂| 少妇性l交大片| 在线综合视频| 成人免费毛片在线观看| 欧美在线免费| 国产麻豆电影在线观看| 欧洲毛片在线视频免费观看| 久久亚洲高清| 欧美一级二级三级视频| 国产在线播放一区二区| 综合成人在线| 成人自拍网站| 天堂精品久久久久| 91免费版黄色| 美国十次综合久久| 成人国产在线视频| 一区二区三区日本视频| 国产精品99免视看9| 欧美电影h版| 国产不卡av在线免费观看| 欧美xx视频| 日韩免费观看高清| free欧美| 国产精品人成电影| 福利精品一区| 成人久久久久久| 国产成年精品| 91亚洲国产精品| 日韩在线网址| 国产精品一 二 三| 日韩成人av在线资源| 精品免费视频123区| 日韩av午夜| 日本一区不卡| 久久精品国产大片免费观看| 亚洲精品日韩在线观看| 久久精品av| 欧美 日韩 国产精品| 国内自拍一区| 日本不卡在线观看视频| 老司机午夜精品视频| 久久精品影视大全| 国产一区二区三区免费| 香蕉视频1024| 91香蕉视频污在线| www在线观看免费视频| 国产精品全国免费观看高清| 污软件在线观看| 亚洲成人综合网站| 天堂网视频在线| 欧美日韩精品欧美日韩精品一 | 亚洲精品一区二区三区中文字幕| 懂色中文一区二区三区在线视频| 美女一区2区| 亚洲草草视频| 欧美黄色免费| 那种视频在线观看| 精品一区二区三区蜜桃| 久久精品无码专区| 国产人伦精品一区二区| 午夜免费激情视频| 福利微拍一区二区| 国产影视一区二区| 亚洲精品98久久久久久中文字幕| 内衣办公室在线| 久久久97精品| 亚洲欧美韩国| 7777精品伊久久久大香线蕉语言| 色先锋久久影院av| 大桥未久一区二区| 国产精品人人爽人人做我的可爱| 粉色视频免费看| 91丨porny丨在线| 美女视频久久久| 一本一本大道香蕉久在线精品| 99在线无码精品入口| 亚洲欧美国产高清va在线播| 2021国产在线| 国产精品成人av性教育| 懂色av一区二区| 在线观看国产一区| 久久高清免费观看| 动漫美女无遮挡免费| 国产精品色哟哟| 日本在线播放视频| 精品国产一区二区精华| 九七久久人人| 国产精品美女免费| 日韩精品免费一区二区三区竹菊| 欧美少妇一区二区三区| 秋霞午夜鲁丝一区二区老狼| 亚洲 日韩 国产第一| 91亚洲精品久久久| 高潮毛片又色又爽免费| 亚洲成av人片一区二区三区| 在线观看毛片网站| 亚洲精品永久免费精品| 色老头在线观看| 成人av番号网| 欧州一区二区| 国产精品wwwww| 成人黄色国产精品网站大全在线免费观看| 日本精品久久久久中文| 色女孩综合影院| 污污视频在线观看网站| 欧美黑人性视频| 欧美特黄不卡| 91免费视频黄| 精品在线一区二区| 99精品欧美一区二区| 色一情一乱一乱一91av| 天堂在线资源8| 久久免费少妇高潮久久精品99| 日韩精品视频中文字幕| 日韩video| 国产麻豆一精品一av一免费| 肉色超薄丝袜脚交69xx图片| 欧美揉bbbbb揉bbbbb| 永久免费av片在线观看全网站| 国产福利视频一区| 欧洲激情综合| 国产精品久久a| 中文字幕中文字幕中文字幕亚洲无线| 91porny九色| 色婷婷综合久久久久| 成人在线不卡| 亚洲综合欧美日韩| 国内成人精品2018免费看| 亚洲精品中文字幕无码蜜桃| 北条麻妃国产九九九精品小说| 国产亚洲天堂网| 久久蜜桃香蕉精品一区二区三区| 国产在线观看黄色| 亚洲男人7777| 韩国成人在线| 在线观看日韩羞羞视频| 黑人精品欧美一区二区蜜桃| 一区二区成人免费视频| 欧美tickling网站挠脚心| 青春草视频在线| 精品久久精品久久| 欧美亚洲在线| 林心如三级全黄裸体| 8v天堂国产在线一区二区| 曰本三级在线| 精品国产电影| 日本不卡一区二区| 国产一区二区播放| 亚洲精品在线观看网站| 亚洲美女久久精品| 国产日本欧美在线| 国产91丝袜在线观看| 欧美a∨亚洲欧美亚洲| 在线电影中文日韩| 亚洲一区二区三区日本久久九| 免费毛片网站在线观看| 国产欧美日本一区视频| 国产丝袜视频在线观看| 午夜精品久久久久久久男人的天堂| 蜜桃91麻豆精品一二三区| 亚洲图片在区色| 成人永久在线| 大伊香蕉精品视频在线| 国产日韩欧美激情| aaaa一级片| 欧美一级电影免费在线观看| 色婷婷亚洲mv天堂mv在影片| 无码人妻丰满熟妇区毛片蜜桃精品| 黑人巨大精品欧美一区免费视频| 婷婷视频在线| 黑人中文字幕一区二区三区| 免费成人小视频| 日韩av综合在线| 最新中文字幕亚洲| 精品久久ai| 色18美女社区| 一本在线高清不卡dvd|