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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态页面制作: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.纵向上,撑大了元素,其实也相应的改变了内部元素的位置。

以上是关于静态页面制作:13padding的用法的主要内容,如果未能解决你的问题,请参考以下文章

纯静态页面才能达到网站制作静态化的真正目的

新闻网站项目静态页面-分类页

用phpcms如何将静态页面制作成企业网站(下)

首次使用photoshop制作简单的静态网页页面

Java基础练习题12--Java-GUI制作一个模仿聊天群聊静态页面

静态页面制作:16结构与表现分离