目录
水平布局
过度约束
什么是过度约束?
浏览器规定一个元素水平方向的7个值相加必须要等于其父元素内容区的宽度,如果不等于的话,浏览器就会强制调整这7个值,让其相等。我们管这个过程叫过度约束。
浏览器如何调整?
1、如果水平方向7个值当中没有auto,那么浏览器自动调整就是margin-right。
2、水平方向7个值当中,有三个值可以被设置为auto(width、margin-left、margin-right),只有1个auto时,谁是auto就调整谁。
3、有2个auto时:width、margin-left 为auto,调整的是width;width、margin-right 为auto,调整的是width;margin-left、margin-right 为auto,margin-left、margin-right各占一半,把元素挤到中间。
4、有3个auto时,width、margin-left、margin-right都为auto,调整的是width。
总结:有auto的话,width>margin-left=margin-right。
垂直布局
在垂直布局中,我们一般使用overflow属性。
overflow:visible 默认值 正常显示
hidden 剪裁多余
auto 自动根据内容显示是否出现滚动条
scroll 生成双向滚动条
那么如何去除滚动条呢?
::-webkit-scrollbar{display:none;}
这个样式只能去除滚动条,却不能让文本继续滚动。如果你有好的建议,欢迎私信我!
垂直外边距的重叠
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box1 {
width: 200px;
height: 200px;
background-color: red;
margin-bottom: 100px;
}
.box2 {
width: 100px;
height: 100px;
background-color: green;
margin-top: -50px;
}
</style>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
</body>
</html>
在兄弟元素中,如果两个外边距都是正值,谁大听谁的;如果两个都是负值,绝对值谁大听谁的;如果一正一负,两者相加,听最终结果的。
总结:兄弟元素的外边距重叠,对我们开发来讲,一般是有利的,所以不用做特殊调整。