处理inline元素之间换行产生的空白_html/css_WEB-ITnose
程序员文章站
2022-04-01 18:21:36
...
图片来自网络
inline, inline-block元素之间的换行符会造成类似空格的空白。不知道你遇到过没?比如以下代码:
12
这种问题对布局影响不大,容易被忽略。但是某些极端情况就会把这个问题放大。例如以下代码:
- Item content
- Item content
- Item content
这样一行的结构,精确的分配了行内元素的宽度,而换行产生的空白的影响被放大了。如何解决这种问题呢?
- 选用浮动的block代替inline-block, 因为曾经要处理IE6对inline-block的兼容性,养成了不适用inline-block的习惯,所以第一个想到这种方案。
- 编码时不使用换行,例如以下代码:
- Item content
- Item content
- Item content
- 将父级font-size置0,行内元素再恢复字体大小。这种方式是本人最喜欢的,不是因为它貌似"高大上",而是因为它揭开了产生问题的原理。
- 利用注释进行代码排版,例如以下代码:
- Item content
- Item content
- Item content
- 使用返回标签,类似上一种办法,代码如下:
- Item content
- Item content
- Item content
- 利用css 否定边距,例如以下代码:
.inline-block-list li { margin-left: -4px;}
这种方法是最差的,因为这很有可能为了解决问题而增加了新问题的风险,同时降低了强壮性和可维护性。解决方案都经过了测试,建议采用第一种和第三种。
本文通过Segmentfault,参考了文章Remove Whitespace Between Inline-Block Elements.
上一篇: WebQQ网页hash加密算法PHP版
下一篇: HTML实现页面自动跳转的五种方法