代码之家  ›  专栏  ›  技术社区  ›  Ilia

显示:内联块添加垂直填充

  •  2
  • Ilia  · 技术社区  · 7 年前

    * {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
    }
    
    body {
      margin: 0;
    }
    
    .row {
      background-color: red;
      /* display: inline-block; */
    }
    
    ul {
      list-style: none;
      padding: 0;
    }
    
    ul li {
      border: 2px solid green;
      display: inline-block;
      margin: 0;
      padding: 15px;
    }
    <div class="row">
      <ul>
        <li>one</li>
        <li>two</li>
        <li>one</li>
      </ul>
    </div>

    当我使用 inline-block 在我的CSS中,它看起来像这样:

    enter image description here

    但是没有 display:inline-block block

    enter image description here

    那么这个垂直填充是从哪里来的呢?

    2 回复  |  直到 7 年前
        1
  •  3
  •   j08691    7 年前

    填充来自无序列表和折叠的页边距。当父对象(div.row)上没有display:inline块时,该div默认显示为块元素,并且 margins collapse overflow: auto 到div.row元素。

    * {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
    }
    
    body {
      margin: 0;
    }
    
    .row {
      background-color: red;
      /* display: inline-block; */
      overflow:auto;
    }
    
    ul {
      list-style: none;
      padding: 0;
    }
    
    ul li {
      border: 2px solid green;
      display: inline-block;
      margin: 0;
      padding: 15px;
    }
    <div class="row">
      <ul>
        <li>one</li>
        <li>two</li>
        <li>one</li>
      </ul>
    </div>

    <ul>

        2
  •  0
  •   felixmosh    7 年前

    利润来自 ul ,它像你想要的那样对齐。

    * {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
    }
    
    body {
      margin: 0;
    }
    
    .row {
      background-color: red;
      display: inline-block;
    }
    
    ul {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    
    ul li {
      border: 2px solid green;
      display: inline-block;
      margin: 0;
      padding: 15px;
    }
    <div class="row">
      <ul>
        <li>one</li>
        <li>two</li>
        <li>one</li>
      </ul>
    </div>