- 巧妙运用margin负值
- 盒模型和怪异盒模型(border padding 包含在内)
- display: block 能让textarea input 水平尺寸自适应父容器? – 不能
* {
box-sizing: border-box; // bs: bb
}
<textarea/> 是替换元素,尺寸由内部元素决定,不受display水平影响. 当然可以直接设置宽度100%
margin塌陷(合并/重叠)
- 标准流, 上面的盒子设置 margin-bottom, 下面的设置了margin-top, 这个两个会重叠, 变为较大的一个
- 但是, 如果脱标,比如浮动之后就不会重叠了; 或者两个元素在flex/grid 内,
<!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>
div{
width: 100%;
height: 200px;
background-color: antiquewhite;
margin-bottom: 100px;
float: left;
}
.box2{
background-color: aqua;
margin-top: 100px;
}
</style>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
</body>
</html>
margin
margin和padding 用 百分比单位, 参照的是父级的宽度,设置width 也是参照父级的宽度…
xxx xxx xxx
xxx 2 xxx
xxx 2
如何让2 向下延伸, 又不会挤走第三行?
padding
- inline 元素的padding 其实也影响布局.
- 有两点:
- 下面的a元素的padding 把上下的遮住了. 导致只能触发 alert(2)
- padding的出现使contianer产生了滚动条
<style>
.container {
width: 200px;
height: 100px;
margin: 200px auto;
overflow: auto;
background-color: #f0f3f9;
}
a {
font-size: 12px;
padding: 100px 10px;
background-color: red;
opacity: .7;
}
</style>
<div class="container">
<div onclick="alert(1)">11</div>
<a href="#" onclick="alert(2)">yogaMiller</a>
<div onclick="alert(2)">22</div>
</div>
- 盒模型 定位 flex/grid 是写页面的基础
- 最初是用来做文字环绕图片的效果的. 后面发展成了一种布局方式
- 可以轻松实现
ul li {
float: left;
float: right;
}
// 元素浮动后,脱离文档流, 且有了行内块元素的特点. 可设置宽高等.
清除浮动
.clearfix::after{
content: "";
display: block;
clear: both;
height: 0;
visibility: hidden;
}
.clearfix{
*zoom: 1; /* ie 6 7 感觉不太需要了*/
}
.box{
overflow: hidden; /* overflow-x: auto scroll */
}