CSS如何实现固定宽高比

常见处理方法如下:

1. 元素是imgvideo

首先了解下可替换元素的概念:

在 CSS 中,可替换元素(replaced element)的展现效果不是由 CSS 来控制的。这些元素是一种外部对象,它们外观的渲染,是独立于 CSS 的。
简单来说,它们的内容不受当前文档的样式的影响。CSS 可以影响可替换元素的位置,但不会影响到可替换元素自身的内容。某些可替换元素,例如
<iframe> 元素,可能具有自己的样式表,但它们不会继承父文档的样式。

替换元素根据其标签和属性来决定元素的具体显示内容,常见有imginputtextareaselect等。

说回来,imgvide等可替换元素,可以通过设置固定宽或高,另外的值可通过设置auto来进行自动计算。

.container{
    width: 207px;
    height: auto
}

2、普通元素实现固定宽高比

这种就是我们刷题经常看见的通过使用padding来实现的hack方法啦。不过该方式只能让高度随着宽度动,并不能实现宽度随着高度动。代为可用百分比也可用vw

.container{
    float: left;
    width: 50%;
    height: 0;
    padding-bottom: 50%
}

如上代码,我们将.container元素的高度设为了0,通过padding-bottom来撑开盒子的高度,实现了1:1的固定宽高比。

3. aspect-ratio属性指定元素宽高比

以上各种各种实现方案都不是也别完美,W3C CSS 工作组已经在致力于实现这样一个属性aspect-ratio。该方案已经提出,但是还处于设计阶段,草案

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 固定宽高比 1. padding-bottom或者padding-top 原理:(面试题有问到) 让高度设为0,完...
    意切阅读 495评论 0 0
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,228评论 0 8
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,672评论 0 30
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,238评论 0 1
  • (从今天开始,打算不定期的写文章啦,写得不好请见谅,只是想发表自己的感想,把心里所想的表达出来~~~) 安意如的作...
    舒小宝2baby阅读 428评论 0 1