静态页面制作:13padding的用法

    这一节我们来说说留白
 
 
    留白有什么用?padding到底有什么用,我们在分析之前,先回顾一下我们之前遇到的那几层结构。
 
    在结构中我们有边距、边框和留白,在这里我们提出一个问题,
 
    就是一个元素的宽度和高度边界到底在哪里?
 
    我们通过图片为大家展示:
 
    我们在这里直接告诉大家,一个元素的宽度就等于内容宽度+左右留白,
 
    一个元素的高度就等于内容高度+上下留白。
 
    虽然公式很简单,但有句话说越简单的公式其中越有料。
 
    有什么料呢?我们通过一个例子来看看这个公式能有什么作用?
 
 
    假设我们有一个div,然后宽度是100,高度是960,这整个div区域都可以写内容。
 
    如果我们套用刚刚说的公式就如下:
 
 
    元素宽度是已经设定好的960等于内容宽度+左右留白。
 
    现在的内容宽度是960,然后左右留白是0.这样一算,元素的总宽度就出来了。
 
    元素高度的算法是一样的。
 
    如果我们为div设定一些留白padding,我们来看看会变成什么样?
 
 
    先宽度总数并没有改变,但是由于有了左右留白共计40像素,
 
    这时候的内容宽度就变小了,由于上下也有了留白,所以内容的高度也变小了。
 
    这是怎么回事呢?就是在我们给div已经设置好宽度之后,
 
    在设置padding的话,就会压缩内容宽度和内容高度。
 
    现在我们在把上一节讲到margin最后的一个例子重现一下。
 
 
    当时我们说紧靠浏览器上边缘的元素,
 
    比如说div中的第一个子元素课后帮设置margin-top的话,
 
    他就连带div也一同顶下来,并没有跟随我们预期的效果。
 
    对于这种情况,我们也进行了分析,就是我们换个角度思考,
 
    我们认为是div容器的上边缘的部分就是不想有内容。我们来看看怎么做。
 
 
    元素宽度等于内容宽度加上左右留白,元素高度等于内容高度加上上下留白。
 
    此时我们希望课后帮在不连带div的基础上,向下挪一点。这个问题怎么解决。
 
 
    其实呢,宽度我们可以不动,而高度上我们可以给div设定一个上部的留白,
 
    由于元素高度已经设定,所以设置padding的时候,就会压缩内容高度,
 
    这样一减,内容高度就变小了。也就相当于把课后帮这几个字往下挪了20像素,
 
    同时div的这个区域并没有发生任何变化。
 
    这个就是padding的第一个作用
 
 
    就是宽度高度已设定的时候,padding可以改变内部元素的位置,
 
    我们在回到刚刚写过的公式
 
 
    我们说这个简单的公式很有料,所以我们换一个角度在来看看。
 
 
    假设、如果我们现在遇到的是inline元素,由于他的特性,无法设定高度和宽度,
 
    宽度和告诉完全取决于课后帮这几个字。那么我们在来套用一下公式。
 
 
    课后帮此时的宽度和高度是不可以设定的,也就是说此时课后帮的宽度和高度完全是算出来的。
 
    怎么算的呢,就是由内容宽度加上左右留白,就是宽度。由内容高度加上上下留白就是高度。
 
    可想而知,如果我们给inline元素课后帮上下左右留白都设置10像素的话,会发生什么情况呢?
 
 
    左右留白都是10,那么一共就是20像素,但是内容的宽度没变,结果就是整体的宽度变大了。高度也一样!
 
 
 
    那么padd的第二个作用就出来了,就是在宽度高度未设定的时候,padding可以撑大元素。
 
    我们总结一下padding的两个作用。
 
    
    一个是在宽度高度未设定的时候,可以撑大元素
 
    一个是在宽度高度已设定的时候,改变内部元素的位置
 
    这两个效果并不是互斥的,这两个效果可以同时发生。
 
 
    怎么个同时发生法呢,其实是在不同的方向上发生这两个效果。
 
    方向一就是,在高度未设定的时候,就可以撑大本元素的高度。
 
    方向二就是,在宽度已设定的时候,就能改变内部元素的位置。
 
    我们仍然用例子分析:
 
 
    比如说有一个div,然后里面放了一个课后帮这么一个行内元素,
 
    此时的宽度是设定好的960,内容宽度就是算出来的值,960减去留白就是内容宽度。
 
    然而div的高度是未设定的,所以他的值是由内容高度加上上下留白,也就是12+0=12。
 
    那如果我们此时给他设定左右留白和上下留白会发生什么事情呢?
 
 
    就会发生这么个情况:
    
    首先说宽度,由于宽度已经设定了,那么在加上留白20像素,那就会压缩内容的宽度。
 
    也就是由原来的960-20就等于内容的宽度940。其实相当于改变了课后帮在水平方向的一个位置。
 
    再来说高度,由于高度是没有设定的,此时的高度是由内容撑开的,我们设定了上下留白,
 
    留白部分就从0变到了20,留白有了20在加上内容的高度12,那么此时的高度就变成32了,
 
    这样的话其实相当于改变了课后帮在垂直方向的一个位置。
 
    我们总结一下:
 
 
    两点
    
    1.横向上,压缩了内容区域,改变了内容元素的位置。
 
    2.纵向上,撑大了元素,其实也相应的改变了内部元素的位置。

posted on 2017-08-23 18:35  米斯特吴  阅读(211)  评论(0编辑  收藏  举报

导航