【学习总结】关于magin padding对block、inline、inline-block 元素的影响
来源:互联网 发布:linux udp服务器 编辑:程序博客网 时间:2024/05/19 17:57
一:没有父子关系时
1.单元素情况:
在block元素之间,如果block元素都设置了margin属性,margin值取margin值较大的;
1.1. 在block元素加padding默认时会增大block的面积,这是因为
box-sizing属性的影响。
<!DOCTYPE html><head> <meta charset="UTF-8"> <title>padding margin 对block、inline、inline-block元素影响</title><style> div{ width:700px; height:100px; background-color:pink; margin:20px; padding:10px; /*box-sizing:content-box;*/ box-sizing:border-box; }</style> </head><body> <!--对block的影响--> <div>hello world!</div> <div>很高兴认识你!</div>
默认情况下,属性width\height即为盒子模型中content的宽高,所以当我们加入padding时,盒子会变大;当我们强制设置box-sizing属性为border-box时,此时属性width\height即为盒子模型中整个盒子的宽高(包括padding\border宽高),这时加入padding属性,盒子不会变大。但是在这种情况下,我们盒子宽高没有定量设定,也会变大,另一种情况是当padding-top+padding-bottom>=height值时,设置border-box属性值,盒子也会变大,padding-left+padding-right>=width,同理!
1.2 在inline元素之间,magin值只会影响inline元素水平方向上的距离,不会影响垂直方向上距离;padding会增大inline的面积区域。
<!DOCTYPE html><head> <meta charset="UTF-8"> <title>padding margin 对block、inline、inline-block元素影响</title><style>span{ background-color:blue; margin:20px; padding:10px;}</style> </head><body> <!-- 对inline的影响 --> <span>hello world!</span> <span>见到你很高兴!</span>
可以理解为行内元素整体为盒子模型中的content,padding会加行内元素外层加一段距离,而margin会增加行内元素之间的距离。
1.3 在inline-block元素之间,magin值会改变水平和垂直距离。
1.3. 1 在inline-block元素加padding默认时会增大block的面积,这是也是因为box-sizing属性的影响。
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>inline-block</title><style> input{ width:200px; height:100px; background-color:#eee; margin:10px; padding:20px; /*box-sizing:border-box;*/ box-sizing:content-box; }</style></head><body> <input type="text" class="text" value="你好"> <input type="text" class="text"> <button>save</button> <!-- <a href="#">你好!</a> --></body></html>
2.单元素相邻情况:
2.1 block <-> inline
margin值取决于block的margin值设定。但是inline元素设定padding值会减小二者元素之间的距离。
2.2 inline<->inline-block
margin值为二者设定的margin值之和。当inline元素和inline-block元素同行,padding不破坏margin值。
2.3 block<->inline-block
margin值为二者设定的margin值之和。padding值的设定不破坏margin值的大小。
<!DOCTYPE html><head> <meta charset="UTF-8"> <title>div inline inline-block</title><style> .first{ width:200px; height:100px; background-color:#eee; margin:10px; } input{ width:200px; heigh:100px; background-color:blue; margin:10px; } span{ background-color:pink; margin:30px; }</style></head><body> <div class="first"></div> <span>hello world!</span> <input type="text"></html>
二:存在父子关系时:
1.div>span 相邻 input
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>magrin 嵌套</title><style>body{ margin:0px;} .container{ width:480px; height:200px; background-color: #eee; margin:10px; /*padding:10px;*/ box-sizing:border-box; } span{ background-color: pink; margin:30px; } .text2{ width:100px; height:50px; background-color: blue; margin:10px; padding:5px; /*box-sizing:border-box;*/ }</style></head><body> <div class="container"> <span>你好!</span> </div> <input type="text" value="世界和平!" class="text2"></body></html>
div与input 之间的magin值为二者之和。
span的magin值之影响水平方向上的距离。
div 与input 的padding值影响区域的面积与box-sizing属性有关。添加padding值不会影响元素之间margin值的大小。但是span的padding值会破环元素之间margin值。
span的margin padding相对于父元素content,默认情况下(没有加属性值border-box),当父元素增加padding,
span 设定margin值相对原来变大了。
2.div>input 相邻 span
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>magrin 嵌套</title><style>body{ margin:0px;} .container{ width:400px; height:200px; background-color: #eee; margin:10px; padding:20px; } span{ background-color: pink; margin:10px; } .text2{ width:100px; height:50px; background-color: blue; }</style></head><body> <div class="container"> <input type="text" value="世界和平!" class="text2"> </div> <span>hello world!</span></body></html>
span margin值之影响span元素在水平方向的距离。paddin值会破化div与span元素之间的margin。
3 div包含input span元素
<!DOCTYPE html><head> <meta charset="UTF-8"> <title>各种嵌套</title><style> div{ width:40%; height:300px; background-color: #ff0; margin:10px; } input{ background-color: blue; margin:10px; } span{ background-color:red; margin:10px; padding:10px; }</style> </head><body> <div> <input type="text" value="你好!"> <span>hello world!</span> </div></body></html>
值得注意的是:当input 和span 元素在同行时,设定input元素的margin值,span元素也会产生一个margin值,和input元素锁死在同一行。
4.div>div(挺奇怪滴现象)
<!DOCTYPE html> <meta charset="UTF-8"> <title>Document</title><html><head><style type="text/css">* { margin:0; padding:0; border:0;}#outer { width:300px; height:300px; background-color:red; margin:20px;}#inner1 { width:50px; height:50px; background-color:blue; margin:40px;}</style></head><body><div id="outer"> <div id="inner1"> </div> <div id="inner2"></div></div><p>注释:请注意,如果不设置 div 的内边距和边框,那么内部 div 的上外边距将与外部 div 的上外边距合并(叠加)。</p></body></html>
block包含block元素,子元素和父元素的margin值会合并,取决与父子中margin值较大的,都是相对对
父元素的相邻元素或根元素。
最后。总结一下:
- 默认情况下,block元素占一行,不会与任何元素同行。、
-再复杂的block inline inline-block 元素的布局都可以转化成相邻元素的布局影响。(block包含block元素除外)
-inline-block block 元素padding受box-sizing属性影响。
-只有一种情况padding的设定会破坏margin值。即是inline元素与block元素相邻。
-inline-block 与 inline 元素再同行是,设定inline-block 的margin 会同时锁死inline。(也就是说我们可以通过设定与inline元素同行的inline-block元素会增加与inline相邻元素之间的margin.)
- 【学习总结】关于magin padding对block、inline、inline-block 元素的影响
- inline-block元素总结
- block、inline、inline-block的学习笔记
- block与inline 元素
- 关于display:inline、block、inline-block的区别
- inline block inline-block
- block inline inline-block
- 关于 display: inline 、block 、inline-block
- 关于 display: inline 、block 、inline-block (一)
- 关于 display: inline 、block 、inline-block (二)
- 关于 display: inline 、block 、inline-block
- block元素和inline元素的区别
- 关于inline-block元素的行高问题
- 关于display:inline-block的元素不在同一水平线
- 关于inline-block
- 关于display:inline-block
- 关于 inline-block 兼容问题
- 关于 display:inline-block
- 蛇阵
- 知识库--ZooKeeper create Session (61)
- HttpWatch无法显示此页解决办法!
- Linux内核之进程管理
- SpringMVC工作原理
- 【学习总结】关于magin padding对block、inline、inline-block 元素的影响
- spring MVC原理
- Hibernate_day02
- 23种设计模式
- Linux 系统安装 tomcat
- kmp
- Netty和SSL/TLS概说
- 【3-1-32】靶子程序 外挂模块
- andriod studio新建activity