iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >css3新单位vw、vh怎么用
  • 858
分享到

css3新单位vw、vh怎么用

2024-04-02 19:04:59 858人浏览 安东尼
摘要

这篇文章主要为大家展示了“css3新单位vw、vh怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS3新单位vw、vh怎么用”这篇文章吧。响应式布局的单

这篇文章主要为大家展示了“css3新单位vw、vh怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS3新单位vw、vh怎么用”这篇文章吧。

响应式布局的单位我们第一时间会想到通过rem单位来实现适配,但是它还需要内嵌一段脚本去动态计算跟元素大小。

比如:

(function (doc, win) {
  let docEl = doc.documentElement
  let resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
  let recalc = function () {
    var clientWidth = docEl.clientWidth
    if (!clientWidth) return
    docEl.style.fontSize = 14 * (clientWidth / 320) + 'px'
  }
  if (!doc.addEventListener) return
  win.addEventListener(resizeEvt, recalc, false)
  doc.addEventListener('DOMContentLoaded', recalc, false)
})(document, window)

那有没有一个单位不需要js和CSS耦合在一起的单位?答案是有的,就是vw/vh。

vw = view width
vh = view height

这两个单位是CSS3引入的,以上称为视口单位允许我们更接近浏览器窗口定义大小。

vw、vh、vmin、vmax 的含义

(1)vw、vh、vmin、vmax 是一种视窗单位,也是相对单位。它相对的不是父节点或者页面的根节点。而是由视窗(Viewport)大小来决定的,单位 1,代表类似于 1%。

视窗(Viewport)是你的浏览器实际显示内容的区域—,换句话说是你的不包括工具栏和按钮的网页浏览器。

(2)具体描述如下:

  • vw:视窗宽度的百分比(1vw 代表视窗的宽度为 1%)

  • vh:视窗高度的百分比

  • vmin:当前 vw 和 vh 中较小的一个值

  • vmax:当前 vw 和 vh 中较大的一个值 

  •  

vw、vh 与 % 百分比的区别

(1)% 是相对于父元素的大小设定的比率,vw、vh 是视窗大小决定的。

(2)vw、vh 优势在于能够直接获取高度,而用 % 在没有设置 body 高度的情况下,是无法正确获得可视区域的高度的,所以这是挺不错的优势。

vmin、vmax 用处

做移动页面开发时,如果使用 vw、wh 设置字体大小(比如 5vw),在竖屏和横屏状态下显示的字体大小是不一样的。

由于 vmin 和 vmax 是当前较小的 vw 和 vh 和当前较大的 vw 和 vh。这里就可以用到 vmin 和 vmax。使得文字大小在横竖屏下保持一致。

浏览器兼容性

(1)桌面 PC

  • Chrome:自 26 版起就完美支持(2013年2月)

  • Firefox:自 19 版起就完美支持(2013年1月)

  • Safari:自 6.1 版起就完美支持(2013年10月)

  • Opera:自 15 版起就完美支持(2013年7月)
     

IE:自 IE10 起(包括 Edge)到现在还只是部分支持(不支持 vmax,同时 vm 代替 vmin)

(2)移动设备

Android:自 4.4 版起就完美支持(2013年12月)

iOS:自 iOS8 版起就完美支持(2014年9月)
 

如何利用视口单位适配页面

仅使用vw作为CSS单位

1.根据设计稿的尺寸转换为vw单位(SASS函数编译)

//iPhone 6尺寸作为设计稿基准
$vm_base: 375;
@function vm($px) {
    @return ($px / 375) * 100vw;
}

2.无论是文本还是布局高宽、间距等都使用 vw

< div class="mod_nav">
            < nav class="mod_nav_list" v-for="n in 5">
                < a href="#" class="mod_nav_list_item">
                    < span class="mod_nav_list_item_loGo">
                < img src="Http://jdc.jd.com/img/80">
                    < /span>
                    < p class="mod_nav_list_item_name">导航入口< /p>
                < /a>
            < /nav>
< /div>
.mod_nav {
    background: #fff;
    &_list {
        display: flex;
        padding: vm(15) vm(10) vm(10);
        &_item {
            flex: 1;
            text-align: center;
            font-size: vm(10);
            &_logo {
                display: block;
                margin: 0 auto;
                width: vm(40);
                height: vm(40);
                img {
                    display: block;
                    margin: 0 auto;
                    max-width: 100%;
                }
            }
            &_name {
                margin-top: vm(2);
            }
        }
    }
}

最优做法&mdash;&mdash;搭配vw和rem

使用vm作为css单位代码量确实减少很多,但是你会发现它是利用视口单位实现,依赖于视口大小而自动缩放,失去了最大最小宽度的限制。

于是,联想到不如结合rem单位来实现布局?rem 弹性布局的核心在于动态改变根元素大小,那么我们可以通过:&middot;

给根元素大小设置随着视口变化而变化的 vw 单位,这样就可以实现动态改变其大小。

限制根元素字体大小的最大最小值,配合 body 加上最大宽度和最小宽度

这样我们就能够实现对布局宽度的最大最小限制。因此,根据以上条件,我们可以得出代码实现如下:

// rem 单位换算:定为 75px 只是方便运算,750px-75px、640-64px、1080px-108px,如此类推
$vm_fontsize: 75; // iPhone 6尺寸的根元素大小基准值
@function rem($px) {
     @return ($px / $vm_fontsize ) * 1rem;
}
// 根元素大小使用 vw 单位
$vm_design: 750;
html {
    font-size: ($vm_fontsize / ($vm_design / 2)) * 100vw;
    // 同时,通过Media Queries 限制根元素最大最小值
    @media screen and (max-width: 320px) {
        font-size: 64px;
    }
    @media screen and (min-width: 540px) {
        font-size: 108px;
    }
}
// body 也增加最大最小宽度限制,避免默认100%宽度的 block 元素跟随 body 而过大过小
body {
    max-width: 540px;
    min-width: 320px;
}

以上是“css3新单位vw、vh怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: css3新单位vw、vh怎么用

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

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

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

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

下载Word文档
猜你喜欢
  • css3新单位vw、vh怎么用
    这篇文章主要为大家展示了“css3新单位vw、vh怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css3新单位vw、vh怎么用”这篇文章吧。响应式布局的单...
    99+
    2024-04-02
  • css3中的新单位vw、vh、vmin、vmax怎么使用
    本文小编为大家详细介绍“css3中的新单位vw、vh、vmin、vmax怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“css3中的新单位vw、vh、vmin、vmax怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-04
  • css3中新单位vw、vh、vmin、vmax有什么用
    这篇文章主要为大家展示了“css3中新单位vw、vh、vmin、vmax有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css3中新单位vw、vh、vmi...
    99+
    2024-04-02
  • css3中vh和wh单位怎么使用
    今天小编给大家分享一下css3中vh和wh单位怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
  • CSS 单位属性指南:em,rem,px 和 vw/vh
    CSS 单位属性指南:em,rem,px 和 vw/vh在编写CSS样式时,选择合适的单位属性是非常重要的。本文将介绍几种常用的单位属性:em,rem,px 和 vw/vh,并提供具体的代码示例。emem(字体尺寸单位)是相对于父元素字体尺...
    99+
    2023-10-25
    rem CSS 单位指南:em px和vw/vh
  • CSS 单位属性优化技巧:em,rem,px 和 vw/vh
    引言:在网页设计和开发中,CSS 单位属性起着非常重要的作用。正确选择和使用合适的单位属性可以使得页面在不同的设备和屏幕尺寸下展示得更加美观和一致。本文将介绍一些常用的 CSS 单位属性,并提供具体的代码示例来帮助读者更好地掌握这些优化技巧...
    99+
    2023-10-21
    rem em vw/vh
  • CSS中px、em、rem、%、vw、vh单位之间的区别是什么
    这篇文章将为大家详细讲解有关CSS中px、em、rem、%、vw、vh单位之间的区别是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 、pxpx就是pixel(像素)的缩写,相对长度单位,相对于屏幕...
    99+
    2023-06-08
  • CSS中单位px、rem、em、vh、vw之间的区别有哪些
    这篇文章将为大家详细讲解有关CSS中单位px、rem、em、vh、vw之间的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。绝对长度pxpx是像素值,是一个固定的长度,比如我们的米,厘米一样。相对...
    99+
    2023-06-08
  • 纯css3使用vw和vh实现自适应的示例分析
    小编给大家分享一下纯css3使用vw和vh实现自适应的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!响应式布局的实现依靠媒体查询( Media Queries )来实现,选取主流设备宽度尺寸作为断点针对性写额外的样...
    99+
    2023-06-08
  • css中vw是什么单位
    vw 是 css 中的视口宽度单位,它相对于视口宽度,即浏览器中可见区域的尺寸。vw 单位的值是视口宽度的百分比,例如 1vw 等于视口宽度的 1%。它用于创建响应式设计,确保元素的尺寸...
    99+
    2024-04-26
    css
  • CSS3中REM单位怎么使用
    这篇文章主要介绍“CSS3中REM单位怎么使用”,在日常操作中,相信很多人在CSS3中REM单位怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS3中REM单位怎么...
    99+
    2024-04-02
  • css3的长度单位怎么用
    本文小编为大家详细介绍“css3的长度单位怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“css3的长度单位怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • css3新增的单位有哪些
    本文小编为大家详细介绍“css3新增的单位有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“css3新增的单位有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • css3单位指的是什么
    这篇文章主要介绍了css3单位指的是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css3单位指的是什么文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • vue vw怎么使用
    本篇内容介绍了“vue vw怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在vue中,vw是一种视口单位,是根据窗口的宽度,分成10...
    99+
    2023-07-04
  • css3中em指的是什么单位
    小编给大家分享一下css3中em指的是什么单位,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 在css3中,em是一个相对长度单位,相对于当前对象内文本的字体尺...
    99+
    2024-04-02
  • css3中各单位的区别是什么
    本篇内容主要讲解“css3中各单位的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css3中各单位的区别是什么”吧!px:绝对单位,页面按精确像素展示...
    99+
    2024-04-02
  • 怎么用css3新增属性content
    这篇文章将为大家详细讲解有关怎么用css3新增属性content,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。     一、详解content属性 ...
    99+
    2024-04-02
  • 怎么用CSS3美化HTML表单
    这篇文章主要讲解了“怎么用CSS3美化HTML表单”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用CSS3美化HTML表单”吧!表单是做网页中很常使用到...
    99+
    2024-04-02
  • 怎么使用CSS3美化HTML5表单
    小编给大家分享一下怎么使用CSS3美化HTML5表单,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!目前表单格式如下:#redem...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作