CSS包含块规则的示例分析

发布时间:2021-10-11 11:46:51 作者:小新
来源:亿速云 阅读:114

这篇文章给大家分享的是有关CSS包含块规则的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、确立包含块

包含块是一个非常重要的概念,通常包含块是当前元素的最近祖先元素的内容区,包含块的形成依赖于CSS position属性。

在我们常用的场景中,position的值有relative、absolute、fixed、static,且这四种属性为代表,浏览器对于这四种属性的包含块确立规则如下:

CSS包含块规则的示例分析

根元素()所在的包含块是一个被称为初始包含块的矩形。他的尺寸是视口 viewport (for continuous media) 或分页媒体 page  media (for paged media).

二、百分比值计算规则

CSS中例如width、height、padding等属性在设置百分比值时,浏览器会动态计算实际的像素值,百分比的计算基数就是该元素的包含块对应的实际属性值。

CSS包含块规则的示例分析

例如计算当前元素的百分比值的height属性

则其值为:包含块height值 * 当前元素height百分比值

三、包含块原理的应用场景

自己之前一直有个误区,认为padding、margin的百分比单位的计算基数是当前元素矩形区域宽高来算,但是根据包含块的规则,他们的计算基数应该是包含块的width值。

那么看看下面这个问题

之前团队里大佬洪岩问:“如何实现一个高度是自适应宽度3倍的图片?”

通过思考,大致有如下的实现方式,大家可以参考

实现方法1: 利用Chrome浏览器最新支持的aspect-ratio属性,其问题就是C端浏览器兼容性不好

.box {     aspect-ratio: 1/3; // width/height 宽高比 }

 CSS包含块规则的示例分析

aspect-ratio

实现方法2: 巧用包含块规则(padding和width属性百分比值的计算基数是包含块的宽度)+ 背景图实现

  1. <div class="box"> 

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

  3. </div> 


.box {     width: 100px;     margin: 100px auto;     position: relative;     background-color: #00abef; } .bg-box {     width: 100%;     padding-top: 300%;     background-image: url('https://ww3.sinaimg.cn/large/006pGbWsly1go7xqwfjw0j30ef0fewfp.jpg');     background-repeat: no-repeat;     background-size: 100% 100%; }

效果如下图:

CSS包含块规则的示例分析

感谢各位的阅读!关于“CSS包含块规则的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

推荐阅读:
  1. CSS中包含块概念准则是什么
  2. nginx中匹配规则的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

css

上一篇:PHP/Swoole长连接常见问题有哪些

下一篇:PHP错误与异常的处理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》