为什么线高会影响内联柔性?有什么解决办法吗?[复制]

Why line-height affects to inline-flex? Any solution? [duplicate]

提问人:Sergio Torres 提问时间:11/14/2023 最后编辑:Sergio Torres 更新时间:11/14/2023 访问量:36

问:

当多个 div 时,其中一些只有 1 行文本,另外 2 个具有不同的行高,使用 inline-flex 定位以进行内容居中,它们出现在不同的垂直位置。我知道这是因为行高,当我只放 1 行文本时,它不会发生。需要它没有浮子。

这是代码笔:https://codepen.io/Sergio-Torres-the-reactor/pen/GRzvgpb

#juego {
  text-align: center;
  background-color: red;
  margin: 0 auto;
  padding: 20px 20px 40px;
  width: 100%;
  max-width: 320px;
  font-size: 20px;
  line-height: 22px;
  font-family: Arial, sans-serif;
}

.juego_respuesta {
  padding: 40px 0;
  display: block;
}

.juego_respuesta_botones {
  margin-bottom: 30px;
}

.juego_respuesta_buton {
  display: inline-flex;
  width: 120px;
  height: 40px;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  line-height: 11px;
  color: #000000;
  background-color: #ffffff;
  border: 1px solid #000000;
  margin: 10px 5px;
  transition: 0.5s all;
  cursor: pointer;
}

.juego_respuesta_buton span {
  font-size: 7px;
}

.juego_respuesta_buton:hover {
  color: #ffffff;
  background-color: #000000;
}

.juego_respuesta_buton.activo {
  color: #ffffff;
  background-color: #000000;
  cursor: default;
}
<div id="juego">
  <div class="juego_respuesta">
    <div class="juego_respuesta_botones">
      <div class="juego_respuesta_buton activo">
        <div>TEST 1</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 2</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 3<br> TEST 3</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 4<br>
          <span>(TEST 4)</span></div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 5<br>
          <span>(TEST 5)</span></div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 6</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 7</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 8<br>
          <span>(TEST 8)</span></div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 9</div>
      </div>
    </div>
  </div>
</div>

尝试了不同的高度/最小高度和显示属性。

HTML CSS 弹性框

评论


答:

0赞 Haroon Ahmad 11/14/2023 #1

从我最初的外观来看,您应该将柔性显示提供给父元素,以便它控制子按钮的位置。

我稍微修改了CSS,它解决了这个问题。

#juego {
  text-align: center;
  background-color: red;
  margin: 0 auto;
  padding: 20px 20px 40px;
  width: 100%;
  max-width: 320px;
  font-size: 20px;
  line-height: 22px;
  font-family: Arial, sans-serif;
}
.juego_respuesta {
  padding: 40px 0;
}
.juego_respuesta_botones {
  margin-bottom: 30px;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap: wrap;
}
.juego_respuesta_buton {
  display:flex;
  justify-content:center;
  align-items: center;
  width: 120px;
  height: 40px;
  font-size: 9px;
  line-height: 11px;
  color: #000000;
  background-color: #ffffff;
  border: 1px solid #000000;  
  margin: 10px 5px;
  transition: 0.5s all;
  cursor: pointer;
}
.juego_respuesta_buton span {
  align-self:center;
}
.juego_respuesta_buton:hover {
  color: #ffffff;
  background-color: #000000;
}
.juego_respuesta_buton.activo {
  color: #ffffff;
  background-color: #000000;
  cursor: default;
}
<div id="juego">
  <div class="juego_respuesta">
    <div class="juego_respuesta_botones">
      <div class="juego_respuesta_buton activo">
        <div>TEST 1</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 2</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 3<br>
          TEST 3</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 4<br>
          <span>(TEST 4)</span></div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 5<br>
          <span>(TEST 5)</span></div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 6</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 7</div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 8<br>
          <span>(TEST 8)</span></div>
      </div>
      <div class="juego_respuesta_buton">
        <div>TEST 9</div>
      </div>
    </div>
  </div>
</div>