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. 流形(Manifold)初步

    原文链接 欧几里得几何学(Euclidean Geometry) 两千三百年前,古希腊数学家欧几里得著成了<几何原本>,构建了被后世称为“欧几里得几何学”的研究图形的方法.欧几里得创立了当 ...

  2. java设计模式——桥接模式

    一. 定义与类型 定义:将抽象部分与他的具体实现部分分离,使它们都可以独立的变化,通过组合的方式建立两个类之间的联系,而不是继承 类型:结构性. 二. 使用场景 (1) 抽象和具体实现之间增加更多的灵 ...

  3. python模块之正则

    re模块 可以读懂你写的正则表达式 根据你写的表达式去执行任务 用re去操作正则 正则表达式 使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容.在线测试网站:http:/ ...

  4. java基础 序列化反序列化流 实现Serializable 接口 自动装载序列号到对象文本文件如修改不能反序列化对象文本,除非自定义long型常量 打印流

    package com.swift.baseKnowledge; import java.io.File; import java.io.FileInputStream; import java.io ...

  5. 泉五培训Day1

    T1 树学 题目 [问题描述] 给定一颗 n 个点的树,树边带权,试求一个排列 P,最大化下式 其中,calc(a, b)表示树上由a到b经过的最大边权. [输入格式] 第一行一个整数 n,表示点数下 ...

  6. JS - 把类似document.querySelectorAll(".xxx")、document.getElementsByName("xxx")这种方法的返回结果转换成数组对象

    var btns = document.querySelectorAll(".btn");console.log(btns instanceof Array); // falseb ...

  7. rsync+lsyncd实现实时同步

    1.接收端安装rsync,修改/etc/rsyncd.conf配置文件,然后启动服务. uid = rootgid = rootuse chroot = nomax connection = 4sec ...

  8. sql常用函数instr()和substr()

    Decode decode(条件,值1,翻译值1,值2,翻译值2,...,缺省值) 该函数与程序中的 If...else if...else 意义一样 NVL 格式:NVL( string1, rep ...

  9. PHP设计者---composer

    Composer 是 PHP5以上 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.Composer 不是一个包管理器.是的,它涉及 "packages&q ...

  10. JavaSE 第二次学习随笔(作业一)

    package homework2; import java.io.ObjectInputStream.GetField; import java.util.Arrays; public class ...