文字溢出省略文本对齐垂直居中margin合并
文本超出溢出以及如何添加省略号
一行文本
默认情况下
1 | <!DOCTYPE html> |
- 第一行没有换行是因为浏览器把它看成一个英文单词
- 所以从现象可以看出默认超出宽度是会换行的
不换行,超出div宽度的文字溢出
恢复white-space:nowrap;
这个属性
超出部分隐藏,超出部分变省略号
1 | overflow:hidden; |
多行文本
1 | div{ |
多行文本两端对齐
1 | <!DOCTYPE html> |
文字垂直居中
1 | <!DOCTYPE html> |
- 遵循一条原则 能不用height 就别用 ,用padding撑起想要的高度
容器垂直居中
1 | <!DOCTYPE html> |
- 新时代前端记住这种用flex 布局来垂直居中,就好了
margin合并
两个div之间的margin合并
1 | <!DOCTYPE html> |
- 两个div 分别给了10px的margin
- 两个div之间的间距按照直觉应该是20px
- 通过开发者工具我们可以看到它们之间只有10px
- 这就说明他们的margin合并了
父子div的margin合并
1 | <!DOCTYPE html> |
- 父元素margin为10px 子元素margin为20px
- 正常的想法应该是子元素在父元素中离父元素边框有20px的间距,而父元素离body的边框有10px的间距
- 通过开发者工具我们可以看到子元素的margin超出了父元素边框并且离body间距是20px
- 这就说明子元素与父元素的margin合并了
- 注意这里父元素的边框线用的是outline
那么为什么呢?
将父元素的边框设置为border,或者给父元素加一padding
- 就会发现神奇的好了
在两个div之间再加一个div 设置border或者padding
结论
- 因此总结一下就是
- 两个元素的margin合并是因为中间没有阻挡它们的属性就会合并在一起
- 比如说border就是一堵墙,堵在两个margin之间就不会合并了
- 或者说margin碰到关于border/padding这种元素,就是距离这个元素的margin有多少