盒子水平垂直居中
- 绝对定位+margin-left(盒子有宽高)
```
.box{
position: absolute;
width: 100px; height: 100px; background-color: #bfa; top: 50%; left: 50%; margin-top: -50px; margin-left: -50px; }
2. 绝对定位+margin:auto(盒子有宽高)
.box{
position: absolute;
width: 100px;
height: 100px;
background-color: #bfa;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
3. 绝对定位+translate(盒子无宽高)
.box{
position: absolute;
background-color: #bfa;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
4. display:flex;
html{ height: 100%; overflow: hidden; display: flex; justify-content: center;//主轴(横轴) align-items: center; }
5. display:table-cell;
.father{ width: 100px; height: 100px; display: table-cell; vertical-align: middle;//垂直对齐 text-align: center; } .box{ display: inline-block; }
<a name="B2ZkD"></a>## 三角形
.box{ width: 0px; height: 0px; border: 20px solid; border-color: transparent transparent blue transparent; }
<a name="heieL"></a>## position<a name="OriNl"></a>### absolute 绝对定位1. 开启绝对定位后,如果不设置偏移量元素的位置不会发生改变;1. 开启绝对定位后,**会从文档流中脱离**;1. 绝对定位**会改变元素的性质**,行内变成块,块的宽高被内容撑开;1. 绝对定位会使元素提升一个层级;1. 绝对定位是相对于其包含块定位的。<a name="uERyw"></a>### relative 相对定位1. 开启相对定位后,如果不设置偏移量元素的位置不会发生改变;1. 相对定位是参照元素在文档流中的位置进行定位的;1. 相对定位会提升元素的层级;1. 相对定位**不会使元素脱离文档流**;1. 相对定位**不会改变元素的性质**。<a name="AmtrZ"></a>### fixed 固定定位也是一种绝对定位,唯一不同的是固定定位永远参照于浏览器的视口定位。<br />固定定位的元素不会随网页的滚动条滚动。<a name="qkNYl"></a>### inherit 从父元素继承position的值<a name="oCkZp"></a>### sticky 粘滞定位<a name="ZxQCr"></a>### static 默认值<a name="Nao0r"></a>## display- flex- inline 默认值- block- inline-block- table- none 元素不在页面中显示<a name="q3vm6"></a>## visibility- visible 默认值 元素在页面中正常显示- hidden 元素在页面中隐藏不显示,但依然占据页面的位置<a name="pZ06w"></a>## px em rem- px 像素- 百分比 属性值相对于其父元素属性的百分比- em 相对于**元素的字体大小**计算eg. 10em 16px<br /> width=10*16=160- rem 相对于**根元素**(html)的字体大小计算<a name="md4vj"></a>## vh vw vm- vh 相对于视口的高度- vw 相对于视口的宽度- vm 相对于视口的宽度或高度中较小的那个<a name="fSzB0"></a>## 垂直外边距的重叠/折叠- 相邻的垂直方向外边距会发生重叠现象- 兄弟元素 取绝对值最大(对开发有利)- 父子元素(会影响页面布局 俗称“坑爹”)<a name="BDtHT"></a>## 高度塌陷在浮动布局中,父元素默认是被子元素撑开的。<br />当子元素设置浮动后,其会完全脱离文档流,子元素从文档流中脱离,将会无法撑起父元素的高度,导致父元素的高度丢失。<br />父元素高度丢失后,其下的元素会自动上移,导致页面的布局混乱。<a name="r5ZqK"></a>## BFC(块级格式化环境)**开启元素的BFC:**1. 设置元素的浮动(float:left)1. 将元素设置为行内块元素(display:inline-block)1. 将元素的overflow设置为一个非visible的值-**常为元素设置overflo:hidden开启其BFC**,以使其可以包含浮动元素。<br />**元素开启BFC后的特点:**1. 开启BFC的元素不会被浮动元素所覆盖1. 子元素和父元素外边距不会重叠1. 可以包含浮动的元素<a name="A20dX"></a>## 解决高度塌陷和外边距重叠
<a name="deJzt"></a>## 网页处理溢出文本内容
white-space:nowrap;//设置网页如何处理空白 nowrap-不换行 overflow:hidden; text-overflow:ellipsis;//省略号 ```
盒子模型
标准盒模型(box-sizing:content-box)

width和height是内容区域即content的width和height
怪异盒模型(box-sizing:border-box)
flex弹性伸缩盒模型
https://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
页面布局
https://blog.csdn.net/William_bb/article/details/99697369
哪个CSS 属性可能会触发 GPU 硬件加速?
- transform
- opacity
- filter
- will-change

