5种方法快速去掉HTML中Inline-Block的空白
当需要在”inline”元素上控制margin和padding时,inline-block属性值变得非常有用,有了它,你不在需要让这些元素去“block”和“float”。但有一个问题,当使用inline-block时,HTML元素之间的空白会显示在页面上。很讨厌。有几种方法可以除去这些空白;其中一个非常巧妙。
方法1:各元素间不留任何空白
一个100%能解决这个问题的方法是在你的HTML代码里元素间不留任何空白:
- <ul>
- <li>Item content</li>
- <li>Item content</li>
- <li>Item content</li>
- </ul>
当然,这样看起来很乱,让代码不好维护,但很实用,很直观,更重要的……很可靠。
方法2:在父元素上设置font-size: 0
解决这个空白问题最好的方案是在这些inline-block元素的父元素上设置font-size: 0。如果你的<UL>里有inline-block的<LI>,那你可以这样做:
- .inline-block-list { /* ul or ol with this class */
- font-size: 0;
- }
- .inline-block-list li {
- font-size: 14px; /* put the font-size back */
- }
为了不让父元素的字体大小影响子元素,你需要重新在子元素上设置font-size值,这通常很简单。唯一可能遇到麻烦的情况是你用相对大小设置字体。但大多数时候,这样的方法能解决你的问题。
方法3:HTML注释
这种方法有点暴力,但同样能奏效。将HTML元素间用注释填充,这跟它们之间没有空白效果一样:
- <ul>
- <li>Item content</li><!--
- --><li>Item content</li><!--
- --><li>Item content</li>
- </ul>
用一个词…恶心。用两个词…非常恶心。用三个词….OK,你明白。但这确实管用!
方法4:负边距
跟方法2很相似,抱歉。你可以利用inline-block的灵活性,给它们设置一个负边距,隐藏空白:
- .inline-block-list li {
- margin-left: -4px;
- }
这种方法最不推荐,因为你必须考虑到各种情况,有时候会出现一些无法预料的空白。最好不用这招。
方法5:首尾接龙
另外一个利用HTML标记的方法是将元素的闭合标记和下一个元素的开始标记靠在一起:
- <ul>
- <li>Item content</li
- ><li>Item content</li
- ><li>Item content</li>
- </ul>
并不像HTML注释那样丑陋,但我宁愿手工删除那些空白,而不考虑代码的可读性。
没有一个方法是非常理想的,但在网页中不留空白也是一个烂方法。这并不是在警告你不要使用inline-block,inline-block仍然是非常的有用,只是在使用你要明白如何处理里面出现的空白。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
- inline-block 属性的使用随处可见,ie 从 5.5 开始就已经支持 display:inline-block 了,只是支持的并不是那么完美,接下来为大家详细介绍下空白间隙是如何产生的,以及解2013-03-28
- 有关于使用inline-block来代替float的讨论也蛮多的,最常说的就是使用inline-block来代替float进行布局,或者使用inline-block来实现元素的居中效果;那么今天我们就一起来2012-12-24
- 这篇文章主要介绍了兼容浏览器的inline-block,需要的朋友可以参考下2016-02-17
深入解析CSS的display:inline-block属性的使用
这篇文章主要介绍了CSS的display:inline-block属性的使用,其中对使用时产生的空隙问题的解决作了重点讲解,需要的朋友可以参考下2015-11-09- 这篇文章主要介绍了inline-block带来的元素间距问题解决,同时附上block和inline以及inlinke-block的作用对比,需要的朋友可以参考下2015-08-04
- 这篇文章主要介绍了深入了解float与inline-block,分别从兼容性,对父元素的影响等方面进行了分析,推荐给小伙伴参考下2014-12-04
使用display:inline-block居中没有宽度的元素
为要居中元素的父元素应用text-align:center,为要居中的元素设定display:inline-block.这样设定就可以得到我们想要的结果2014-09-29多个有inline-block的div的间距与编程的写法有差异
多个有border、inline-block的div的间距会根据编程的写法有差异,下面看示例,大家感受下2014-03-04让IE6/IE7支持display:inline-block属性的两种方法
在IE6和IE7中这个版本的IE流量器中,对display:inline-block属性支持不佳,下面为大家准备两种方法可以解决此问题,让IE6/IE7 支持 display:inline-block 的方法,感兴趣的2013-10-22如何解决IE6/IE7不识别display:inline-block属性
ie6,ie7的haslayout属性是个让人头疼的问题,想到一个属性display:inline-block;对!inline- block就是干这个事的,让一个元素既不换行又具有block元素的特性2013-09-21
最新评论