快捷搜索:   nginx

移动端的自适应——响应式、rem/em、Js动态实现移动端自适应的方法(3)


html代码:


<div class="one">
    <span>第一层</span>
    <div class="two">
        <span>第二层</span>
        <div class="three">
            <span>第三层</span>
        </div>
    </div>
</div>



css代码:


body{
    font-size: 20px;
}
.one{
    font-size: 1.5em;
}
.two{
    font-size: 0.5em;
}
.three{
    font-size: 2em;
}

结果:
   .one  --->  30px    1.5 * 20 = 30px
   .two  --->  15px    0.5 * 30 = 15px
   .three ---> 30px     2  * 15 = 30px 

代码分析:
  em会继承父级元素的字体大小,对于大多数浏览器而言,如果没有给body字体大小,则默认为16px,所以对于class名称为 one 的div而言,它的父亲是body,所以 1em = 16px; 本案例中规定了body的字体大小为20px,所以对于 .one 而言,1em = 20px ,那么 1.5em = 30px。所以 one 的 font-size 为30px。
  对于class名称为 two 的div而言,它的父亲是 one ,因为em会继承父级的元素的字体大小,所以 1em = 30px, 那么 0.5em = 15px,所以 two的 font-size为15px。
  对于class名称为 three 的div而言,它的父亲是 two ,因为em会继承父级的元素的字体大小,所以 1em = 30px, 那么 0.5em = 15px,所以 two的 font-size为15px。

    2. 相对长度单位rem
      rem是CSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。
      我们来看下面的例子:
html代码:


<div class="one">
    <span>第一层</span>
    <div class="two">
        <span>第二层</span>
        <div class="three">
            <span>第三层</span>
        </div>
    </div>
</div>

css代码:


html{
    font-size: 20px;
}
.one{
    font-size: 1.5rem;
}
.two{
    font-size: 0.5rem;
}
.three{
    font-size: 2rem;
}

结果:
   .one  --->  30px    1.5 * 20 = 30px
   .two  --->  10px    0.5 * 20 = 10px
   .three ---> 40px     2  * 20 = 40px 
代码分析:

      rem是css3中引进的新单位,rem的值始终相对于根元素html中设置的font-size大小,如果没有设置,则在大多数浏览器中默认为font-size为16px,那么1rem = 16px;

所以对于class名称为one的div而言,1.5rem = 1.5 * 20 = 30px。其他的类似,不再一一赘述。




    关于em和rem的总结:
    “em”是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小,在我们多次使用时,就会带来无法预知的错误风险。而rem则相对就好用很多了,就我所在的公司而言,在实际的项目开发中用rem的情况也是非常多的。估计在不久的将来,国内的设计师将会和国外的设计师一样,爱上rem。

  五. Js动态设置rem来实现移动端字体的自适应
    实际上讲了这么多,大家可能已经了解了rem的用法,但是还不了解如何利用rem去实现移动端的自适应。说到底,rem实现移动端自适应的原来在于它本身的特性,它可以始终根据根元素的字体大小去改变自己的值。目前各种常见手机的屏幕尺寸大小如下图所示:
顶(2)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论