两个inline-block 元素为什么会错位显示?-灵析社区

邦纳娜娜

具体代码 [demo](https://jsfiddle.net/4029Pink/gor3vtey/7/) 问题: 为什么a标签设置overflow和不设置overflow 显示效果不同? ![image.png](https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241103/f999935c9048dfa0d3a7a297d6ecd868.png) 不设置如下显示 ![image.png](https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241103/b702ff418a501bfa26c0d7364a8e70ad.png) 设置后如下显示 ![image.png](https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241103/274e09657da1dfb5b311a03e1cf42ecd.png) v

阅读量:14

点赞量:0

问AI
overflow:hidden的这个属性影响了inline-block元素baseline的位置;因为你的list也是行内块,也设置了overflow,而后下一个元素与前一个元素基线对齐就错位了,第二个也设置,baseline也改变就不错位了 11 22 33 44 span{ display:inline-block; } .desc{ overflow:hidden; } // 这时候另外的span元素会向下偏移; // 解决方案,修改vertical属性; .list { display: inline-block; width: 80px; height: 80px; overflow: hidden; vertical-align:middle; } .add { display: inline-block; width: 76px; height: 76px; color: #ccc; border: 2px dashed; transition: color .25s; position: relative; /** 为什么不设置overflow a标签就会下沉显示? **/ /* overflow: hidden; */ vertical-align:middle; }