CSS如何解决子元素越界
来源:互联网 发布:网络销售许可证 编辑:程序博客网 时间:2024/06/05 16:13
1.补充:CSS中盒子模型的计算方式
.box {
box-sizing: content-box / border-box;
}
content-box:一个盒子的总宽=margin+border+padding+width,即width只是指盒子中内容的宽度
border-box: 一个盒子的总宽=margin+width,即width是内容、padding、border的宽度和
2.补充:如何解决子元素的margin-top/bottom的越界问题
如下图:父容器parent2中第一个子元素child2,若想通过设置margin-top属性来实现在父容器中往下移动20px的效果是不可行的。
反而会让父元素div跟着child2一起向下移动20px。如何解决这类问题呢?
<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="2015/11/26cription" content=""> <style>* {box-sizing: border-box;}.parent1, .parent2 {width: 600px;height: 200px;}.parent1 {background: #aaf;}.parent2 {background: #afa;/*border-top: 1px solid #000;*//*margin-top: 0;*//*padding-top:0px;*//*overflow: hidden;*/}.child2 {width: 100px;height: 50px;background: #faf;margin-top: 20px;} </style> </head> <body> <div class="parent1"> </div> <div class="parent2"><div class="child2">child2为父容器div的第一个子元素</div> </div> </body></html>
解决方法:
(1)给父元素加border——有副作用: 一般父元素Div用来做布局使用,添加border会使用内容的height和width变大
(2)给父元素加padding-top:1px——有副作用
(3)给父元素加overflow:hidden——有副作用:一旦子元素内容溢出,将会无法显示溢出的内容
(4)为父元素添加内容生成:该方法无任何副作用
.parent:before {
content: ‘ ’;
display: table;
}
<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="2015/11/26cription" content=""> <style>* {box-sizing: border-box;}.parent1, .parent2 {width: 600px;height: 200px;}.parent1 {background: #aaf;}.parent2 {background: #afa;/*border-top: 1px solid #000;*//*margin-top: 0;*//*padding-top:0px;*//*overflow: hidden;*/}.parent2:before {content: ' ';display: table;}.child2 {width: 100px;height: 50px;background: #faf;margin-top: 20px;} </style> </head> <body> <div class="parent1"> </div> <div class="parent2"><div class="child2">child2为父容器div的第一个子元素</div> </div> </body></html>
3.补充:子元素全部浮动后父元素高度为0
解决方法:
(1)给父元素加overflow:hidden——有副作用
(2)为父元素添加后置内容生成
.parent:after {
content: ‘ ’;
display: table;
clear: both;
}
<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="2015/11/26cription" content=""> <style>* {box-sizing: border-box;}.parent1 {width: 600px;background: #aaf;/*overflow: hidden;*/}.parent1:after {content: ' ';display: table;clear: both;}.child1, .child2, .child3 {width: 150px;border: 1px solid #000;float: left;} </style> </head> <body> <div class="parent1"><div class="child1">1111</div><div class="child2">2222</div><div class="child3">3333</div><!--<div style="clear:both;"></div>--> </div> <hr> </body></html>
- CSS如何解决子元素越界
- CSS 子元素选择器
- CSS 子元素选择器
- CSS 子元素选择器
- CSS 子元素选择器
- CSS 子元素选择器
- 解决子元素用css float浮动后父级元素高度自适应高度
- CSS如何只改变父元素背景透明度不改变子元素透明度
- css中选取子元素
- css div子元素剧中
- css li控制子元素
- CSS相邻选择器(>)选择子元素而不包含该子元素的子元素,及如何让DIV中的内容垂直居中
- [css]如何让一个元素div1的宽度由子元素的宽度决定,并超出父元素div0
- CSS常见问题解决002——opacity将子元素都变透明了
- margin-top越界以及所有子元素浮动后父元素高度为0且影响后续元素的问题。
- Jquery如何获取子元素
- CSS后代选择器和子元素选择器
- css不改变子元素透明度
- 浅谈计算机中浮点数的表达方法
- c新手入门
- VT控制码
- Gym 100015A
- 简单工厂模式
- CSS如何解决子元素越界
- Activity
- CODEFORCES 525E Anya and Cubes
- STL::算法::常见算法(二)
- 阿里巴巴开源产品列表
- linux+ubunt搭建Git服务器
- leetcode刷题,总结,记录,备忘331
- C 柔性数组成员
- 计算机网络9--计算机网络性能