• 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时需要注意的.

  • 相关阅读:
    Webform中linq to sql多条件查询(小练习)
    Webform购物车(用Session存储,页面传值)
    C#操控条形码扫描枪
    C#汉字转拼音首字母
    简单的实现QQ通信功能(五)
    简单的实现QQ通信功能(四)
    简单的实现QQ通信功能(三)
    简单的实现QQ通信功能(二)
    简单的实现QQ通信功能(一)
    利用数据集进行数据访问操作
  • 原文地址:https://www.cnblogs.com/wincent98/p/7125272.html
Copyright © 2020-2023  润新知