前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >day007:使用display:inline-block会产生什么问题?解决方法?

day007:使用display:inline-block会产生什么问题?解决方法?

作者头像
用户3806669
发布2021-03-11 14:35:19
3260
发布2021-03-11 14:35:19
举报
文章被收录于专栏:前端三元同学

day 007: 使用display:inline-block会产生什么问题?解决方法?

问题复现

问题: 两个display:inline-block元素放到一起会产生一段空白。

如代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
      .container {
        width: 800px;
        height: 200px;
      }

      .left {
        font-size: 14px;
        background: red;
        display: inline-block;
        width: 100px;
        height: 100px;
      }

      .right {
        font-size: 14px;
        background: blue;
        display: inline-block;
        width: 100px;
        height: 100px;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="left">
        左
      </div>
      <div class="right">
        右
      </div>
    </div>
  </body>
</html>

效果如下:

产生空白的原因

元素被当成行内元素排版的时候,元素之间的空白符(空格、回车换行等)都会被浏览器处理,根据CSS中white-space属性的处理方式(默认是normal,合并多余空白),原来 HTML代码中的回车换行被转成一个空白符,在字体不为0的情况下,空白符占据一定宽度,所以inline-block的元素之间就出现了空隙。

解决办法

1. 将子元素标签的结束符和下一个标签的开始符写在同一行或把所有子标签写在同一行
代码语言:javascript
复制
<div class="container">
  <div class="left">
      左
  </div><div class="right">
      右
  </div>
</div>
2. 父元素中设置font-size: 0,在子元素上重置正确的font-size
代码语言:javascript
复制
.container{
  width:800px;
  height:200px;
  font-size: 0;
}
3. 为子元素设置float:left
代码语言:javascript
复制
.left{
  float: left;
  font-size: 14px;
  background: red;
  display: inline-block;
  width: 100px;
  height: 100px;
}
//right是同理
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端三元同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • day 007: 使用display:inline-block会产生什么问题?解决方法?
    • 问题复现
      • 产生空白的原因
        • 解决办法
          • 1. 将子元素标签的结束符和下一个标签的开始符写在同一行或把所有子标签写在同一行
          • 2. 父元素中设置font-size: 0,在子元素上重置正确的font-size
          • 3. 为子元素设置float:left
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档