• 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:

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

  • 相关阅读:
    [转]读取并修改App.config文件
    [转]线程和进程的概念
    实习日志(3)
    实习日志2
    实习小感,回学校啦~~~~
    请教LUA高手一段代码,希望帮忙谢谢!
    实习的日子
    vs显示 error LNK2019: 无法解析的外部符号 _main解决办法
    创建一个新窗口进程并返回进程ID号和进程的主线程ID号
    显示基本图形界面第一天
  • 原文地址:https://www.cnblogs.com/e0yu/p/14280868.html
Copyright © 2020-2023  润新知