padding

一、 盒子模型和 padding

1.box-sizing :border-box

padding的值>大于width的时候,就是,显示的是padding的值
也就是说,只要padding足够大,还是会影响width的真正宽度的。

都以为box-sizing :border-box的宽度给定width的时候就不会变化,大多数是这个样子的,样式的宽度就是设置的宽度,无论如何改变padding 都不会变,但是当padding的值> width的时候,就是,显示的是padding的值。而里边的内容显示的是首选的最小宽度。

  .box {
            padding: 10px 60px;
            width: 80px;
            box-sizing: border-box;
            background: rebeccapurple;
        }
 1、盒子模型
        <div class="box">
            .box{ display: block; padding: 10 px 60px; width:80px; box-sizing: border-box; background:rebeccapurple; }
        </div>
padding_box-sizing.jpg

如图,如果padding 宽度为120 px的时候,但是width只有80px时候,就显示120px,局部使用,尽量使用无宽度以及宽度分离准则

2. inline 的padding

内联元素使用padding的时候,虽然会看起来变大,但是不影响其他元素的位置
padding在垂直方向上影响视觉表现

有人认为padding对行内元素来说高度没啥控制的,但是根据如下的代码看看


<style>
 .point02 a.box {
            padding: 10px 60px;
            background: red;
            color: white;
        }
</style>
<div class="point02">
        2、内联元素出现的成叠现象  以及层叠(证明padding 对内联元素垂直上还是有效果的)
        <div>
            这是a元素上变的字,下一行的 a 标签 虽然使用了padding扩大了垂直距离,但是他不会影响我上边的布局
            <br>
            <a class="box"> a.box{ padding: 10px 60px; background: red; color:white; } 我虽然比较大,但也只是盖住了上下遍的东西,并不会把下边挤下去</a>
            </br>
            这是a元素上变的字,下一行的 a 标签 虽然使用了padding扩大了垂直距离,但是他不会影响我上边的布局
        </div>

</div>

效果如图:


padding_inlin.jpg

可以看到,内联元素使用padding的时候,虽然会看起来变大,但是不影响上下文的变化

这种不影响其他元素而显示成叠效果的,有这种效果的方法还有:relative box-shadow outline

有两种分类:

  1. 纯视觉的效果 box-shadow outline
  2. 会影响外部的尺寸relative inlinepadding

inlinepadding会影响自己的尺寸

证:

<style>
 .point02 .father {
            height: 10px;
            overflow: auto;
        }

        .point02 a.box {
            padding: 10px 60px;
            background: red;
            color: white;
        }
</style>
<div class="point02">
    <p>
                    如果a外边有个father 设置了高度,然后还有属性 overflow:hidden这个时候就会塌陷 说明这个不是视觉层叠效果,会影响外部尺寸
    </p>
这是a元素上变的字,下一行的 a 标签<br>
    <div class="father">
        <a class="box">
            .point02 .father { height: 10px; overflow: auto; } .point02 a.box { padding: 10px 60px; background: red; color: white; }
        </a>
    </div>
    </br>
    这是a元素下变的字,下一行的 a 标签
</div>

3. 行内元素padding 的实际用法

  1. 不影响样式的情况下,增加按钮点击面的大小
  2. 登录 | 注册
<style>
    .point3 a{
        color: black;
        text-decoration: none;
        font-size: 14px
    }
    .point3 a+a:before{
        content: "";
        font-size: 0;
        padding:10px 3px 4px;
        margin-left:6px;
        border-left: 1px solid gray

    }
</style>
<div class="point3">
    <a href="">登陆</a><a href="">注册</a>

</div>


  1. 我们希望url的# hash锚定位的时候,一般 元素都是在最上边,但是如果我们希望定位的时候距离顶端有一定的距离使用方法:
<style>
    #point04{
        padding-top:30px
    }
    .point4 .container{/*这个是为了填充下半部分,使页面足够长*/
        width: 100px;
        background: red;
    }
</style>
<div class="point4">
    <span id="point04">使用inilne padding 的奇技淫巧</span>
    <div class="container">container</div>

</div>

二、padding 百分比

1、value不支持负数 ( margin兼容)

2、高度的百分比是相对于width的

1、对于padding 百分比在block的使用

利用二特性可以写自适应宽高比恒定的div

 <style>
        .point05 .box {
            padding: 50% 50%;
            position: relative;
        }
        .point05 .box>.img {
            position: absolute;
            width: 10%;
            height: 10%;
            left: 0;
            top: 0;
        }
    </style>
    <h3>padding and percent</h3>
    <div class="point05">
        <div class="box">
            <img class="img" src="./img/test.jpg" width="100"> 
        </div>
    </div>
    <div>
        这里使用percent实现框框随着屏幕改变而改变,但是宽高比是不变化的,可以拖动浏览器宽度看效果
    </div>

2、对于padding百分比 在inline的使用

内敛元素的特性:

1、相对于宽度的调整

2、默认的高度和宽度细节有差异

3、padding 会断行

先看断行:

    
<style>
    .point06{
            width: 130px
        }
    .point06 .box {
       border: 2px dashed #cd0000;
    }

    .point06 span {
        padding: 50%;
        /* font-size: 0; */
        background: gray
    }
</style>
<h3>padding percent in inline</h3>
<div class="point06">
    <div class="box">
        <span >has 内有文字若干 </span>
    </div>
</div>

效果如下:


padding_percent_inline.jpg

出现这种情况的原因以及注意点:

1、padding+文字的长度一行放不下了,so padding-left就随着文字换行了

2、宽度改变,如果里边没有任何文字,宽度就和容器一样了,但是还有文字,所以就把宽度撑的宽了,

3、如果把文字删了,只是一个矩形,而不是正方形,why?还是有字符的,如果要改变字符,将font-size改编成0就好了

 .point06 span {
        padding: 50%;
        font-size: 0;
        background: gray
    }

三、内置的padding

  1. ul/ol

    内置padding-left,单位是px,所以字变大的时候可能会有问题,建议 font-size的时候,自己设置成 22px

  2. 表单内置padding

    Eg:

    1. allinput
    2. all button
    3. ie8+ Firefox select
    4. Radio checkbox 没有内置的padding
  3. 删除/修改 button的内置padding

    button::-moz-focus-inner{
            padding:0;/*用来删除firefox下的padding*/
        }
    button{
        overflow: visible;/*文字变多,padding也变大时候,用这个可以限制进行控制*/
    }
    
  4. button 按钮兼容性不好,所以用a标签,但是a标签很多时候事件用起来不舒服,所以可以用label实现一些button

    clip: rect(0,0,0,0)

    <style> 
     .point07 button{
            position: absolute;
            clip: rect(0,0,0,0)
        }
    
        .point07 label{
            position: absolute;
            line-height: 20px;
            padding: 10px;
        }
    
    </style>
    <div class="point07">
        <button id="btn"></button>
        <label for="btn">按钮</label>
    </div>
    
    
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,744评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,432评论 5 15
  • 1. padding 与容易尺寸关系复杂 1.1 对于 block 水平元素 { width: 50cm; pad...
    MoonBall阅读 565评论 0 0
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,462评论 0 6
  • 一盘猪肉烩酸菜,一盘减脂餐,放在z先生面前,z先生毫不客气地大快朵颐那盘猪肉烩酸菜,吃的我口水四溅却不敢尝试一点点...
    冷眼鲁娜阅读 923评论 5 7