目标:
遇到一个需求,让图片在页面中,不管宽度如何变化。宽高保持16:9的比例。

实现:

方法一:这也是比较经典的一个方法,利用padding-bottom来实现。

<!DOCTYPE html>
<html>
<head>
<title>固定宽高比16:9</title>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
}
.wrap{
width:100%;
}
/* 16:9宽高比,则设padding-bottom:56.25% */
/* height: 0px,防止矩形被里面的内容撑出多余的高度*/
.box{
width: 100vw;
height: 0px;
position: relative;
padding-bottom: 56.25%;
background: pink;
}
/* 如果需要在div里面设置内容*/
/* 需要设置position:absolute,才能设置内容高度100%和矩形一样 */
/*.box p{
width: 100%;
height: 100%;
position: absolute;
}*/
</style>
</head>
<body>
<div class="wrap">
<div class="box">
<p>这是一个16:9的矩形</p>
</div>
</div>
</body>
</html>

方法二:利用vmin来实现。

<!DOCTYPE html>
<html>
<head>
<title>固定宽高比16:9</title>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
}
.wrap{
width:100%;
}
/*vmin:相对于可视窗口的宽度或高度中较小的那个,被均分为100单位的vmin*/
/*例:当宽度是300,高度是600,那么50vmin则是相对于宽度的50%*/
.box{
height: 56.25vmin;
background: pink;
} </style>
</head>
<body>
<div class="wrap">
<div class="box">
<p>这是一个16:9的矩形</p>
</div>
</div>
</body>
</html>

注意:如果屏幕宽度较大高度较小时,则可以用vmax。如果需要随意切换时,可以通过js来控制。

总结:
两种方法各有利弊,方法一:兼容性好,代码相对长点,理解也比较困难点。方法二:代码简洁,理清定义后便非常容易理解,但是兼容性相对差一些。不过兼容性啥的,怕什么哈哈哈。

我的前端组件 ---- 16:9固定宽高比例的div的更多相关文章

  1. 固定宽高的DIV绝对居中示例

    看了一些代码,然后自己试验了一番,分享如下示例: 实现点: 如果元素的宽高固定,那么,css指定样式为top:50%;left:50%; 而margin-top和 margin-left 指定为负数, ...

  2. 【转载】图片 CSS:怎样才能 “响应式 + 固定宽高比例”?

    自己根据项目需要,把代码摘了出来 <div class="img-box"></div> .img-box{ height:0; padding-botto ...

  3. 谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo

    前言 前端已经过了单兵作战的时代了,现在一个稍微复杂一点的项目都需要几个人协同开发,一个战略级别的APP的话分工会更细,比如携程: 携程app = 机票频道 + 酒店频道 + 旅游频道 + ..... ...

  4. Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结和踩坑

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 项目上线有一段时间了,一个基于webpack+vue+ES6的手机端多页面应用 ...

  5. 前端CSS - 相对定位,绝对定位,固定定位

    前端CSS - 相对定位,绝对定位,固定定位 1.1 相对定位 position:relative 相对定位,就是微调元素位置的.让元素相对自己原来的位置,进行位置的微调. 也就是说,如果一个盒子想进 ...

  6. 前端 JS 获取 Image 图像 宽高 尺寸

    前端 JS 获取 Image 图像 宽高 尺寸 简介 项目中用到获取图片的原始尺寸,然后适配宽高:网上的大部分前端解决方案,都是new Image()后,在onload事件中获取image的尺寸. 在 ...

  7. 从 0 到 1 到完美,写一个 js 库、node 库、前端组件库

    之前讲了很多关于项目工程化.前端架构.前端构建等方面的技术,这次说说怎么写一个完美的第三方库. 1. 选择合适的规范来写代码 js 模块化的发展大致有这样一个过程 iife => commonj ...

  8. 从DOM操作看Vue&React的前端组件化,顺带补齐React的demo

    前言 接上文:谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo 上次写完博客后,有朋友反应第一内容有点深,看着迷迷糊糊:第二是感觉没什么使用场景,太过业务化,还不如直接写Vue ...

  9. Vue.js:轻量高效的前端组件化方案

    转发一篇尤老师对vue.js的介绍,了解vue.js的来龙去脉.不过现在已经是2.0了,也有添加一些新的东西,当然有些东西也改了. Vue.js:轻量高效的前端组件化方案 Vue.js 是我在2014 ...

随机推荐

  1. docker命令大全与资源汇总

    容器生命周期管理 run  //创建一个新的容器并运行一个命令 start/stop/restart  //启动一个或多个已经被停止的容器:停止一个运行中的容器:重启容器 kill  //杀掉一个运行 ...

  2. 利用js代码自动删除稿件的普通弹幕

    事情的起因是在b站投稿了一个高级弹幕测试的视频(av9940487),但是由于b站的弹幕池机制是新的弹幕顶掉旧的弹幕,所以导致一些人发的高级弹幕很快就被顶掉了. 所以就想着写个脚本来自动删除属性为普通 ...

  3. python-Web-django-图形验证

    import random def get_random_color(): return (random.randint(0, 255), random.randint(0, 255), random ...

  4. Java架构师 成长之路 -- 跳出程序员陷阱(转载)

    本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路. 如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序 ...

  5. MacOS上安装Anaconda+Pycharm+TensorFlow+Keras

    一.安装Anaconda 登录https://www.anaconda.com/download/#macos,下载Anaconda3-5.3.1-MacOSX-x86_64.pkg 二.安装Pych ...

  6. shell脚本 自启动tomcat,nginx

    分为2步走 1. 脚本文件 : /usr/local 2. crontab -e : /5 * * * /bin/sh /usr/local/restart.sh 注意事项:可能用户权限会影响脚本的部 ...

  7. Bash Plays with Functions CodeForces - 757E (积性函数dp)

    大意: 定义函数$f_r(n)$, $f_0(n)$为pq=n且gcd(p,q)=1的有序对(p,q)个数. $r \ge 1$时, $f_r(n)=\sum\limits_{uv=n}\frac{f ...

  8. Hadoop组成架构

    Hadoop是apache用来“处理海量数据存储和海量数据分析”的分布式系统基础架构,更广义的是指hadoop生态圈.Hadoop的优势 高可靠性:hadoop底层维护多个数据副本,即使某个计算单元故 ...

  9. 类型(Type)

    A data type is homogeneous collection of values,effectiovely presented,equipped with a set of operat ...

  10. JS基础_数据类型-Number类型

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...