`

inline-block元素间的空白间距解决方案

    博客分类:
  • css
 
阅读更多
对于inline-block间的空白问题一直觉得很头疼,尝试过几种解决办法,自己感觉都不是很满意,今天在这总结一下
<ul>
       <li>首页</li>
       <li>二手房</li>
       <li>新房</li>
       <li>租房</li>
       <li>业主</li>
</ul>

       *{
              margin: 0;
              padding:0;
              border: 0;
              outline:0;
         }
         ul{
              list-style: none;
              text-align: center;
         }
         li{
              display:inline-block;
              padding: 0 15px;
              background-color: #1c9b93;
         }

这样写的效果是每个li元素跟下一个元素之间都有4px的间距,下面说一下解决办法:

方法一:改变Html的结构,结构分为好多种,每种都能达到效果
(1)
<ul><li>首页</li><li>二手房</li><li>新房</li><li>租房</li><li>业主</li></ul>

好多人经常用这种方法,缺点是只能一行显示代码多的话会很难看而且很长,不易阅读;
(2)
<ul>
    <li>
          首页</li><li>
          二手房</li><li>
          新房</li><li>
          租房</li><li>
          业主</li>
</ul>

   这种写法相比(1)就更易阅读,而且接近标签换行格式的写法;
(3)
<ul>
    <li>首页</li
    ><li>二手房</li
    ><li>新房</li
    ><li>租房</li
    ><li>业主</li>
</ul>

   这种方法很相似,总结一下就是要让inline-block的标签首位相连不要换行;
  (4)
<ul>
    <li>首页</li><!--
    --><li>二手房</li><!--
    --><li>新房</li><!--
    --><li>租房</li><!--
    --><li>业主</li><!--
</ul>

  这种办法就是用注释来代替inline-block标签间的换行,我在项目中不会用这种方法,因为种感觉代码跟跟注释一起显得代码好乱。
总结:以上这四种办法都能解决问题,但是也有局限性,就是只是用于静态页面,如果页面是后台生成的就没办法了;
方法二:改变margin值
li{ margin-left: -4px; }

注:父元素的字体不同,margin值也会做相应调整,所以不推荐使用,依情况而定;
方法三:父元素的字体设置成0
         ul{
              list-style: none;
              text-align: center;
              font-size:0;
         }
         li{
              display:inline-block;
              padding: 0 15px;
              background-color: #1c9b93;
              font-size:14px;
         }

这种方法经常用,但是在Safari上不行
方法四:jquery方法,这种方法是从别人博客看到的
<ul id="removeBlank">
       <li>首页</li>
       <li>二手房</li>
       <li>新房</li>
       <li>租房</li>
       <li>业主</li>
</ul>

       *{
              margin: 0;
              padding:0;
              border: 0;
              outline:0;
         }
         ul{
              list-style: none;
              text-align: center;
         }
         li{
              display:inline-block;
              padding: 0 15px;
              background-color: #1c9b93;
         }

  $('#removeBlank'),contents().filter(function(){
     return this.nodeType === 3;
  }).remove();


这种方法是可以的,不过就是通过jquery认为有点麻烦

这里介绍了几种方法都有欠缺之处,大家根据需求选择,如果有更好的方法可以告诉我

分享到:
评论

相关推荐

    有关display:inline-block在FF出现空白的解决方案

    然而,在不同浏览器之间,尤其是在Firefox(FF)上,可能会遇到一些显示问题,比如元素间的空白间距。这个问题在标题“有关display:inline-block在FF出现空白的解决方案”中被提及。 首先,我们要理解为什么会出现...

    inline-block元素的4px空白间距解决方案

    前面《CSS3制作的分页导航》一文中就是使用的inline-block制作的居中效果,不过留下了一上问题,就是使用inline-block的元素之间会存在“4px”的空白间距。那么今天我们就一起来说说这个“4px”的问题。 ...

    浅谈inline-block及解决空白间距

    然而,在使用 `display: inline-block` 时,经常会遇到一个问题,那就是元素间会存在额外的空白间距。本文将探讨这个问题及其解决方案。 首先,当我们将元素设置为 `display: inline-block` 时,这些元素会按照文本...

    inline-block带来的元素间距问题解决

    本文主要关注`inline-block`元素的间距问题及其解决方案,同时也会对比`block`和`inline`的特性。 首先,`display: inline-block` 是一种混合型布局模式,它结合了`inline`元素的并排显示特性与`block`元素的宽高...

    Firefox Bug: inline/inline-block的间隙采用代码缩进可解决

    这个bug产生的原因在于,浏览器在解析HTML时,会对`inline`或`inline-block`元素间的空白字符(包括空格、换行符等)进行处理,导致元素间产生了间距。在CSS规范中,`inline-block`元素应该像文本一样紧密排列,但...

    5种方法快速去掉HTML中Inline-Block的空白

    然而,`inline-block`元素之间会保留一定的空白,这在布局时可能会导致不必要的间距,影响页面的美观。以下五种方法可以帮助你快速去掉HTML中`inline-block`元素间的空白: 1. **元素间不留任何空白**: 这是最...

    详解CSS 去掉inline-block元素间隙的几种方法

    通过给inline-block元素设置负的`margin`值,可以手动调整元素间的间距: ```css .demo span { margin-right: -4px; /* 调整值需根据实际情况确定 */ } ``` 4. **浮动元素** 将元素设置为浮动元素(`float: ...

    CSS中使用inline-block来进行居中的示例

    这种特性使得`inline-block`成为居中对齐的一种实用方法,尤其是当元素数量不确定或需要保持元素间的间距时。 首先,要实现`inline-block`居中,我们需要一个包含这些元素的容器,容器的`text-align`属性应设置为`...

    css几种解决inline-block间隙的方案(整理)

    `inline-block`元素间的空格,包括换行符和缩进,都会被浏览器解析为无形的空白字符,从而在元素之间产生间距。这个间距的大小通常等于父元素字体大小的约1/3。 1. **改变书写结构** 一种直观的解决方法是通过...

    个人文档1

    当多个inline-block元素相邻时,HTML中的空白字符(换行符、空格符、制表符等)会导致元素间产生间距。这个间距的大小受到`font-size`的控制。因此,通过将父元素的`font-size`设置为0,然后在子元素中重新定义`...

    span掉落的演示代码

    2. **空白字符的影响**:内联元素之间的空白字符(如空格、换行)会被浏览器解析为一个空格,影响元素间的间距。在`inline-block`元素中,这种现象尤为明显,可能导致元素位置不准确。 3. **浮动的影响**:如果元素...

    关于多行文字水平垂直居中的一点心得分享

    2. **如何解决inline-block元素的空白间距**:这篇文章详细解释了inline-block元素之间的空白间距问题,并提供了多种解决方案。 3. **inline-block 前世今生**:了解`inline-block`的历史和使用场景,有助于更好地...

    清除行内元素之间HTML空白的几种解决方案

    然而,当使用行内块级元素(inline-block)时,例如在`&lt;li&gt;`元素中设置`display: inline-block`,会遇到一个问题:元素之间的空白会在页面上显现出来,造成布局的不美观。这是因为HTML源代码中的空格、换行符等在...

    IE浏览器下的图片空隙间距BUG和解决办法.pdf

    4. **使用CSS display属性**:将`&lt;img&gt;`标签的`display`属性设置为`block`或`inline-block`,这样图片将不再遵循行内元素的规则,消除额外的间距。 ```css img { display: block; /* 或 display: inline-block; */...

    2个div并列

    对于现代Web开发,Flexbox和Grid布局更受青睐,因为它们提供了更强大、更灵活的布局解决方案。 标签中的"源码"意味着我们可能会查看实际的HTML和CSS代码来理解这种布局的实现。而"工具"可能指的是开发者可以使用的...

    css-inlineblock-homework:在家工作

    3. **间距控制**:处理元素间的空白,因为内联元素会受到空格和换行的影响,可能需要通过调整HTML结构或者使用负margin来解决。 4. **响应式设计**:根据屏幕尺寸调整元素的布局,可能需要用到媒体查询(media ...

    CSS学习指南 .pdf

    display属性的inline-block值可以实现包裹效果,其具有水平排列方向,可以解决浮动的方向性问题。浮动元素具有方向性,可以实现向左或向右的排列。浮动元素虽然不脱离文档流,但它影响到的块级框的布局,只影响内联...

    IE兼容性总结

    本文档将根据提供的部分内容,详细总结在进行IE兼容性优化时的一些常见问题及解决方案。 #### 子页面的设置:secpagecss.css 1. **元素ID(#left_side)的右边框问题** - **问题描述**:元素ID为`#left_side`的...

Global site tag (gtag.js) - Google Analytics