【问题标题】:Cannot vertical align inline-block divs [duplicate]无法垂直对齐内联块 div [重复]
【发布时间】:2018-09-23 09:16:05
【问题描述】:

我正在阅读有关如何将 div 彼此对齐的文章,一些帖子建议使用 inline-block 而不是 float。所以我尝试做同样的事情,但是 div 的垂直对齐不起作用。这是我的代码示例:

.container *{
  padding: 0px; 
  margin: 0px; 
  box-sizing: border-box;
}

.headers, .items{
  list-style-type: none;
}

.tile{
  background: #27ae60; 
  width: 200px; 
  min-height: 200px;
  border-radius: 5px;
  padding: 5px 0px 5px 5px; 
  margin: 0px 5px 5px 0px;
  display: inline-block;

}

.tile a, .tile span{
  color: white; 
  text-decoration: none;
}

.bold{
  font-weight: bold;
}

a.iconOpener{
  color: blue;
}
<div class="container">
  <div class="tile">
    <h2>test</h2>
    <h2>test</h2>
    <h2>test</h2>
    <h2>test</h2>
    <h2>test</h2>
    <h2>test</h2>
    <h2>test</h2>

  </div>
  <div class="tile">
    <ul class="headers">
      <li class="header">
        <span> *  </span><span class="headerText">header 1</span>
        <a href="#" class="headerLink bold iconOpener" title="Open link in new tab">&#10532;</a>
      </li>
      <li class="header">
        <span> + </span> <span class="headerText">header 1</span>
        <a href="#" class="headerLink bold iconOpener" title="Open link in new tab">&#10532;</a>

        <ul class="items">
          <li class="item">
            <a href="#" class="itemLink">item 1</a>
          </li>
          <li class="item">
            <a href="#" class="itemLink">item 2</a>
          </li>
          <li class="item">
            <a href="#" class="itemLink">item 3</a>
          </li>
        </ul>
      </li>
      <li class="header">
        <span> + </span><span class="headerText">header 1</span>
      </li>
    </ul>
  </div>

</div>

我在这里做错了什么?此外,如果有任何其他推荐的方式来实现瓷砖的实现方式,那将不胜感激。

谢谢。

【问题讨论】:

    标签: html css vertical-alignment


    【解决方案1】:

    您需要将行 vertical-align:top 添加到您的 css 中的 .tile 类。然后它就起作用了:) 见 sn-p

    .container * {
      padding: 0px;
      margin: 0px;
      box-sizing: border-box;
    }
    
    .headers,
    .items {
      list-style-type: none;
    }
    
    .tile {
      vertical-align: top; /*added this*/
      background: #27ae60;
      width: 200px;
      min-height: 200px;
      border-radius: 5px;
      padding: 5px 0px 5px 5px;
      margin: 0px 5px 5px 0px;
      display: inline-block;
    }
    
    .tile a,
    .tile span {
      color: white;
      text-decoration: none;
    }
    
    .bold {
      font-weight: bold;
    }
    
    a.iconOpener {
      color: blue;
    }
    <div class="container">
      <div class="tile">
        <h2>test</h2>
        <h2>test</h2>
        <h2>test</h2>
        <h2>test</h2>
        <h2>test</h2>
        <h2>test</h2>
        <h2>test</h2>
    
      </div>
      <div class="tile">
        <ul class="headers">
          <li class="header">
            <span> *  </span><span class="headerText">header 1</span>
            <a href="#" class="headerLink bold iconOpener" title="Open link in new tab">&#10532;</a>
          </li>
          <li class="header">
            <span> + </span> <span class="headerText">header 1</span>
            <a href="#" class="headerLink bold iconOpener" title="Open link in new tab">&#10532;</a>
    
            <ul class="items">
              <li class="item">
                <a href="#" class="itemLink">item 1</a>
              </li>
              <li class="item">
                <a href="#" class="itemLink">item 2</a>
              </li>
              <li class="item">
                <a href="#" class="itemLink">item 3</a>
              </li>
            </ul>
          </li>
          <li class="header">
            <span> + </span><span class="headerText">header 1</span>
          </li>
        </ul>
      </div>
    
    </div>

    【讨论】:

    • 谢谢瑞秋。你怎么知道默认值,比如垂直对齐,默认情况下它总是基线,还是在设置 inline-block 时它只是基线?那么我需要将其设置为顶部吗?我在理解 props 的默认值以及这些默认值是否会根据其他属性更改时遇到问题。如果您对我有任何建议,那就太好了。
    • @DMZ 只需阅读文档:developer.mozilla.org/en-US/docs/Web/CSS/vertical-align 初始值始终相同,它不依赖于其他任何东西......在这种情况下,它始终是任何地方的基线,直到您更改它跨度>
    • @DMZ 如果您对 css 属性的默认值有疑问,可以在 w3schools.com/cssref/css_default_values.asp 或 mozilla 开发人员参考文档中进行检查
    • @TemaniAfif 谢谢,但是,我怎么一开始就知道这是一个垂直对齐问题,我的意思是我自己永远不会知道,你们怎么知道这个问题与特定属性?
    • @DMZ 你曾经面对它,你会变得疯狂地搜索它是什么,你找到它并记住它;)......这就是我们学习和变得有经验的方式,没有魔术技巧
    猜你喜欢
    • 2016-05-06
    • 2014-10-16
    • 2013-04-11
    • 2016-08-17
    • 2012-02-16
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    相关资源
    最近更新 更多