偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

字節(jié)前端都知道的CSS包含塊規(guī)則

開發(fā) 前端
本文將從包含塊角度幫助大家理解記憶百分比單位的計算規(guī)則,便于巧妙運用包含塊規(guī)則解決實際開發(fā)中的布局問題!

[[393902]]

你是否曾對CSS中的百分比單位非常疑惑?是否簡單認為百分比的基準值就是所在元素的寬高?本文將從包含塊角度幫助大家理解記憶百分比單位的計算規(guī)則,便于巧妙運用包含塊規(guī)則解決實際開發(fā)中的布局問題!

一、確立包含塊

包含塊是一個非常重要的概念,通常包含塊是當前元素的最近祖先元素的內容區(qū),包含塊的形成依賴于CSS position屬性。

在我們常用的場景中,position的值有relative、absolute、fixed、static,且這四種屬性為代表,瀏覽器對于這四種屬性的包含塊確立規(guī)則如下:

根元素()所在的包含塊是一個被稱為初始包含塊的矩形。他的尺寸是視口 viewport (for continuous media) 或分頁媒體 page media (for paged media).

二、百分比值計算規(guī)則

CSS中例如width、height、padding等屬性在設置百分比值時,瀏覽器會動態(tài)計算實際的像素值,百分比的計算基數(shù)就是該元素的包含塊對應的實際屬性值。

例如計算當前元素的百分比值的height屬性

則其值為:包含塊height值 * 當前元素height百分比值

三、包含塊原理的應用場景

自己之前一直有個誤區(qū),認為padding、margin的百分比單位的計算基數(shù)是當前元素矩形區(qū)域寬高來算,但是根據(jù)包含塊的規(guī)則,他們的計算基數(shù)應該是包含塊的width值。

那么看看下面這個問題

之前團隊里大佬洪巖問:“如何實現(xiàn)一個高度是自適應寬度3倍的圖片?”

通過思考,大致有如下的實現(xiàn)方式,大家可以參考

實現(xiàn)方法1: 利用Chrome瀏覽器最新支持的aspect-ratio屬性,其問題就是C端瀏覽器兼容性不好

  1. .box { 
  2.     aspect-ratio: 1/3; // width/height 寬高比 

  

aspect-ratio

實現(xiàn)方法2: 巧用包含塊規(guī)則(padding和width屬性百分比值的計算基數(shù)是包含塊的寬度)+ 背景圖實現(xiàn)

  1. <div class="box"
  2.   <div class="bg-box"></div> 
  3. </div> 

  1. .box { 
  2.     width: 100px; 
  3.     margin: 100px auto; 
  4.     position: relative
  5.     background-color: #00abef; 
  6. .bg-box { 
  7.     width: 100%; 
  8.     padding-top: 300%; 
  9.     background-image: url('https://ww3.sinaimg.cn/large/006pGbWsly1go7xqwfjw0j30ef0fewfp.jpg'); 
  10.     background-repeat: no-repeat; 
  11.     background-size: 100% 100%; 

效果如下圖:

 

1比3的實現(xiàn)

CodePen地址: https://codepen.io/DYBOY/pen/JjbZgeE

四、總結熟記包含塊規(guī)則,有利于在實際開發(fā)中解決一些“小塊”的布局問題。

 

責任編輯:姜華 來源: DYBOY
相關推薦

2017-10-28 23:35:08

CSS框架開發(fā)工具

2019-02-22 09:33:32

2023-11-01 10:14:02

前端CSS屬性

2010-06-29 10:58:40

VoIP協(xié)議

2010-09-01 13:03:12

CSS規(guī)則

2021-07-14 11:25:12

CSSPosition定位

2010-08-25 09:11:57

DIVCSS

2019-08-20 08:52:23

開發(fā)工具Maven

2023-08-29 09:31:01

Scrapy網頁爬蟲

2012-07-20 10:03:38

CSS

2010-09-02 16:00:52

網絡協(xié)議套件

2010-09-02 23:52:15

VoIP網絡協(xié)議

2023-05-04 16:10:13

緩存前端

2011-05-17 10:05:50

CSS

2024-04-26 08:27:15

JavaScriptCSSHTML元素

2011-02-23 10:32:16

網頁設計Web

2010-09-07 15:17:47

CSS優(yōu)先權CSS

2010-08-27 13:07:00

CSS規(guī)則

2010-08-30 10:46:13

DIV+CSS

2020-12-17 08:56:51

單例模式JVM
點贊
收藏

51CTO技術棧公眾號