首页 > 其他分享 >完美的响应式布局vw+vh+rem视口布局

完美的响应式布局vw+vh+rem视口布局

时间:2022-09-28 12:15:20浏览次数:45  
标签:vw vh 布局 width 视口 rem margin

VM和VH是什么?
vw和vh是视口(viewport units)单位,
何谓视口,就是根据你浏览器窗口的大小的单位,不受显示器分辨率的影响,是不是很神奇,这就代表了,我们不需要顾虑到现在那么多不同电脑有关分辨率的自适应问题。

vw是可视窗口的宽度单位,和百分比有点一样,1vw = 可视窗口的宽度的百分之一。比如窗口宽度大小是1800px,那么1vw = 18px。和百分比不一样的是,vw始终相对于可视窗口的宽度,而百分比和其父元素的宽度有关。
vh就是可视窗口的高度了。
vmin和vmax,vmin是指选择vw和vh中最小的那个,而vmax是选择最大的那个

VM、VH 与rem的使用
1、页面布局
宽度和高度全部自动适应!再加上rem布局的字体适应,可以完美解决各种屏幕适配问题! 故这个meta元素的视口必须声明。

<meta name="viewport" content="width=device-width,initial-scale=1.0">
1
2、响应垂直居中
可以使用vw,vh来实现在页面中响应垂直居中,只需要以下代码

#box {
width: 50vw;
height: 50vh;
margin: 25vh auto;
}

只要设置margin的上下间距,使之heigit + margin-top +margin-bottom = 100 ,width + margin-left + margin-right = 100 ,就能够响应垂直居中

3、模仿bootstrap的栅栏布局
bootstrap的栅栏布局,用vw,vh能够轻松实现。

.col-2 {
float: left;
width: 50vw;
}
.col-4 {
float: left;
width: 25vw;
}
.col-5 {
float: left;
width: 20vw;
}
.col-8 {
float: left;
width: 12.5vw;
}

上面是column实例只要在一行中所有的列加起来等于100vw就实现响应式布局

4、rem布局-解决字体适配(此布局在weex中无法识别)
rem布局原理:根据CSS的媒体查询功能,更改html根字体大小,实现字体大小随屏幕尺寸变化。

@media only screen and (max-width: 1600px) and (min-width: 1280px){
html{
font-size: 14px;
}
}
@media only screen and (max-width: 1280px) and (min-width: 960px){
html{
font-size: 12px;
}
}
@media only screen and (max-width: 960px){
html{
font-size: 10px;
}
}

5、vw、vh、rem的使用
<template>
<div class="box">

</div>
</template>
<style>
.box{
width:50vw;
height: 20vh;
line-height: 20vh;
font-size: 1.5rem;
margin:0 auto;
font-weight: bold;
background-color: rgba(255,255,255,0.8);
}
</style>

上面代码中的50vw代表了 此div占据视口宽度的50%、高度占据视口高度的20%,并且会随着视口的变化,进行自适应;

字体则是1.5倍的html根字体大小。并且根据媒体查询进行字号变化。

总结:使用vw+vh+rem的布局是个不错的选择,因为视口单位有个缺点就是它没有最小或者最大限制,这就达不到我们都时候所希望的一个限制(比如窗口太小了,字都看不清)。所以我们可以在根元素上设置vw和vh,然后在根元素上限制最大最小值,然后配合body设置最大最小宽度。但要注意浏览器的兼容性问题!

版权声明:本文为CSDN博主「seven豆」的原创文章

标签:vw,vh,布局,width,视口,rem,margin
From: https://www.cnblogs.com/northLatitude/p/16737537.html

相关文章

  • 多功能手持VH501TC采集仪如何连接传感器与读数
    河北稳控科技多功能手持VH501TC采集仪如何连接传感器与读数传感器连接与读数振弦与温度传感器振弦传感器和温度传感器(NTC)均为无源传感,不需要连接电源线。根据前述“设备......
  • 最流行的布局方案 Flex 弹性盒布局详解
    Flex布局又称弹性盒布局,是在CSS3中的一种新布局方式,可以简洁、方便、响应式地实现各种页面布局,因此自一提出受到了极大地追捧,目前也得到了各大主流浏览器的支持,因此迅速替代......
  • Css布局实例 box-sizing使用
    width:33.33%;/*三个框(四框使用25%,两框使用50%,以此类推)*/width:50%;等宽度的两个框。box-Sizing:width+padding+border=元素的实际宽度height+padding......
  • css布局溢出 overflow
    overflow属性指定在元素的内容太大而无法放入指定区域时是剪裁内容还是添加滚动条。overflow属性可设置以下值:visible-默认。溢出没有被剪裁。内容在元素框外渲染(......
  • kivy入门之布局(六)
    创建堆栈布局1fromkivy.appimportApp2fromkivy.uix.stacklayoutimportStackLayout345classStackLayout(StackLayout):6"""堆栈布局"""7......
  • 如何使用手持VH501TC多功能混合传感器信号采集读数仪
    如何使用手持VH501TC多功能混合传感器信号采集读数仪电池仓电池仓位于设备背面下半部分,仅当使用5号电池供电时需要操作电池仓,锂电池供电的设备无需操作电池仓。默认情况......
  • kivy入门之布局(三)
    锚点布局1fromkivy.appimportApp2fromkivy.core.textimportLabelBase3fromkivy.uix.anchorlayoutimportAnchorLayout45LabelBase.register("Robo......
  • kivy入门之布局(二)
    盒子布局加之嵌套布局1fromkivy.appimportApp2fromkivy.core.textimportLabelBase3fromkivy.uix.boxlayoutimportBoxLayout45LabelBase.register......
  • kivy入门之布局(一)
    本篇起,主要围绕布局kivy相比较于pyqt,同为GUI开发框架,不同的是,kivy支持将控件等布局相关代码放在.kv格式结尾的文件中,应用程序在启动过程中,会自动识别加载布局文件......
  • 三栏布局
    三栏布局就是在网页上以平铺方式展现左中右三列布局,其特点在于,左右两列固定在网页两侧,中间一列永远居中,且当网页宽度大于左右两列宽度之和时,中间一列可随网页整体宽度的变......