美文网首页前端基础视觉艺术
Css - 长度单位px、pt、em、rem

Css - 长度单位px、pt、em、rem

作者: ElricTang | 来源:发表于2019-10-19 23:39 被阅读0次

    一. 相对长度单位

    1. em是相对于当前元素的字体大小。(设置font-size时特殊)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
                div{
                    font-size:30px;
                }
                .p1{
                    font-size:20px;
                    text-indent:1em;
                }
                .p2{
                    font-size:20px;
                    text-indent:20px;
                }
                .p3{
                    text-indent:1em;
                }
            </style>
        </head>
        <body>
            <div>
                <p class="p1">hello world - 设置了自身元素的字体大小</p>
                <p class="p2">hello world - 设置了自身元素的字体大小</p>
                <p class="p3">hello world - 没有设置自身元素字体大小</p>
            </div>      
        </body>
    </html>
    
    • 我们设置父元素div字体大小为30px
    • p1设置了自身元素的字体大小为20px,缩进设置为1em
    • p2设置了自身元素的字体大小为20px,缩进设置为20px
    • 最终效果,p1p2的字体大小都为20px,缩进都为20px,和明显text-indent内的em是相对于自身元素的字体大小计算的。
    • p3没有设置自身元素的字体大小,最终效果是:字体大小为30px,缩进也为30px
    • 既然如此,那em不是相对于父元素字体大小吗?p3其实是继承了继承了父元素的字体大小,也就是说p3font-size也是30px,然后text-indentem其实也是根据p3的自身元素字体大小计算的。

    为什么有时候说em是根据父元素的字体大小计算呢?

    • 因为在设置font-size的时候可以这么理解。
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
                div{
                    font-size:30px;
                }
                p{
                    font-size:1em;
                }
            </style>
        </head>
        <body>
            <div>
                <p>hello world</p>
            </div>
        </body>
    </html>
    
    • 在给子元素设置font-size时发现em的确是相对于父元素的字体大小。其实也很好理解,因为设置子元素的font-size时,元素的字体大小还没有,那怎么参考自己呢?答案就是参考父元素。

    2. rem是全部的长度都相对于根元素<html>

    • em需要考虑父元素的关系,html的结构有时候是比较复杂的,每次使用em都要考虑的话不利于维护。
    • rem直接统一参考系为根元素,每次使用rem时先设置<html>的字体大小。
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
                html{
                    font-size:25px;
                }
                p{
                    font-size:2rem;
                }
            </style>
        </head>
        <body>
            <p>hello world</p>
        </body>
    </html>
    

    二. 绝对长度单位

    1. px 像素(1px = 1/96th of 1英寸( 2.54cm))

    2. pt 点(1pt = 1/72th of 1英寸( 2.54cm))

    相关文章

      网友评论

        本文标题:Css - 长度单位px、pt、em、rem

        本文链接:https://www.haomeiwen.com/subject/wkvrmctx.html