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;
    }

          

        

  • 相关阅读:
    Visifire正式版(v1.1)发布
    [转]PSP机能强大!已能模拟运行WINDOWS系统?
    在Silverlight+WCF中应用以角色为基础的安全模式(一)基础篇之角色为基础的安全模式简介 Virus
    C#的加密解密算法,包括Silverlight的MD5算法 Virus
    MMORPG programming in Silverlight Tutorial (10)Implement the sprite’s 2D animation (Part IV)
    Game Script: Rescue Bill Gates
    MMORPG programming in Silverlight Tutorial (9)KeyFrame Animation
    MMORPG programming in Silverlight Tutorial (5)Implement the sprite’s 2D animation (Part II)
    MMORPG programming in Silverlight Tutorial (7)Perfect animation
    MMORPG programming in Silverlight Tutorial (3)Animate the object (Part III)
  • 原文地址:https://www.cnblogs.com/bllx/p/8594157.html
Copyright © 2011-2022 走看看