zoukankan      html  css  js  c++  java
  • 移动端开发之px,em和rem详解

    px:表示的是绝对的像素值,1px就是1像素大小

    em:关于em,网上有资料说是关于父元素的,但是其实个人感觉这种说法是不对的,其实em的大小是根据自身的font-size确定的,而只是正常的情况下子元素继承了父元素的font-size

    rem:是指根元素的大小,比如跟元素大小是16px(浏览器默认font-size),那么1rem的大小就是16px

    举个例子:

    我们先来写一段代码:

        <div class='div1'>
            <div class='div2'></div>
        </div>
            .div1{
                 100px;
                height: 100px;
                font-size: 16px;
            }
            .div2{
                 1em;
                height: 1em;
                background: red;
            }    

    上面的代码中,我们在浏览器运行就会得到结果,div2的width和height为16px,也就是现在div2元素的font-size的值也就是他的父元素设置的font-size的值,下面我们来改写下上面代码的css:

            .div1{
                 100px;
                height: 100px;
                font-size: 16px;
            }
            .div2{
                 1em;
                height: 1em;
                font-size: 12px;
                background: red;
            }

    当我们在div2的style里面设置了自己的font-size为12px,我们在运行代码,我们可以得到我们当前的div2中的width和height的值为12px。这样子我们就可以得到结论,em的值其实是根据自己来设定的,准确的说是自己的font-size的值,由此可见网上很多说em是相对于父元素的值的说法是错误的。

    但是在开发中我们的每个元素都有不同的font-size那么我们就需要根据这个计算出不同的width和height的em值,这样子无论是开发还是维护起来成本都太高了,还有一个更严重的问题是层级嵌套会让我们对每个元素的font-size变得混乱。

    所以一个更加友好的元素rem诞生。

    所谓的rem根据的就是跟节点的font-size的值,举个例子:

            html{
                font-size: 20px;
            }
            .div1{
                 1rem;
                height: 1rem;
                font-size: 12px;
                background: red;
            }
            <div class='div1'></div>

    运行上面的代码,我们得到了当前div的width和height的值为20px,看来rem集成的是html的font-size并没有继承自己的font-size这样子我们开发起来就有一个相对的值了,这样的意义在于我们可以根据不同页面的width来设置不同的font-size值来实现移动端的适配问题,这个也就是手淘flexible的设计原理了,下一章我将会给大家讲解一下关于flexible的源代码!

  • 相关阅读:
    day1-python简介+安装
    dgango中admin下添加搜索功能
    调用zabbix 分组api
    python 调用zabbix api实现查询主机信息,输出所有主机ip
    python实现用户登录界面
    怎样过滤跨站恶意脚本攻击(XSS)
    java服务安装(一):使用java service wrapper及maven打zip包
    详解Maven项目利用java service wrapper将Java程序生成Windows服务
    使用tomcat7-maven-plugin部署Web项目
    常用Maven插件介绍
  • 原文地址:https://www.cnblogs.com/jcscript/p/5789403.html
Copyright © 2011-2022 走看看