博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工作中遇到的问题
阅读量:6280 次
发布时间:2019-06-22

本文共 1187 字,大约阅读时间需要 3 分钟。

1,css

1.1,margin没有合并

1.1.1,遇到问题

一直都知道垂直方向上,可能会发生 margin 合并的问题,但后来发现是有前提的。

前提:发生合并的2个元素,必须都是块级元素。

其中一个是内联(inlineinline-block)元素,就不会进行合并!

所以,下面的组合,就不会发生合并

复制代码
.brother-input {  margin-bottom: 20px;}.brother-div {  width: 100px;  height: 50px;  background-color: salmon;  margin-top: 5px;}复制代码

1.1.2,问题扩展

1,除了常见了相邻兄弟元素,父子级元素之外,还有一个会发生合并的情况。

空块级元素的 margin 合并:

复制代码
.wrapper {  overflow: hidden;}.inner {  margin: 10px 0;}复制代码

此时,外层 div 的高度是 10px ,因为内层这个空的块级元素的 margin-topmargin-bottom发生了合并。

2,即便不是相邻的兄弟元素,也可能发生合并。

第1个p标签

第2个p标签

复制代码
p {  margin: 10px 0;}复制代码

此时,2个 p 标签之间的距离还是 10px,因为中间的 div 是一个空的块级元素,原本就是会发生合并的元素。

而其实发生了3次合并:

  1. 第1个 p 标签的 margin-bottom 和 div 的 margin-top 发生了合并,

  2. 第2个 p 标签的 margin-top 和 div 的 margin-bottom 发生了合并,

  3. div 这个空的块级元素, margin-topmargin-bottom发生了合并。

解决

  1. 空的 div 设置 border-topborder-bottom
  2. 空的 div 设置 padding-toppadding-bottom
  3. 空的 div 设置 height,或是div元素内有内容让其 height 不为 0。

1.1.3,父子元素,阻止合并

对于 margin-top 合并( margin-bottom 同理)

  1. 父元素设置为块状格式化上下文元素。最简单的方法 overflow: hidden
  2. 父元素设置 border-top
  3. 父元素设置 padding-top
  4. 父元素和第一个子元素之间添加 inline-block 元素进行分割。一般用伪元素 content: ''; display:inline-block; 进行处理。

转载于:https://juejin.im/post/5c7cc36851882562ed51621d

你可能感兴趣的文章
python分析postfix邮件日志的状态
查看>>
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>
使用Python脚本检验文件系统数据完整性
查看>>
使用MDT部署Windows Server 2003 R2
查看>>
Redhat as5安装Mysql5.0.28
查看>>
通过TMG发布ActiveSync
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
吉林出差所见、所闻、所感
查看>>
RHEL7修改root用户密码
查看>>
mysqldump导出 timestamp类型数据 时区偏差8小时
查看>>
我的友情链接
查看>>
中小型企业如ERP选型四大标准
查看>>
笔记——quota磁盘配额
查看>>
索引表批量数据装载
查看>>
@Value("#{}")与@Value("${}")的区别
查看>>
Zabbix邮件报警设置方法
查看>>