zoukankan      html  css  js  c++  java
  • css中rem,em,px的区别和使用场景

    一,在css中单位长度用的最多的是px、em、rem,这三个的区别是:

    1)px是固定像素,一旦设置了就无法因为适应页面而改变。

    2)em和rem相对于px更具有灵活性,因为他们是相对的长度单位(即长度不是定死的,更适用于响应式布局)。

      em和rem的区别一句话概括:em相对于父元素,rem相对于根元素(html)

      rem中的r意思是root(根源)

    二,详细介绍em

    • 子元素字体大小的em是相对于父元素字体大小
    • 元素的width/height/padding/margin的em的话是相对于该元素的font-size

    下面的一个栗子

    1 <div>
    2     我是父元素div
    3     <p>
    4         我是子元素p
    5         <span>我是孙元素span</span>
    6     </p>
    7 </div>
     1 div {
     2   font-size: 40px;
     3    10em; /* 400px */
     4   height: 10em;
     5   border: solid 1px black;
     6 }
     7 p {
     8   font-size: 0.5em; /* 20px */ 
     9    10em; /* 200px */
    10   height: 10em;
    11   border: solid 1px red;
    12 }
    13 span {
    14   font-size: 0.5em;  
    15    10em;
    16   height: 10em;
    17   border: solid 1px blue;
    18   display: block;
    19 }

    运行结果如下:

     猜猜看孙元素的字体是多少呢?

    运行结果是12px,是不是和计算的不一致?因为chrome浏览器最小字体为12px,小于这个字体就会默认使用12px.当然这一尬境可以由css3解决,这里就不多说了。

    三,详细介绍rem

    rem是全部的长度都相对于根元素,根元素是谁?<html>元素。

    使用方法:

    1)通常做法是给html元素设置字体大小,然后其他元素的长度单位就为rem

    栗子同上(html一样,只是把css中em换成rem):

     1 html {
     2     font-size: 10px;
     3     }
     4 div {
     5     font-size: 4rem; /* 40px */
     6      30rem;  /* 300px */
     7     height: 30rem;
     8     border: solid 1px black;
     9 }
    10 p {
    11     font-size: 2rem; /* 20px */
    12      15rem;
    13     height: 15rem;
    14     border: solid 1px red;
    15 }
    16 span {
    17     font-size: 1.5rem;
    18      10rem;
    19     height: 10rem;
    20     border: solid 1px blue;
    21     display: block;
    22 }

    所以你可以说出孙元素span的font-size具体值吗?

    用rem的好处:当用rem做响应式时,直接在媒体查询中改变html的font-size的大小,那么用rem作为单位的元素大小都会相应的改变,很方便。

    所以更深刻的体会到em,rem的不同(参照物的不同)

    总结:

    px 与 rem 的选择?

    对于只需要适配少部分手机设备,且分辨率对页面影响不大的,使用px即可 。

    对于需要适配各种移动设备,使用rem,例如只需要适配iPhone和iPad等分辨率差别比较挺大的设备。

    
    
    
  • 相关阅读:
    Binary Tree Inorder Traversal
    Populating Next Right Pointers in Each Node
    Minimum Depth of Binary Tree
    Majority Element
    Excel Sheet Column Number
    Reverse Bits
    Happy Number
    House Robber
    Remove Linked List Elements
    Contains Duplicate
  • 原文地址:https://www.cnblogs.com/hyns/p/12380944.html
Copyright © 2011-2022 走看看