如何画一个朝上的三角形
width:0;
height:0;
border-bottom:5px solid red;
border-left:5px solid transparent;
border-right:5px solid transparent;
什么是margin的合并和塌陷
mrgin合并
<div class="b1"></div>
<div class="b2"></div>
.b1{
margin-bottom:20px;
}
.b2{
margin-top:20px;
}
此时两者之间的距离为30px,这就是发生了margin合并。
margin塌陷
<div class="father">
<div class="son"></div>
</div>
.son{
margin-top:20px;
}
在给子元素设置margin的时候,父元素也跟着下来了,这就是发生了margin塌陷。
BFC
BFC(Block Formatting Context)格式化上下文内按照一定的规则排序,不受外界影响,也不会影响外界。
特性
- BFC内自上而下排列
- BFC不会被浮动元素覆盖
- 就是页面上的一个独立容器,容器里面的子元素不会影响外面元素
第二点可以用来做页面两栏自适应布局:
<div class="father">
<div class="son1"></div>
<div class="son1"></div>
</div>
.son1{
width: 30px;
height: 20px;
float: left;
background-color: red;
}
.son2 {
height: 20px;
background-color: pink;
overflow: hidden;
}
如果son2不开启BFC,son1就会覆盖son2。开启之后就自适应显示了。
如何生成BFC
- overflow 设置为 hidden、auto、scroll
- position 设置为 absolute、fixed
- float
盒子模型
盒模型由内到外依次分为内容(content)、填充(padding)、边框(border)和边界(margin)4部分。分为两种模型
- 标准盒模型,默认,可设置box-sizing:content-box。
- 怪异盒模型,可设置box-sizing:border-box。width计算包括content、padding、border
水平居中
display:flex;
align-item:center;
justify-content;
position:absolute;
left:50%;
top:50%;
transform:translate(-50%,-50%)
position:absolute;
left:0;
right:0;
top:0;
bottom:0;
margin:auto;
画一条0.5px的线
height: 1px;
box-shadow: 0 0.5px 0 #000;
transform:scale(.5)
meta viewport设置缩放
IOS 1px问题
#line {
position: relative;
}
#line::after{
position:absolute;
top: 0;
left: 0;
width: 200%;
height: 200%;
content:"";
transform: scale(0.5);
transform-origin: left top;
box-sizing: border-box;
border: 1px solid #333;
}
超出显示省略号
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
可以继承的css
- font-size
- font-weight
- text-align
- visibility
- color
- line-height
display:none 与 visibility:hidden 与 opacity:0 的区别
display:none
- DOM结构:不占据空间
- 是否继承:不可继承
- 是否可以事件监听:否
- 触发重排,性能差
visibility:hidden
- DOM结构:占据空间
- 是否继承:可继承
- 是否可以事件监听:否
- 触发重汇,性能较高
opacity:0
- DOM结构:不占据空间
- 是否继承:可继承
- 是否可以事件监听:可
- 不触发重汇,性能好
不占据空间就是DOM结构不会渲染,底下的DOM就会往上顶,在调试阶段就找不到这个DOM。