zoukankan      html  css  js  c++  java
  • CSS长度单位详解

    序言

    长度单位可以总体的分为绝对长度单位和相对长度单位。CSS中最为大家熟知的无疑是px和em,但与此同时还存在pt, rem, vw, vh等其他计量单位,使用好它们可以大大增长我们的开发效率。本篇文章试图整理在前端开发中用到的CSS单位和其应用场景。

    px——像素

    px是pixel缩写,是基于像素的单位。在浏览网页过程中,屏幕上的文字、图片等会随屏幕的分辨率变化而变化,一个100px宽度大小的图片,在800×600分辨率下,要占屏幕宽度的1/8,但在1024×768下,则只占约1/10。所以如果在定义字体大小时,使用px作为单位,那一旦用户改变显示器分辨率从800到1024,用户实际看到的文字就要变“小”(自然长度单位),甚至会看不清,影响浏览。

    pt——磅

    pt就是point,是印刷行业常用单位,等于1/72英寸。pt全称为point,但中文不叫“点”,确切的说法是一个专用的印刷单位“磅”,大小为1/72英寸,是一个绝对长度单位。

    em——相对父元素

    em单位是指其正在使用的字体大小。在一个页面上给定一个父元素的字体大小,这样就可以通过调整一个元素来成比例的改变所有元素大小.它可以自由缩放,比如用来制作可伸缩的样式表。

    此处有一个关于【继承】的点需要注意:使用em设定宽高行高等属性的元素,其子元素继承的并不是em,而是其计算之后的值,这一点与使用百分号相同。而不添加单位,其子元素则继承的是百分比,子元素会根据其自身的字号计算得出对应属性值。具体看下面例子:

    <div style="line-height:1.5em;font-size:16px;background-color:yellow;">父元素内容    
      <div style="font-size:40px;background-color:red">
        Web前端开发   
      </div>
    </div>

     当使用em时,最外层父元素的行高是1.5*16px=24px,同时其子元素继承了该line-height,效果图如下:

    可以看出由于40px>24px,所以字体“溢出”了。而当不添加单位时:

    <div style="line-height:1.5;font-size:16px;background-color:yellow;">父元素内容    
      <div style="font-size:40px;background-color:red">
        Web前端开发   
      </div>
    </div>

    效果如下:

    其行高会跟随自身字号进行计算,继承的只是“比例"。

    rem——相对根元素

    rem是指根元素(root element)的字体大小,它会随着父元素的字体大小变化而变化,减少了父子元素之间字体大小计算的复杂程度。由于根源素的默认字体大小是16px,为了方便计算,我们可以进行如下设置:
    html{
      font-size: 62.5%;      /*10÷16*/
    }
    h1{
      line-height: 24px;
      line-height: 2.4rem;
    }

     
    IE9+ 和现代浏览器都已经支持了。

    rem非常适合做web app的开发,其在web app中的具体应用请参见:

    web app变革之rem

    萌の宇 – mobile H5布局大全-rem flexbox详解

    Flexbox——快速布局神器_flexbox, CSS3, layout 教程_w3cplus

    vw和vh——相对浏览器窗口

    vh等于viewport高度的1/100。例如,如果浏览器的高是900px,1vh求得的值为9px。同理,如果显示窗口宽度为750px,1vw求得的值为7.5px。当我们想设置跟随视口变化的字体,或是填满整个屏幕的div时,这个单位是非常有用的。

    IE10+ 和现代浏览器都支持这两个单位。

    vmin 和 vmax

    vhvm总是与视口的高度和宽度有关,与之不同的,vminvmax是与这次宽度和高度的最大值或最小值有关,取决于哪个更大和更小。例如,如果浏览器设置为1100px宽、700px高,1vmin会是7px1vmax11px。然而,如果宽度设置为800px,高度设置为1080px1vmin将会等于8px1vmax将会是10.8px

    IE10+ 和现代浏览器都已经支持vmin,webkit浏览器之前不支持vmax,现在已经支持,所有现代浏览器已经支持,但是IE全部不支持vmax。

    ex 和 ch

    exch的单位长度,依赖于特殊字符:

    • ch 字符0的宽度
    • ex 小写字符x的高度

    image

    font-family改变的时候这两个单位的值也会变化,不同字体表现的样式不一样。IE9+ 和现代浏览器都已经支持。

     

    参考:7 CSS Units You Might Not Know About

       你可能没注意到的CSS单位 

     

  • 相关阅读:
    kibana 安装和启动
    Docker安装MariaDB-10.2
    php 生成指定日期范围内的数组
    linux nohup 命令
    git的常用指令(一)
    git的常用指令(二) git add -A 、git add . 和 git add -u
    修改hosts文件 解决coursera可以登录但无法播放视频的问题
    修改mac系统的host文件 (一)
    charles 抓包 (二)
    charles 抓包 (一)
  • 原文地址:https://www.cnblogs.com/timl525/p/5035690.html
Copyright © 2011-2022 走看看