消除两个inline-block元素之间的间隔

简介: 消除两个inline-block元素之间的间隔

发现问题

两个inline-block元素之间的间隔。如下图

期望

消除两个inline-block元素之间的间隔。

解决方法

1、父元素字体大小设置为0

间隔的形成是非元素标签形成的

/** 方案1,父元素字体大小设置为0 */
.wrap-font {
        font-size: 0;
        /*解决谷歌浏览下最小字体的限制*/
        -webkit-text-size-adjust: none;
}
.wrap-font div {
        font-size: 14px;
}

2、父元素转化为flex元素

/** 方案2,父元素转化为 flex */
.wrap-flex {
        display: flex;
}

推荐此方法

3、子元素转化为table-cell

/** 方案3,子元素转化为 table-cell */
.wrap-table>div {
        display: table-cell;
}

4、

/** 方案4,使用word-spacing */
.wrap-letter-spacing {
        word-spacing: -1em;
}
.wrap-letter-spacing>div {
        word-spacing: 0;
        /*消除父元素底部的间隔*/
        vertical-align: bottom;
}

同样的原理,也可以设置子元素的margin-left为负值来解决

完整代码

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>解决inline-block/inline-flex中间的间隔</title>
  <style>
    .wrap {
      width: 400px;
      background-color: #dcd9d0;
    }
    .wrap-item {
      display: inline-block;
      width: 100px;
      height: 100px;
    }
    /** 方案1,父元素字体大小设置为0 */
    .wrap-font {
      font-size: 0;
      /*解决谷歌浏览下最小字体的限制*/
      -webkit-text-size-adjust: none;
    }
    .wrap-font div {
      font-size: 14px;
    }
    /** 方案2,父元素转化为 flex */
    .wrap-flex {
      display: flex;
    }
    /** 方案3,子元素转化为 table-cell */
    .wrap-table>div {
      display: table-cell;
    }
    /** 方案4,使用word-spacing */
    .wrap-letter-spacing {
      word-spacing: -1em;
    }
    .wrap-letter-spacing>div {
      word-spacing: 0;
      /*消除父元素底部的间隔*/
      vertical-align: bottom;
    }
  </style>
</head>
<body>
  <div class="wrap wrap-flex">
    <div class="wrap-item" style="background-color: #238bbc;"></div>
    <div class="wrap-item" style="background-color: #1db561;"></div>
    <div class="wrap-item" style="background-color: #785696;"></div>
  </div>
</body>
</html>

其它的方法

  1. 子元素的闭合标签紧挨着下个元素的开始标签。</div><div>类似这样
  2. 绝对还有其它的方式,欢迎各位积极留言

相关文章
|
Web App开发 前端开发 开发者
|
8月前
|
Web App开发 前端开发 iOS开发
fixed固定定位transofrm失效的解决
fixed固定定位transofrm失效的解决
58 0
|
5月前
|
前端开发
如何消除li和ul之间的空隙、如何使div中的内容居中
这篇文章介绍了如何美化网页元素,包括设置登录页面的模糊背景效果,使用CSS的`opacity`属性;以及如何使`div`中的内容水平居中,通过设置`margin: auto;`。此外,还讲解了如何消除`li`和`ul`之间的空隙,通过将`ul`和`li`的`padding`和`margin`设置为0。
如何消除li和ul之间的空隙、如何使div中的内容居中
|
8月前
|
前端开发
去除 inline-block 元素间间距的方法
去除 inline-block 元素间间距的方法
|
8月前
|
算法 测试技术
class062 宽度优先遍历及其扩展【算法】
class062 宽度优先遍历及其扩展【算法】
55 0
|
搜索推荐 前端开发 JavaScript
meta标签有哪些属性和属性值?li设为行内块时有间隙怎么办?call、apply和bind的作用和区别?
`meta`标签可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。`meta`标签位于文档的头部,不包含任何内容。`meta`标签的属性定义了与文档相关联的名称/值对。
|
前端开发 JavaScript
fixed失效,css堆叠上下文问题
我们直接用具体案例来体会css堆叠上下文,因为官方veurpess-reco1.x版本,当你开启右侧子菜单时,右侧的子菜单fixed就失效了。
191 0
fixed失效,css堆叠上下文问题
关于block的本质,你懂了吗?
block应用的目的: 把将来想要执行的代码封装起来,然后在恰当的时刻再执行代码。 block本质: 1、block是封装了函数调用和函数调用环境(如:block内部要使用的参数)的OC对象。 2、block本质上也是一个OC对象,它内部也有一个isa指针(只要内部有一个isa指针,我们就可以认为他是OC对象,因为NSObject作为最基础的OC对象,第一个成员变量就是isa指针,这是OC对象的特征)。
288 0
关于block的本质,你懂了吗?
|
异构计算
UIView 的 alpha,hidden,opaque 属性之间的关系影响 图层混用
前言 在看性能优化文章里, 看到不少提到要把相应控件设置成不透明,特别是在滚动页面上,但是没有看到深入说明为什么要这样去做, 如果控件是透明的将会带来什么影响,还有当中涉及到的知识点都没有提出来.
1289 0
重构——11搬移字段(Move Field)
搬移字段(Move Field):你的程序中,某个字段被其所驻类之外的另一个类更多的用到。在目标类新建一个字段,修改源字段的所有用户,令它们该用新字段
1407 0

热门文章

最新文章