用css怎么实现实现宽高比


本文摘自PHP中文网,作者青灯夜游,侵删。

实现方法:1、利用padding属性和“%”单位;2、利用padding和calc()属性;3、利用padding属性和CSS变量;4、利用padding属性和伪元素;5、直接利用视窗单位“vw”;6、使用视窗单位配合CSS Grid布局。

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

长宽比故事

长宽比在影视制作中又被称之为宽高比,指的是一个视频的宽度除以它的高度所得到的比例,通常表示为x:yx×y,其中的冒号和叉号表示中文的“比”之意。目前,在电影工业中最常被使用的是anamorphic比例(即2.39:1)。传统的4:3仍然被使用于现今的许多电视画面上,而它成功的后继规格16:9则被用于高清晰度电视或数字电视上。常见的比例:

有关于长宽比更多的介绍可以阅读Wiki上的Aspect ration一文。

HTML结构

使用CSS实现容器长宽比,常见的HTML模板结构有两种:

1

2

3

<div class="aspectration" data-ratio="16:9">

    <div class="content"></div>

</div>

另外一种结构是:

1

2

<div class="aspectration" data-ratio="16:9">

</div>

具体使用的时候,根据自己使用场景采用不同的结构。

CSS实现长宽比例方案

前面也提到过了,使用CSS实现长宽比方案有多种,下面简单的罗列一下这些方案。不过每种方案都不会详细介绍,因为代码非常简单,看一眼代码就能明白其中原理。

垂直方向的padding

这是最早提出的一种实现方案,主要借助的原理是利用padding-top或者padding-bottom的百分比值,实现容器长宽比。在CSS中padding-toppadding-bottom的百分比值是根据容器的width来计算的。如此一来就很好的实现了容器的长宽比。采用这种方法,需要把容器的height设置为0。而容器内容的所有元素都需要采用position:absolute,不然子元素内容都将被padding挤出容器(造成内容溢出)。

比如我们容器的长宽比是16:9,那么根据计算:100% * 9 / 16可以得到56.25%。如果你希望的是4:3,那么对应的就是100% * 3 / 4

阅读剩余部分

相关阅读 >>

css如何设置div垂直居中

详解css sroll-snap-type属性(优化滚动的小技巧)

css text-decoration-color属性怎么用

怎么下载网页的css文件

为什么css不起作用

css怎么实现多边形

css如何增加权重

10个令人惊叹的非典型css套件

css怎么设置边框的透明度

css写在哪

更多相关阅读请进入《css》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...