方法 - 清除浮动
浮动问题:
子元素使用float浮动后,脱离文档流,导致父元素高度变为0
解决方案:
- 父元素使用 overflow: hidden/auto; 属性
- 父元素也添加 float 浮动
- 使用伪元素 after 搭配 clear: both;。或使用空元素,原理是相同的。
IE浏览器下需要给父元素添加 zoom: 1; 属性,触发 haslayout 。
方法 - 元素水平垂直居中
定位 + transform:
div { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
- 定位 + margin:
div { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
- flex布局:
.parent { display: flex; flex-flow: row; justify-content: center; align-items: center; }
- 文字居中(text-align搭配line-height):
span { width:100px; height: 50px; text-align: center; line-height: 50px; }
单位 - rem、em、vh、px 各自代表的含义?
| rem | rem相对于根元素 标签的 font-size 大小。 1rem = 根元素 font-size 大小。 |
|---|---|
| em | - 子元素font-size的em相对于父元素的font-size - 元素width、height、padding、margin的em相对于该元素的font-size |
| vh、vw | - 1vh=视口高度的1% - 1vw=视口宽度的1%,但通常使用%。 |
| px | pixel像素单位,相对于屏幕显示器分辨率 |
