zoukankan      html  css  js  c++  java
  • css---vw布局来适应移动端【解决rem的bug】

    css做响应式布局,经常会用到em,rem等单位来布局,我们普遍的项目使用的是rem来进行布局,而且对于rem来布局,相应的编辑器都有对应的插件,但是使用rem来布局,有个缺点:设置HTML的font-size后,需要在页面中使用JS来动态改变HTML根元素的font-size,从而实现响应式布局,略显麻烦,而且有时候回出现闪烁的情况。

    解决这个rem布局的这个bug可以使用CSS3的vw来进行响应式布局。

    先理解下视口?

    在桌面端,视口指的是在桌面端,指的是浏览器的可视区域;而在移动端,它涉及3个视口:Layout Viewport(布局视口),Visual Viewport(视觉视口),Ideal Viewport(理想视口)。

    视口单位中的“视口”,桌面端指的是浏览器的可视区域;移动端指的就是Viewport中的Layout Viewport。

    根据CSS3规范,视口单位主要包括以下4个:

    1.vw:1vw等于视口宽度的1%。

    2.vh:1vh等于视口高度的1%。

    3.vmin:选取vw和vh中最小的那个。

    4.vmax:选取vw和vh中最大的那个。

    vh and vw:相对于视口的高度和宽度,而不是父元素的(CSS百分比是相对于包含它的最近的父元素的高度和宽度)。1vh 等于1%的视口高度,1vw 等于1%的视口宽度。

    比如:视口高度为:750*1080px,那么:1vw = 7.5px,1vh = 10.80px

    怎么快速的换算出vw?

    使用起来vw确实不错,但是如何快速的换算呢?难道我们每写一个样式,还要去手动的换算vw吗?这样的效率极低

    解决方法:

    就目前来说,vue有比较成熟的解决方法,对于使用编辑器来说,例如我用的是sublime编辑器,并没有类似的插件。

    我的解决方法:利用cssrem来做转化,这个插件的好处在于可以快速的将像素转化为rem,更改转化比例就可以进行快速转化。

    例如:我的是750px的设计稿,在sublime中配置rem的转化是:75(cssrem.sublime-settings)

    {
        "px_to_rem": 75,
        "max_rem_fraction_length": 6,
        "available_file_types": [".css", ".less", ".sass"]
    }

    如果要按照这个来换算:1px = 7.5vw,所以需要更改配置:

    {
        "px_to_rem": 7.5,
        "max_rem_fraction_length": 6,
        "available_file_types": [".css", ".less", ".sass"]
    }

    这样就进行了转化,但是有个缺点:每次px转化后的单位是rem,还需要将rem改为vw:

    选择100px ->rem(7.5)

    然后将rem改为vw:

    以上是我的处理方式,以后如果有更好的解决方法,我会进行更新。 

  • 相关阅读:
    Wpf 数据绑定实例2
    Wpf 数据绑定简介、实例1
    Wpf ListBox数据绑定实例1--绑定字典集合
    Wpf控件ListBox使用实例2
    阿里UX矢量图标库–最强大的矢量图标库(Icon font制作力荐工具)
    Web字体工具整理,网页图标字体以及使用方法整理
    ICOMOON!强悍的WEB字体图标制造器/Web字体使用实例
    window.applicationCache事件,介绍
    HTML5 离线缓存忽略主页实例
    条件注释判断浏览器版本<!--[if lt IE 9]>(转载)
  • 原文地址:https://www.cnblogs.com/e0yu/p/14280868.html
Copyright © 2011-2022 走看看