css3新单位vw、vh、vmin、vmax的使用详解
1,vw、vh、vmin、vmax 的含义
- vw:视窗宽度的百分比(1vw 代表视窗的宽度为 1%)
- vh:视窗高度的百分比
- vmin:当前 vw 和 vh 中较小的一个值
- vmax:当前 vw 和 vh 中较大的一个值
2,vw、vh 与 % 百分比的区别
3,vmin、vmax 用处
4,浏览器兼容性
- Chrome:自 26 版起就完美支持(2013年2月)
- Firefox:自 19 版起就完美支持(2013年1月)
- Safari:自 6.1 版起就完美支持(2013年10月)
- Opera:自 15 版起就完美支持(2013年7月)
- IE:自 IE10 起(包括 Edge)到现在还只是部分支持(不支持 vmax,同时 vm 代替 vmin)
- Android:自 4.4 版起就完美支持(2013年12月)
- iOS:自 iOS8 版起就完美支持(2014年9月)
二、一个简单的样例
二、一个简单的样例
1,页面代码
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< title >hangge.com</ title >
< style >
html, body, div, span, h1, h2, h3 {
margin: 0;
padding: 0;
border: 0;
} .demo {
width: 100vw;
font-size: 5vw;
margin: 0 auto;
background-color: #50688B;
color: #FFF;
} .demo2 {
width: 80vw;
font-size: 5vw;
margin: 0 auto;
background-color: #ff6a00;
} .demo3 {
width: 50vw;
height: 50vh;
font-size: 1vw;
margin: 0 auto;
background-color: #ff006e;
color: #FFF;
}
</ style >
</ head >
< body >
< div class = "demo" >
< h1 >宽度100%, 字体5%</ h1 >
</ div >
< div class = "demo2" >
< h2 >宽度80%, 字体5%</ h2 >
</ div >
< div class = "demo3" >
< h3 >宽度50%, 高度50%, 字体1%</ h3 >
</ div >
</ body >
</ html >
2,效果图

三、实现完整覆盖的遮罩层
1,样例代码
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< title >hangge.com</ title >
< style >
html, body, div, span, button {
margin: 0;
padding: 0;
border: 0;
} button {
width: 120px;
height: 30px;
color: #FFFFFF;
font-family: "微软雅黑";
font-size: 14px;
background: #28B995;
} #mask {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
background: #000000;
opacity: 0.5;
display: none;
}
</ style >
</ head >
< body >
< button onclick = "document.getElementById('mask').style.display='inline'" >点击显示遮罩</ button >
< div id = "mask" onclick = "document.getElementById('mask').style.display='none'" /></ div >
</ body >
</ html >
2,效果图

四、实现居中显示的弹出框
1,弹出框大小随内容自适应
- 点击弹出按钮后,会显示一个在整个屏幕上居中显示的弹出框。
- 弹出框的大小根据内容的大小自适应(logo 图片),同时弹出框后面还有个覆盖整个屏幕的半透明遮罩层。
- 点击关闭按钮后,则隐藏弹出框。

<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< title >hangge.com</ title >
< script type = "text/javascript" src = "js/jquery.js" ></ script >
< style >
html, body, div, span, button {
margin: 0;
padding: 0;
border: 0;
} button {
width: 120px;
height: 30px;
color: #FFFFFF;
font-family: "微软雅黑";
font-size: 14px;
background: #28B995;
} .dialog-container {
display: none;
width: 100vw;
height: 100vh;
background-color: rgba(0,0,0,.35);
text-align: center;
position: fixed;
top: 0;
left: 0;
z-index: 10;
} .dialog-container:after {
display: inline-block;
content: '';
width: 0;
height: 100%;
vertical-align: middle;
} .dialog-box {
display: inline-block;
border: 1px solid #ccc;
text-align: left;
vertical-align: middle;
position: relative;
} .dialog-title {
line-height: 28px;
padding-left: 5px;
padding-right: 5px;
border-bottom: 1px solid #ccc;
background-color: #eee;
font-size: 12px;
text-align: left;
} .dialog-close {
position: absolute;
top: 5px;
right: 5px;
font-size: 12px;
} .dialog-body {
background-color: #fff;
}
</ style >
</ head >
< body >
< button onclick = "$('#dialogContainer').show();" >点击显示弹出框</ button >
< div id = "dialogContainer" class = "dialog-container" >
< div class = "dialog-box" >
< div class = "dialog-title" >居中弹出框</ div >
< a onclick = "$('#dialogContainer').hide();" class = "dialog-close" >关闭</ a >
< div class = "dialog-body" >
< img src = "logo.png" class = "demo-image" />
</ div >
</ div >
</ div >
</ body >
</ html >
2,弹出框大小随视窗大小改变
- 点击弹出按钮后,会显示一个在整个屏幕上居中显示的弹出框。
- 弹出框的大小不再由内容的大小决定,而是随视窗大小改变(宽高均为屏幕可视区域的 80%)。
- 点击关闭按钮后,则隐藏弹出框。

<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< title >hangge.com</ title >
< script type = "text/javascript" src = "js/jquery.js" ></ script >
< style >
html, body, div, span, button {
margin: 0;
padding: 0;
border: 0;
} button {
width: 120px;
height: 30px;
color: #FFFFFF;
font-family: "微软雅黑";
font-size: 14px;
background: #28B995;
} .dialog-container {
display: none;
width: 100vw;
height: 100vh;
background-color: rgba(0,0,0,.35);
text-align: center;
position: fixed;
top: 0;
left: 0;
z-index: 10;
} .dialog-box {
top:10vh;
left:10vw;
width: 80vw;
height: 80vh;
text-align: left;
position: absolute;
border: 1px solid #ccc;
display: flex;
flex-direction: column;
} .dialog-title {
line-height: 28px;
padding-left: 5px;
padding-right: 5px;
border-bottom: 1px solid #ccc;
background-color: #eee;
font-size: 12px;
text-align: left;
} .dialog-close {
position: absolute;
top: 5px;
right: 5px;
font-size: 12px;
} .dialog-body {
background-color: #fff;
flex:1;
overflow: auto;
}
</ style >
</ head >
< body >
< button onclick = "$('#dialogContainer').show();" >点击显示弹出框</ button >
< div id = "dialogContainer" class = "dialog-container" >
< div class = "dialog-box" >
< div class = "dialog-title" >居中弹出框</ div >
< a onclick = "$('#dialogContainer').hide();" class = "dialog-close" >关闭</ a >
< div class = "dialog-body" >
< img src = "logo.png" class = "demo-image" />
</ div >
</ div >
</ div >
</ body >
</ html >
五、显示大图时限制其最大尺寸
1,效果图


2,样例代码
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< title >hangge.com</ title >
< script type = "text/javascript" src = "js/jquery.js" ></ script >
< style >
html, body, div, span, button {
margin: 0;
padding: 0;
border: 0;
} button {
width: 120px;
height: 30px;
color: #FFFFFF;
font-family: "微软雅黑";
font-size: 14px;
background: #28B995;
} .dialog-container {
display: none;
width: 100vw;
height: 100vh;
background-color: rgba(0,0,0,.35);
text-align: center;
position: fixed;
top: 0;
left: 0;
z-index: 10;
} .dialog-container:after {
display: inline-block;
content: '';
width: 0;
height: 100%;
vertical-align: middle;
} .dialog-box {
display: inline-block;
text-align: left;
vertical-align: middle;
position: relative;
} .demo-image {
max-width: 90vw;
max-height: 90vh;
}
</ style >
</ head >
< body >
< button onclick = "$('#dialogContainer').show();" >点击显示大图</ button >
< div id = "dialogContainer" class = "dialog-container" onclick = "$('#dialogContainer').hide();" >
< div class = "dialog-box" >
< img src = "image.jpg" class = "demo-image" />
</ div >
</ div >
</ body >
</ html >
六、实现 Word 文档页面效果
1,效果图

2,样例代码
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< title >hangge.com</ title >
< script type = "text/javascript" src = "js/jquery.js" ></ script >
< style >
html, body, div, span, button {
margin: 0;
padding: 0;
border: 0;
} body {
background-color: #789BC9;
} page {
display: block;
height: 98vh;
width: 69.3vh;
margin: 1vh auto;
padding: 12vh;
border: 1px solid #646464;
box-shadow: 0 0 15px rgba(0,0,0,.75);
box-sizing: border-box;
background-color: white;
position: relative;
} page:after {
content: attr(data-page);
color: graytext;
font-size: 12px;
text-align: center;
bottom: 4vh;
position: absolute;
left: 10vh;
right: 10vh;
} a {
color: #34538b;
font-size: 14px;
}
</ style >
< script type = "text/javascript" >
$(document).ready(function(){
var lenPage = $("page").length;
//自动添加每页底部的页码
$("page").each(function(i){
$(this).attr("data-page", "第 "+ (i+1) +" 页,共 "+ lenPage +" 页");
});
});
</ script >
</ head >
< body >
< page >< a href = "http://hangge.com" >欢迎访问 hangge.com</ a ></ page >
< page ></ page >
< page ></ page >
</ body >
</ html >
原文出自: www.hangge.com
css3新单位vw、vh、vmin、vmax的使用详解的更多相关文章
- CSS3 - 新单位vw、vh、vmin、vmax使用详解(附样例)
像 px.em 这样的长度单位大家肯定都很熟悉,前者为绝对单位,后者为相对单位.CSS3 又引入了新单位:vw.vh.vmin.vmax.下面对它们做个详细介绍. 一.基本说明 1,vw.vh.vmi ...
- CSS3新单位vw、vh、vmin、vmax使用详解
像 px.em 这样的长度单位大家肯定都很熟悉,前者为绝对单位,后者为相对单位.CSS3 又引入了新单位:vw.vh.vmin.vmax.下面对它们做个详细介绍. 新单位也成为视窗单位,视窗(View ...
- CSS3新单位vw,vh,vmin,vmax详解
1,vw,vh,vmin,vmax是由视窗Viewport大小来决定的,单位1,代表1%,是一种相对单位,只要是为响应式适配视窗的一种解决方案: vw:view width(视窗宽度)的百分比,1vw ...
- css新单位vw,vh在响应式设计中的应用
考虑到未来响应式设计的开发,如果你需要,浏览器的高度也可以基于百分比值调整.但使用基于百分比值并不总是相对于浏览器窗口的大小定义的最佳方式,比如字体大小不会随着你窗口改变而改变,如今css3引入的新单 ...
- css新单位 vw , vh
考虑到未来响应式设计的开发,如果你需要,浏览器的高度也可以基于百分比值调整.但使用基于百分比值并不总是相对于浏览器窗口的大小定义的最佳方式,比如字体大小不会随着你窗口改变而改变,如今css3引入的新单 ...
- css3新单位vw、vh、vmin、vmax的使用介绍
1,vw.vh.vmin.vmax 的含义 (1)vw.vh.vmin.vmax 是一种视窗单位,也是相对单位.它相对的不是父节点或者页面的根节点.而是由视窗(Viewport)大小来决定的,单位 1 ...
- css3新单位vw、vh、vmin、vmax的使用详解(转载)
文章传送门: https://blog.csdn.net/ZNYSYS520/article/details/76053961
- CSS3 - 新单位vw、vh、vmin、vmax使用详解
参考文章出自:https://www.hangge.com/blog/cache/detail_1715.html
- css3新单位vw、vh的使用详解
响应式布局的单位我们第一时间会想到通过rem单位来实现适配,但是它还需要内嵌一段脚本去动态计算跟元素大小. 比如: (function (doc, win) { let docEl = doc.doc ...
- css3新单位学习
vw,vh,vmin,vmax vw 1vw = 视窗width*1% vh 1vh = 视窗heihgt*1% 如果视窗的宽度小于高度,1vmin = 1vw,如果视窗宽度大于高度,1vmin = ...
随机推荐
- maven打包出现 ����applets.user.service.UserService����-2022新项目
一.问题由来 新项目的框架刚搭建好,还不能正常的运行,我们这边就开始写代码,因为项目还在设计阶段,很多东西比如说需求 都还在讨论之中.分层架构采用的是cola4.0的架构,具体的代码由我们自己来进行实 ...
- 浏览器的文件访问 API 入门(英文)- 资料
浏览器的文件访问 API 入门(英文)- 资料 浏览器现在提供了文件访问 API(File System Access API),允许网页 JS 脚本读写本地文件,本文是一个详细的介绍.另外,也可以参 ...
- drf(分页、IP限制用户频率、自动生成文档、RBAC、django缓存)
一 分页 settings.py REST_FRAMEWORK = {'PAGE_SIZE': 2, } views.py # 分页 from rest_framework.pagination im ...
- Avalonia 11.1.0-beta1 发布
11.1.0-beta1 Avalonia 是 dotnet 的跨平台 UI 框架,提供灵活的样式系统,支持 Windows.macOS.Linux.iOS.Android 和 WebAssembly ...
- uni-app 应对微信小程序最新隐私协议接口要求的处理方法
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一,问题起因 最新在开发小程序的时候,调用微信小程序来获取用户信息的时候经常报错一个问题 fail api scope is not de ...
- 记录--一个炫酷的css动画
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 最近有一个需求,要我实现一个动画效果,效果如下 简单分析了一下效果,是一个3d的效果,首先是一个圆,接着是两段圆环,第三层是一堆小圆环,最 ...
- ARM和x86比较
信不信,随便逮住一个人问他知不知道CPU,我想他的答案一定会是肯定的,但是如果你再问他知道ARM和X86架构么?这两者的区别又是什么?绝大多数的人肯定是一脸懵逼.今天小编就带你深入了解CPU的这两大架 ...
- Docker部署之使用docker-compose部署(全新的干净的服务器,从0开始搭建)
部署环境准备 安装yum # 安装yum工具 yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken 安装d ...
- SpringBoot集成LDAP同步数据
1.pom引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...
- 探索Django REST框架构建强大的API
本文分享自华为云社区<探索Django REST框架构建强大的API>,作者:柠檬味拥抱. 在当今的Web开发中,构建强大的API已经成为了不可或缺的一部分.而在Python领域,Djan ...