zoukankan      html  css  js  c++  java
  • css中vw和vh的知识点

    引用文档:http://caibaojian.com/vw-vh.html;

    http://www.zhangxinxu.com/wordpress/2012/09/new-viewport-relative-units-vw-vh-vm-vmin/;

    http://blog.csdn.net/ZNYSYS520/article/details/76053961

    周六和同事讨论问题时,突然聊到了vw和vh,今天整理了一下vw和vh的一些小知识点吧,日后可以自己复习的时候看看。

    什么是viewport?

             视窗的概念在浏览器端指的是浏览器的可视区域;而在移动端则相对复杂,它涉及到3个视口:Layout Viewport(布局视口),Visual Viewport(视觉视口)、Ideal Viewport(虚拟视口),在移动端指的是Layout Viewport 

    什么是vw,vh,vmax,vmin?

      vw,vh,vmax,vmin是一种视窗单位,同时也是一种相对单位;它们相对的是视窗(viewport)的大小;单位1,代表相对于视窗大小的1%;

             vw:1vw代表视口宽度的1%;

        vh:1vh代表视口高度的1%;

        vmax:选取vw/vh中最大的一个;

        vmin:选取vw/vh中最小的一个;   

         与百分比%的区别

             百分比%相对于其父元素或者其祖先元素的宽度/高度;

       vw/vh相对于视窗大小的宽度/高度;vw/vh的优势在于能够直接获取高度,而百分比%则需要在设置body的高度

         vmax、vmin的用处

       在做移动端开发时,如果使用vw、vh设置字体大小时,在横屏和竖屏情况下是不一样大的;vmax和vmin是当前较大的vw和vh和当前较小的vw和vh,这种情况下,可以设置让字体在横竖屏现实的大小一样。

         兼容性

       PC端:    

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

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

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

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

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

              移动端:

                 Andriod:自4.4版起就完美支持;

        iOS:自ios8起支持

    实例展示:

        1、vw和vh的简单示例代码       

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>视窗vw/vh的使用</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style>
            html {
          font-size: 2vw;
        }
        .container {
           100vw;
           border: 1px solid #ddd;
        }
        .container .textPart {
          font-size: 2vw;
        }
        .container img {
           100vw;
        }
        .colorBox {
          border: 1px solid #dddddd;
          display: flex;
          margin-bottom: 10vh;
        }
        .colorBox .redBox {
           40vw;
          height: 40vh;
          background-color: #ee4433;
        }
        .colorBox .blueBox {
           6vw;
          height: 60vh;
          background-color: deepskyblue;
        }
        .colorBox .grayBox {
           4vw;
          height: 40vh;
          background-color: gray;
        }  
       </style>  
    </head>
    
    <body>
        <div class="container">
            <img src="http://jdc.jd.com/img/750x340" alt="图片">
            <p class="textPart">
                图片介绍:Lorem ipsum dolor sit amet consectetur adipisicing elit. Adipisci debitis nobis magni necessitatibus molestias pariatur? Beatae consequuntur fugit amet, unde maiores, eaque a dignissimos, quaerat vero deserunt excepturi dolorum. Tempora?
            </p>
        </div>
        <div class="colorBox">
            <div class="redBox">红色盒子</div>
            <div class="blueBox">蓝色盒子</div>
            <div class="grayBox">灰色盒子</div>
        </div>
        
    </body>
    
    </html>

     2、vw、vh、rem的搭配使用实例代码(这样使布局更优化)

             HTML代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>rem和vw搭配使用</title>
    </head>
    <body>
    <div class="container">
        <img src="http://jdc.jd.com/img/750x340" alt="图片">
        <p class="textPart">
            图片介绍:Lorem ipsum dolor sit amet consectetur adipisicing elit. Adipisci debitis nobis magni necessitatibus molestias pariatur? Beatae consequuntur fugit amet, unde maiores, eaque a dignissimos, quaerat vero deserunt excepturi dolorum. Tempora?
        </p>
    </div>
    <div class="colorBox">
        <div class="redBox">红色盒子</div>
        <div class="blueBox">蓝色盒子</div>
        <div class="grayBox">灰色盒子</div>
    </div>
    </body>
    </html>

     CSS代码

    html {
      font-size: 16px;
    }
    @media screen and (min- 375px) {
      html {
        /* iPhone6的375px尺寸作为16px基准,414px正好18px大小, 600 20px */
        font-size: calc(85.8974359%);
        font-size: calc(1.8974359px);
      }
    }
    @media screen and (min- 414px) {
      html {
        /* 414px-1000px每100像素宽字体增加1px(18px-22px) */
        font-size: calc(110.35665529%);
        font-size: calc(15.85665529px);
      }
    }
    @media screen and (min- 600px) {
      html {
        /* 600px-1000px每100像素宽字体增加1px(20px-24px) */
        font-size: calc(120%);
        font-size: calc(15px);
      }
    }
    @media screen and (min- 1000px) {
      html {
        /* 1000px往后是每100像素0.5px增加 */
        font-size: calc(132.1%);
        font-size: calc(16.6px);
      }
    }
    .container img {
      width: 100%;
      border: 1px solid #ee4433;
    }
    .container .textPart {
      font-size: 1rem;
    }
    .colorBox {
      border: 1px solid #ddd;
      display: flex;
      justify-content: space-between;
    }
    .colorBox .redBox {
      width: 11rem;
      height: 8rem;
      background-color: #ee4433;
    }
    .colorBox .blueBox {
      width: 6rem;
      height: 8rem;
      background-color: deepskyblue;
    }
    .colorBox .grayBox {
      width: 4rem;
      height: 8rem;
      background-color: gray;
    }

          

        

  • 相关阅读:
    iOS常用框架总结
    【Java】使用@Value @Reource或@Autowire依赖 (值) 注入时出现NPE的排查方法
    【Java】事件驱动模型和观察者模式
    新人训练营心得 - 道路阻且长
    【Java】Spring Web MVC注意事项
    【Linux】OpenWRT的无线设置注意事项——从2.4G到5G,hwmode不简单
    【Java】 Spring依赖注入小试牛刀:编写第一个Spring ApplicationContext Demo
    【Linux】 awk应用
    【C/C++】高亮C++中函数的重写——函数名相同?参数列表相同?返回值相同?
    【设计模式】C++单例模式的几种写法——Java自动加载内部类对象,C++怎么破?
  • 原文地址:https://www.cnblogs.com/bllx/p/8594157.html
Copyright © 2011-2022 走看看