zoukankan      html  css  js  c++  java
  • em与当前元素的不解之缘

    em是相对于当前元素的字体大小而言,比如font-size:14px;那么这个元素的1em=14px.

    如果当前元素未定义字体大小,则会向上继承父元素的字体大小,如果当前元素的所有祖先元素都没有定义font-size属性值,该元素就会继承浏览器默认样式.

    所有浏览器的默认字体大小都是16px.

    这样,1em=16px,0.75em=16px*0.75=12px

    可是这么计算有点麻烦啊?好办,我们通常在样式中会声明这么一句body{font-size:62.5%}

    即设置默认字体大小16px*62.5%=10px;

    这样一来,1em=10px,0.75em=7.5px,是不是方便了一些呢?

    再来个例子

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
            *{padding:0;margin:0;}
            html{font-size:62.5%;}
            p{display:inline-block;border:1px solid silver;}
            /*使用px作为单位*/
            #p1
            {
                font-size:15px;
                width:150px;
                height:75px;
                text-indent:30px;
            }
            /*使用em作为单位*/
            #p2
            {
                font-size:1.5em;
                width:10em;
                height:5em;
                text-indent:2em;
            }
        </style>
    </head>
    <body>
        <p id="p1">两个段落的文字呈现相同的样式</p><br />
        <p id="p2">两个段落的文字呈现相同的样式</p>
    </body>
    </html>

    结果是两个段落的文字呈现相同的样式.

    可能有人会问,p2的width不应该是15em吗?height不应该是7.5em吗?text-indent不应该是3em吗?

    可是别忘了em的定义啊,是相对于当前元素的字体大小而言的,p2的字体大小被设置成了1.5em=15px;

    那么对这个元素而言,1em就是15px了,所以width=150px/15px=10em;height,text-indent依此类推;

    这就是统一单位为em时需要注意的.

  • 相关阅读:
    软件工程第十四周学习进度条
    软件工程第十五周学习进度条
    课堂练习-买书价格最低
    找水王2
    Struts结合马士兵视频的学习经验
    Spring结合马士兵视频的学习经验
    浅谈 《大型网站技术架构》 五六七章
    以《淘宝网》为例,描绘质量属性的六个常见属性场景
    浅谈架构漫谈
    软件架构设计师工作流程
  • 原文地址:https://www.cnblogs.com/wincent98/p/7125272.html
Copyright © 2011-2022 走看看