zoukankan      html  css  js  c++  java
  • 去除 inline-block 元素间距

    案例重现

    布局时经常能发现inline元素和inline-block元素水平呈现的元素间,会存在着一些意想不到的间距,举例:

    .inline-block {
      display: inline-block;
      background-color: green;
      color: #FFF;
    }
    
    <div class="content">
      <div class="inline-block">
        测试
      </div>
      <div class="inline-block">
        测试
      </div>
    </div>
    

    由于换行和空格分割符的存在,行内元素间将被渲染为一个小间距了。

    解决办法1-元素间移除空格和换行

    <div class="inline-block">
    一个</div><div class="inline-block">
    测试</div>
    

    这样看着仍旧不太舒服,尤其是项目里缩进层级深的时候

    解决办法2-父元素设置 font-size:0

    .content {
      font-size: 0;
      -webkit-text-size-adjust: none;
    }
    

    -webkit-text-size-adjust:none;,为了兼容旧版 chrome 对于字体大小的限制的。

    此方法基本上可以解决大部分浏览器下的兼容情况,IE7 可能存在 1 像素的间距 bug。这个方法算是最好用了。

    解决办法3-flex

    .content {
      display: flex
    }
    

    也能解决,只不过引入了 flex 可能会干扰原本的布局。

    解决办法4-float

    .inline-block {
      display: inline-block;
      background-color: green;
      color: #FFF;
      float: left;
    }
    

    也能解决,只不过引入了 float 可能会干扰原本的布局。

  • 相关阅读:
    Ant Design Charts更改tooltip样式的方法
    css更改滚动条样式
    css实现多行文本设置省略号
    css-背景图置于背景色的下方
    js使用reduce实现扁平化数组转换为树形数据
    js实现从0到指定数据的跳动
    原生js模拟vue的响应式
    柯里化函数
    vue中keepalived的使用
    常用网址
  • 原文地址:https://www.cnblogs.com/everlose/p/12493593.html
Copyright © 2011-2022 走看看