css深入理解padding
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的更多相关文章
- CSS深入理解之overflow
CSS深入理解之overflow 前言 这是跟着张鑫旭重学CSS的overflow篇 基本属性 overflow有以下五个基本属性: 1.visible : 默认值,具体表现为,应用此属性后,子元素超 ...
- HTML CSS——margin与padding的初学
下文引自HTML CSS——margin和padding的学习,作者fengyv,不过加入了一些个人的看法. 你在学习margin和padding的时候是不是懵了,——什么他娘的内边距,什么他娘的外边 ...
- CSS深入理解学习笔记之absolute
1.absolute和float 拥有相同的特性表现: ①包裹性(容器应用之后,可以包裹里面的内容): <!doctype html> <html> <head> ...
- CSS深入理解之absolute(HTML/CSS)
absolute和float是同父异母的兄弟,因为它们具有相同点:包裹性与破坏性 absolute的特点 1.独立的,并且可以摆脱overflow的限制,无论是滚动还是隐藏: 2.无依赖,不受rela ...
- CSS深入理解之line-height
以下文字整理自慕课网——张鑫旭的<CSS深入理解之line-height>. line-height,又称行高,指的是两行文字基线之间的距离,又可以称为这行文字所占的高度. 定义三问: 什 ...
- CSS 内边距 (padding) 实例
CSS 内边距 (padding) 实例元素的内边距在边框和内容区之间.控制该区域最简单的属性是 padding 属性. CSS padding 属性定义元素边框与元素内容之间的空白区域.CSS 内边 ...
- CSS 内边距 padding 属性
CSS padding 属性定义元素边框与元素内容之间的空白区域. ㈠padding(填充) ⑴当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充. ⑵单独使用 p ...
- CSS深入理解学习笔记之padding
1.padding与容器尺寸之间的关系 对于block水平元素:①padding值暴走,一定会影响尺寸:②width非auto,padding影响尺寸:③width为auto或box-sizing为b ...
- 【转】CSS深入理解流体特性和BFC特性下多栏自适应布局
这篇文章发布于 2015年02月12日,星期四,23:36,归类于 css相关. 阅读 30873 次, 今日 63 次 by zhangxinxu from http://www.zhangxinx ...
随机推荐
- Java 执行系统命令工具类(commons-exec)
依赖jar <!-- 可以在JVM中可靠地执行外部进程的库. --> <dependency> <groupId>org.apache.commons</gr ...
- rnn,cnn
http://nikhilbuduma.com/2015/01/11/a-deep-dive-into-recurrent-neural-networks/ 按照这里的介绍,目前比较火的cnn是fee ...
- Eclipse Git 插件 基本操作一【learn】
安装GIT插件: 我的Eclipse版本为: Oxygen.2 Release (4.7.2),所以自带GIT插件,跳过安装. GIT插件配置: ①.添加好用户名和邮箱 注意下输入格式:user.na ...
- 【思维题 细节】loj#6042. 「雅礼集训 2017 Day7」跳蚤王国的宰相
挂于±1的细节…… 题目描述 跳蚤王国爆发了一场动乱,国王在镇压动乱的同时,需要在跳蚤国地方钦定一个人来做宰相. 由于当时形势的复杂性,很多跳蚤都并不想去做一个傀儡宰相,带着宰相的帽子,最后还冒着被打 ...
- C#爬虫实践
忘了什么时候加的,iPad上的人人视频追剧了<我的天才女友>,没事的时候看了下,感觉还不错,进一步了解到原著那不勒斯四部曲,感觉视频进度有些慢,就想找找书看看,一时没找到[PS:购买实体书 ...
- Python学习之购物车
实现功能: 程序启动,提示用户输入用户名和密码,程序读取余额文件last_salary.txt内容(文件不存在则自动创建),若文件内容为空则提示“首次登录,请输入工资”: 用户可以输入商品编号进行购买 ...
- 《Redis设计与实现》- AOF持久化
1. AOF持久化 Redis AOF 持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的. 2. RDB持久化与AOF持久化的区别 RDB持久化 RDB持久化通过保存数据中的键值对来记 ...
- 记 页面使用overflow-scroll在iOS上滑动卡顿的问题
页面使用overflow-scroll在iOS上滑动卡顿的问题 因在做一个滑动的list列表,为某个div使用了overflow: scroll属性. 结果在手机上测试时,ios手机有明显的滑动卡顿问 ...
- 虚拟机桥接模式下多台Ubuntu16.04系统互相连接
1.首先新建一个虚拟机并在该虚拟机上安装Ubuntu16.04系统.为这台虚拟机起名为Ubuntu3. 2.对Ubuntu3进行克隆,为新克隆生成的虚拟机起名为Ubuntu2.(这时我们会发现Ubun ...
- GIL 线程池 进程池 同步 异步
1.GIL(理论 重点)2.线程池 进程池3.同步 异步 GIL 是一个全局解释器锁,是一个互斥锁 为了防止竞争解释器资源而产生的 为何需要gil:因为一个python.exe进程中只有一份解释器,如 ...