padding 中规中矩,性格温婉平和!

第一节:CSS padding与容器的尺寸——了解padding与元素尺寸之间关系

CSS padding与容器的尺寸关系复杂

对于block水平元素 没有padding的时候 .gay{width:50cm;} padding影响元素尺寸      (理解为人身体的脂肪,人和人之间的距离).gay{width:20cm;padding:0 12px;}

但是width:auto或box-sizing为border-box的时候 .gay{width:80cm;box-sizing:border-box;padding:0 15px;}

.text{width:8cm;box-sizing:border-box;padding:0 1.5cm;}这个时候padding不会影响元素尺寸,但是当padding大小超过宽高的时候,.text{width:8cm;box-sizing:border-box;padding:0 8cm; }这时候元素按内联元素最小宽度显示,此时padding同样影响了元素的尺寸。

结论:对于block水平元素

1.padding值暴走,一定会影响尺寸;

2.width:auto,padding影响尺寸;

3.width为auto或box-sizing为border-box,同时padding值没有暴走,不影响尺寸。

对于inline水平元素

水平padding影响尺寸,垂直padding不影响尺寸 .leader{padding:50px},但是会影响背景色(占据空间)。大到比父元素还大的时候,设置overflow:auto会出现滚动条

如何利用这一特性

高度可控的分割线

1.直接使用字符:注册|退出登录

2.inline-block控制:注册|退出登录

3.使用inline padding:注册|退出登录

注册<span></span>退出登录

span{padding:16px 6px 1px;margin-left:12px;border-left:2px solid font-size:0;}

第二节:css padding负值和百分比值——了解padding特殊值的特殊表现

1.关于padding的负值,padding不支持任何形式的负值。

2.关于百分比均是相对与宽度计算的。

如何实现这一特性,轻松实现一个正方形 div:padding:50%(相对百分比计算)

真实案例

<div class="container">

<div class="example">

<h2>你的指尖</h2>

<h4>慕课网</h4>

</div>

</div>

.container{padding:50%;background:url(exp.jpg);background-size:100%;position:relative;}  .example{position:absolute;top:0;right:0;bottom:0;left:0;}实现一个正方形的响应式布局。

3.inline水平元素的padding百分比值

1.同样相对于宽度计算

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

3.padding会断行

inline元素的padding断行

span{padding:50%;}

<span syle="padding:50%;">内有文字若干</span>

如果是空的inline元素,高度还是要比宽度高

设置fon-size:0px;得到一个正方形。

为何会有额外的高度

inline元素的的那个会让“幽灵空白节点”显现,也就是规范中的strut出现。content-area,可以通过font-size:0px;让他不显示。

第三节:标签元素的内置padding-这里有一些你可能不知道的小秘密

1.ol/ul列表

1.1 ol/li元素内置padding-left,但是单位是px不是em;

1.2 例如chrome浏览器下是40px;

1.3 如果字号很小,间距就会很开;

1.4 如果字号很大,序号回爬到容器外面

margin等一般em的。

2.表单元素的内置padding值

所有的浏览器input/textarea输入框内置padding

所有浏览器button按钮内置padding

部分浏览器select下拉内置padding,如firefox ie8+可以设置padding

所有浏览器radio/checkbox单选框无内置padding

button按钮元素的按钮是最难控制的。

1.chrome浏览器是没有问题的。

2.firefox浏览器  设置padding:0左右依然有padding! 需要设置button::-moz-focus-inner{padding:0;}padding才为0

3.IE浏览器 ie7文字越多,左右padding逐渐变宽。设置overflow:hidden以后就正常了。

4.padding与高度计算的不兼容

button{

line-height:20px;

padding:10px;

border:none;

}

IE7   45px;

IE8   40px;

FireFox 42px;

Chrome:  40px;

button表单按钮padding

<button id="btn"></button>

<label for="btn">按钮</label>

label{display:inline-block;inline-height:20px;padding:10px;}

让button可见性隐藏。

第四节:padding与图形绘制——利用padding来绘制图形

实现3道杠——不借助伪元素,只用一个div

实现示意

<div class="line-tri"></div>

.line-tri{

width:150px;height:30px;

padding:15px 0;

border-top:30px solid;

border-bottom:30px solid;

background-color:currentcolor;

background-clip:content-box;

}

实现一个点

<div class="eye"></div>

.eye{

width:150px;

height:150px;

padding:10px;

border:10px solid;

border-radius:50%;

background-color:currentcolor;

background-clip:content-box;

}

第五节:padding布局实战----padding在布局这块比较好的应用

1.使用百分比单位构建比较固定比例布局结构

移动端1:1头图布局

div{padding:50%;}

2.配合margin实现等高布局。

.box{overflow:hidden;resize:vertical;}

.child-orange,.child-green{

margin-buttom:-600px;

padding-bottom:600px;

}

.child-orange{

float:left;

background:orange;

}

.child-green{

float:left;

background:green;

}

3.padding实现两栏自适应布局

<div class="pbox">

<img src="mm.jpg" />

<div class="auto">

本例子实现。。。。

</div>

</div>

img{float:left;}

.auto{

padding-left:120px;

}

css深入理解padding的更多相关文章

  1. CSS深入理解之overflow

    CSS深入理解之overflow 前言 这是跟着张鑫旭重学CSS的overflow篇 基本属性 overflow有以下五个基本属性: 1.visible : 默认值,具体表现为,应用此属性后,子元素超 ...

  2. HTML CSS——margin与padding的初学

    下文引自HTML CSS——margin和padding的学习,作者fengyv,不过加入了一些个人的看法. 你在学习margin和padding的时候是不是懵了,——什么他娘的内边距,什么他娘的外边 ...

  3. CSS深入理解学习笔记之absolute

    1.absolute和float 拥有相同的特性表现: ①包裹性(容器应用之后,可以包裹里面的内容): <!doctype html> <html> <head> ...

  4. CSS深入理解之absolute(HTML/CSS)

    absolute和float是同父异母的兄弟,因为它们具有相同点:包裹性与破坏性 absolute的特点 1.独立的,并且可以摆脱overflow的限制,无论是滚动还是隐藏: 2.无依赖,不受rela ...

  5. CSS深入理解之line-height

    以下文字整理自慕课网——张鑫旭的<CSS深入理解之line-height>. line-height,又称行高,指的是两行文字基线之间的距离,又可以称为这行文字所占的高度. 定义三问: 什 ...

  6. CSS 内边距 (padding) 实例

    CSS 内边距 (padding) 实例元素的内边距在边框和内容区之间.控制该区域最简单的属性是 padding 属性. CSS padding 属性定义元素边框与元素内容之间的空白区域.CSS 内边 ...

  7. CSS 内边距 padding 属性

    CSS padding 属性定义元素边框与元素内容之间的空白区域. ㈠padding(填充) ⑴当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充. ⑵单独使用 p ...

  8. CSS深入理解学习笔记之padding

    1.padding与容器尺寸之间的关系 对于block水平元素:①padding值暴走,一定会影响尺寸:②width非auto,padding影响尺寸:③width为auto或box-sizing为b ...

  9. 【转】CSS深入理解流体特性和BFC特性下多栏自适应布局

    这篇文章发布于 2015年02月12日,星期四,23:36,归类于 css相关. 阅读 30873 次, 今日 63 次 by zhangxinxu from http://www.zhangxinx ...

随机推荐

  1. 在IDEA中创建Maven项目和添加tomcat

    IDEA中创建是一种创建maven项目的办法,但不推荐,因为没有使用统一的骨架,可以一开始就选择创建maven项目,步骤如下: 第一步 第二步:设置项目 第三步:进行配置好maven,加上 arche ...

  2. CUDA中多维数组以及多维纹理内存的使用

    纹理存储器(texture memory)是一种只读存储器,由GPU用于纹理渲染的图形专用单元发展而来,因此也提供了一些特殊功能.纹理存储器中的数据位于显存,但可以通过纹理缓存加速读取.在纹理存储器中 ...

  3. js控制select选中显示不同表单内容

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...

  5. Nodejs 调试方法

    nodejs内部提供一个debug机制,可以让程序进入debug模式,供开发者一步一步分析代码发现问题. 共有3中启动参数可以让程序进入debug模式,假设我们要对app.js进行调试. node d ...

  6. java对一个int数组进行排序、去重

    思路: 1.使用 HashSet 进行去重 2.将 HashSet 变为 TreeSet 3.使用 TreeSet 进行排序 4.将 Set 变为 Integer 数组 5.将 Integer 数组变 ...

  7. MySQL另类的备份恢复方法——innodb可传输表空间

      Preface       There're many ways in backing up or migrating data from one server to another one.Lo ...

  8. python中enumerate函数使用

    enumerate()说明 enumerate()是python的内置函数 enumerate在字典上是枚举.列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enum ...

  9. 差点掉坑,MySQL一致性读原来是有条件的

    众所周知,在设定了隔离等级为Repeatable Read及以上时,InnoDB 可以实现数据的一致性读.换句话来说,就是事务执行的任意时刻,读取到的数据是同一个快照,不会受到其他事务的更新影响. 以 ...

  10. git push 时 fatal: Unable to create 'D:/phpStudy/WWW/green_tree/.git/index.lock': File exists.解决办法

    找到自己的项目,找到.git文件夹,进去把目标文件删除即可 或者使用rm -rf 命令(如果没有那个文件件或者文件,将隐藏文件打开就可以看到了)