display: inline-block 属性很好的避免了元素的浮动问题,但是会有点小问题,就是 inline-block 元素间的回车会被显示为一个空格。然而,我们写代码时,都是用回车来格式化的。。。

最简单的方法就是把 inline-block 元素之间的回车删除,就是代码显示有点不美观,影响阅读。

方法总结

以下方法不保证浏览器兼容性问题,仅在 Chrome 浏览器测试通过

HTML Code:

  1. <h5>未处理空格</h5>
  2. <ul>
  3. <li>One</li>
  4. <li>Two</li>
  5. <li>Three</li>
  6. </ul>
  7. <h5>通过格式化代码来去除空格</h5>
  8. <ul>
  9. <li>One</li><li>
  10. Two</li><li>
  11. Three</li>
  12. </ul>
  13. <h5>用空白注释代替回车</h5>
  14. <ul>
  15. <li>One</li><!--
  16. --><li>Two</li><!--
  17. --><li>Three</li>
  18. </ul>
  19. <h5>通过忽略&lt;/li&gt; 去除空格</h5>
  20. <ul>
  21. <li>One
  22. <li>Two
  23. <li>Three
  24. </ul>
  25. <h5>设置 margin-right: -4px 去除空格</h5>
  26. <ul class="margin-fix">
  27. <li>One</li>
  28. <li>Two</li>
  29. <li>Three</li>
  30. </ul>
  31. <h5>设置 font-size: 0 去除空格</h5>
  32. <ul class="font-size-fix">
  33. <li>One</li>
  34. <li>Two</li>
  35. <li>Three</li>
  36. </ul>
  37. <h5>设置 flex-box 去除空格</h5>
  38. <ul class="flex-box">
  39. <li>One</li>
  40. <li>Two</li>
  41. <li>Three</li>
  42. </ul>

CSS Code:

  1. body {
  2. font-family: sans-serif;
  3. font-size: 16px;
  4. }
  5. ul {
  6. list-style: none;
  7. }
  8. li {
  9. display: inline-block;
  10. background-color: #000;
  11. color: #fff;
  12. padding: 5px;
  13. }
  14. ul.margin-fix li {
  15. margin-right: -4px;
  16. }
  17. ul.font-size-fix {
  18. font-size: 0;
  19. }
  20. ul.font-size-fix li {
  21. font-size: 16px;
  22. }
  23. ul.flex-box {
  24. display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
  25. display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
  26. display: -ms-flexbox; /* TWEENER - IE 10 */
  27. display: -webkit-flex; /* NEW - Chrome */
  28. display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
  29. }

效果图:

CSS3如何去除 inline block 元素之间多出的空格的更多相关文章

  1. 去除行内(inline/inline-block)元素之间的间距

    先展示一下,行内元素之间存在间距,实例代码如下: <style> div { color: #fff; padding: 25px 50px; } .inline-f00 { displa ...

  2. 关于block元素和inline元素

    呃...这个会不会太基础了.最近在复习,所以基础知识也不能够忽略. 根据HTML 4.01 规范,其描述如下(http://www.w3.org/TR/html401/struct/global.ht ...

  3. 行内块inline-block元素之间出现空白间隙原因及解决办法

    首先,来看下具体的问题,下面是用inline-block布局实现的两边固定宽度,中间自适应的html代码: 1 2 3 4 5 6 7 8 9 <section class="layo ...

  4. display:inline-block元素之间空隙的产生原因和解决办法

    在CSS布局中,如果我们想要将一些元素在同一行显示,其中的一种方法就是把要同行显示的元素设置display属性为inline-block.但是你会发现这些同行显示的inline-block元素之间会出 ...

  5. HTML行内级元素之间的空格问题

    HTML行内级元素之间的空格问题 1.为什么元素之间会产生空格? 在编写行内级元素(包括inline-block元素)的代码之间如果有空格(换行),在浏览器上就会显示元素之间有空格. 示例代码如下: ...

  6. 如何去除内联元素(inline-block元素)之间的间距(转载)

    如何去除内联元素(inline-block元素)之间的间距   前几天写一个专题页 div{width:900px;}div a{ display:inline-block; width:300px; ...

  7. block元素和inline元素的特点

    一.block元素的特点 1.处于常规流中时,如果width没有设置,会自动填充满父容器 2.可以设置height/width及margin/padding 3.处于常规流中时,布局在前后元素位置之间 ...

  8. inline元素、block元素

    inline元素 不会独占一行,相邻的行内元素会排列在同一行内,直到一行排不下才会换行 高.行高.以及外边距和内边距不可改变 宽度就是它的文字或图片的宽度,不可改变,随元素内容变化而变化 内联元素只能 ...

  9. 多个inline元素、block元素、inline-block元素在父容器中的换行情况

    1.首先看inine元素的换行情况 <style> *{padding:0;margin:0} div.wrap{width:200px;height:200px;border:1px s ...

随机推荐

  1. C# 大小写转换,方便index of

    ToUpper:小写转大写ToLower:大写转小写 例: string str=120cm*150g/m2;从中取出120和150,但是又要规避大小写问题,这时候就需要将str转换为大写,然后ind ...

  2. android base64 和 aes 加密 解密

    package pioneerbarcode.ccw.com.encryptanddecode;import android.os.Bundle;import android.support.v7.a ...

  3. C#操作PPT表格

    1.激活组件 AxFramerControl改控件的dll自己再网上百度下下载这里不多讲 /// <summary>        /// 检测是否注册控件        /// < ...

  4. 执行时关闭标识位 FD_CLOEXEC 的作用

    首先先回顾 apue 中对它的描述: ① 表示描述符在通过一个 exec 时仍保持有效(书P63,3.14节 fcntl 函数,在讲 F_DUPFD 时顺便提到) ② 对打开文件的处理与每个描述符的执 ...

  5. IOS调用系统声音(键盘声音)

    #import <AudioToolbox/AudioToolbox.h> AudioServicesPlaySystemSound(1106); 注:括号中为系统声音的id,详见 htt ...

  6. c4,configure the debug environment

    Yesterday I found a tiny C compiler (less than 600 line of C code, containing commits) called " ...

  7. 麦咖啡阻挡正常打开Excel文件

    双击打开Excel文件,提示如下图: Excel文件被麦咖啡做阻挡,无法正常打开 处理方案: 过一会儿还是出现此问题,干脆就把缓冲区保护给禁用掉

  8. 19:A*B问题

    总时间限制:  1000ms 内存限制:  65536kB 描述 输入两个正整数A和B,求A*B. 输入 一行,包含两个正整数A和B,中间用单个空格隔开.1 <= A,B <= 50000 ...

  9. Fragment之间的通信(四)

    自定义两个fragment的布局和java类. 在mainactivity中引用布局文件 在其中的一个fragment中的控件上添加监听,获取到另一个fragment中控件的内容,展示出来完成frag ...

  10. beacon帧

    1.MAC头部 解释: ① Version 版本号  目前为止802.11只有一个版本,所以协议编号为0 ② Type 00表示管理帧,01表示控制帧,10表示数据帧 ③ Subtype 和Type一 ...