• 静态页面制作: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.纵向上,撑大了元素,其实也相应的改变了内部元素的位置。
  • 相关阅读:
    Java
    maven打包
    maven
    memset用法祥解
    HTML5 canvas save和restore方法讲解
    修复无线链接时断时连
    VirtualBox内Linux系统怎样与Windows共享文件夹
    Ubuntu默认密码,及其修改
    mysql中char与varchar的区别分析
    javax.servlet包介绍
  • 原文地址:https://www.cnblogs.com/hemiah/p/7419604.html
Copyright © 2020-2023  润新知