CSS3如何去除 inline block 元素之间多出的空格

时间:2023-12-28 21:08:38

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

CSS3如何去除 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 元素之间多出的空格