iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >CSS怎么实现固定宽高比
  • 109
分享到

CSS怎么实现固定宽高比

2023-06-08 05:06:19 109人浏览 八月长安
摘要

这篇文章给大家分享的是有关CSS怎么实现固定宽高比的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、可替换元素实现固定宽高比可替换元素(如 <img> 、 <video> )和其他元素不同

这篇文章给大家分享的是有关CSS怎么实现固定宽高比的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、可替换元素实现固定宽高比

可替换元素(如 <img><video> )和其他元素不同,它们本身有像素宽度和高度的概念。所以如果想实现这一类元素固定宽高比,就比较简单。

我们可以 指定其宽度或者高度值,另一边自动计算就可以了

如下,我们固定图片元素的宽度,高度自适应:

<div class="img-wrapper">  <img src="https://p3.ssl.qhimg.com/t01f7d210920c0c73bd.jpg" alt=""></div>
.img-wrapper {  width: 50vw;  margin: 100px auto;  padding: 10px;  border: 5px solid lightsalmon;  font-size: 0;}
img {width: 100%;height: auto;}

效果如下图所示,可以看出当可视区域不断变大的过程中,图片会跟着变大,并且保留了原比例。

CSS怎么实现固定宽高比

你可能没注意到,我们给 img 元素设定了 height: auto; ,这是为了避免开发者或者内容管理系统在 html 源码中给图片添加了 height 属性,通过这个方式可以覆盖掉,避免出现 bug。

此外,对于 video 元素也类似,大家可以试下,效果如下。

CSS怎么实现固定宽高比 

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

虽然我们上面实现了可替换元素的固定宽高比,但是这个比例主要是因为可替换元素本身有尺寸,而且这个比例还会受到原有尺寸比例的限制。显然,这并不灵活,那我们该如何针对普通元素实现固定宽高比呢。

首先我们来看看最经典的 padding-bottom/padding-top 的 hack 方式。

1 padding-bottom 实现普通元素固定宽高比

在之前的陪读章节 《精通 CSS》第 3 章 可见格式化模型 中,我们提到 垂直方向上的内外边距使用百分比做单位时,是基于包含块的宽度来计算的 。

下面均以 padding-bottom 为例

通过借助 padding-bottom 我们就可以实现一个宽高比例固定的元素,以 div 为例。

HTML:

<div class="wrapper">  <div class="intrinsic-aspect-ratio-container"></div></div>

CSS:

.wrapper {  width: 40vw;}.intrinsic-aspect-ratio-container {  width: 100%;  height: 0;  padding: 0;  padding-bottom: 75%;  margin: 50px;  background-color: lightsalmon;}

效果如下:

CSS怎么实现固定宽高比 

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

这样是实现了固定宽高比,但其 只是一个徒有其表的空盒子,里面没有内容。如果想在里面放入内容,我们还需要将 div`内部的内容使用绝对定位来充满固定尺寸的容器元素。

如下:

.intrinsic-aspect-ratio {  position: relative;  width: 100%;  height: 0;  padding: 0;  padding-bottom: 75%;  margin: 50px;  background-color: lightsalmon;}.content {  position: absolute;  top: 0;  right: 0;  bottom: 0;  left: 0;}

通过这种方式我们就可以实现一个可以填充内容的固定尺寸的容器了。

此外,尺寸比例,我们也可以通过 calc() 来计算,这样比较灵活。我们可以快速的写出任意比例,如 padding-bottom: calc(33 / 17 * 100%);

不知道,你有没有发现,上面的这种方式只能高度随着宽度动,并不能实现宽度随着高度动。

那有没有办法实现宽度随着高度动呢? 答案是没有,至少现在没有。但将来就会有了 。接下来我们一起看看更简单便捷的另一种方式。

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

由于固定宽高比的需求存在已久,通过 padding-bottom 来 hack 的方式也很不直观,并且需要元素的嵌套。

W3C 的 CSS 工作组为了避免这一问题,已经在致力于实现这样一个属性 aspect-ratio 。该方案已经提出,但是还没有浏览器实现,现在还处于设计节点,暂时还没有已发布的工作组草案,只有编辑草案 。

但是这并不妨碍我们来提前了解一下这个新技术。

下面让我们一起来看看是如何的便利吧。

aspect-ratio 的语法格式如下: aspect-ratio: <widtu-ratio>/<height-ratio>

如下,我们可以将 widthheight 设为 auto ,然后指定 aspect-ratio 。另一个值就会按照比例自动变化。

.box1 {  width: 100%;  height: auto;  aspect-ratio: 16/9;}
.box2 {height: 100%;width: auto;aspect-ratio: 16/9;}

这一技术可以很灵活的实现元素的固定宽高比,并且指定宽高之一均可。只是现在还没有浏览器实现,让我们共同期待吧。

感谢各位的阅读!关于“CSS怎么实现固定宽高比”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: CSS怎么实现固定宽高比

本文链接: https://www.lsjlt.com/news/251816.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CSS怎么实现固定宽高比
    这篇文章给大家分享的是有关CSS怎么实现固定宽高比的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、可替换元素实现固定宽高比可替换元素(如 <img> 、 <video> )和其他元素不同...
    99+
    2023-06-08
  • Android ImageView 固定宽高比例的实现方法
    Android ImageView 固定宽高比例的实现方法本文主要介绍 ImageView 固定宽高比例,方法一:设置 adjustViewBounds="true",方法二:使用 Universal-Image-Loader 图片缓存类,...
    99+
    2023-05-30
    android imageview 宽高
  • CSS中如何实现宽高比
    本篇内容介绍了“CSS中如何实现宽高比”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • css如何实现一个元素高度固定宽度按比例显示效果
    这篇文章将为大家详细讲解有关css如何实现一个元素高度固定宽度按比例显示效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。解决后效果如图:红框标注的即是我在上面高度比例固定的范围内宽度自适应的效果;css...
    99+
    2023-06-08
  • 如何使用css实现实现宽高比
    这篇文章给大家分享的是有关如何使用css实现实现宽高比的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实现方法:1、利用padding属性和“%”单位;2、利用padding和calc()属性;3、利用paddin...
    99+
    2023-06-15
  • CSS在固定宽高的div内如何实现垂直居中
    这篇文章将为大家详细讲解有关CSS在固定宽高的div内如何实现垂直居中,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求案例案例是这样的,一个外层div,高宽是固定的,但...
    99+
    2024-04-02
  • CSS中怎么固定宽度布局
    这篇文章主要介绍“CSS中怎么固定宽度布局”,在日常操作中,相信很多人在CSS中怎么固定宽度布局问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS中怎么固定宽度布局”的疑惑...
    99+
    2024-04-02
  • CSS如何实现宽高等比布局
    小编给大家分享一下CSS如何实现宽高等比布局,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!宽度是高度的两倍(等比缩放)实现思路:...
    99+
    2024-04-02
  • css怎么实现内容固定不动
    本教程操作环境:Windows10系统、CSS3版、DELL G3电脑css怎么实现内容固定不动?css三种方法实现:上面固定,左侧固定,右侧内容可滚动本文要实现的效果为:头部固定,左侧固定,右侧内容可滚动,如下图所示:下面是三种实现方法,...
    99+
    2023-05-14
    css
  • 使用css怎么实现一个固定比例的块级容器
    使用css怎么实现一个固定比例的块级容器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。css是什么意思css是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计...
    99+
    2023-06-08
  • CSS怎么设置宽高等比布局
    本篇内容主要讲解“CSS怎么设置宽高等比布局”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS怎么设置宽高等比布局”吧!宽度是高度的两倍(等比缩放)实现思路: 以父级元素为基准, 子级 wid...
    99+
    2023-07-04
  • 怎么用纯CSS实现表头固定
    这篇文章主要介绍怎么用纯CSS实现表头固定,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   我们知道,CSS是负责表现,HTML是负责结构,同样的结构,换个样式,给人的感觉完全不...
    99+
    2024-04-02
  • css如何实现高度随宽度比例变化
    这篇文章主要介绍css如何实现高度随宽度比例变化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!【方案一:padding实现】原理:一个元素的 padding,如果值是一个百分比,那这个百分比是相对于其父元素的宽度而言...
    99+
    2023-06-08
  • CSS如何实现宽高等比自适应容器
    小编给大家分享一下CSS如何实现宽高等比自适应容器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在最近开发移动端页面,遇到这么一个情况:当页面宽度 100% 时,...
    99+
    2023-06-08
  • 怎么用CSS实现IE6无抖动固定定位
    这篇文章主要讲解了“怎么用CSS实现IE6无抖动固定定位”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用CSS实现IE6无抖动固定定位”吧! ...
    99+
    2024-04-02
  • css怎么实现固定的背景图像
    这篇文章将为大家详细讲解有关css怎么实现固定的背景图像,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   代码如下:   <!DOCTYPE>   &...
    99+
    2024-04-02
  • css如何实现右侧固定宽度以及左侧宽度自适应
    这篇文章主要介绍了css如何实现右侧固定宽度以及左侧宽度自适应,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。反过来也可以:左侧宽度固定,右侧自适应。不管是左是右,反正就是一边...
    99+
    2023-06-08
  • Cropper.js进阶之固定宽高图片裁切实现示例
    目录引言准备工作页面结构编写JavaScript总结:全部代码如下:引言 在图像处理中,图片裁切是常见的需求。有时候,我们希望裁切后的图片具有固定的宽高,而不是任意宽高比。Cropp...
    99+
    2023-05-19
    Cropper.js固定宽高图片裁切 Cropper.js图片裁切
  • CSS中固定宽度的三列布局怎么用
    这篇文章给大家分享的是有关CSS中固定宽度的三列布局怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。固定宽度三列布局这很基础,我们直接看代码便能明白:<div ...
    99+
    2024-04-02
  • 固定宽高的DIV怎么设置绝对居中
    这篇文章主要介绍“固定宽高的DIV怎么设置绝对居中”,在日常操作中,相信很多人在固定宽高的DIV怎么设置绝对居中问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”固定宽高的DIV...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作