【问题标题】:Flex align center causes br after a not to work?Flex align center 导致 br 后 a 不工作?
【发布时间】:2021-06-04 21:34:21
【问题描述】:

这个网格可以正常工作,除了当我将文本居中放在右侧时,br 停止工作,因此 a 结束在自己的行上...尽管没有链接或没有中心,它也可以正常工作。

我可以使用 p 或 div 围绕该文本集合的包装解决此问题,但也许是更好的方法?

抱歉无知。 谢谢。

.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.right {
  background-color: lightgray;
  display: flex;
  align-items: center;
}

.left {
  background-color: darkgray;
}
<div class=container>
  <div class="left">
    left<br>left<br>left<br>left
  </div>
  <div class="right">
    <a href="http://www.google.com">google</a><br>right<br>right
  </div>
</div>
&nbsp;
<div class=container>
  <div class="left">
    left<br>left<br>left<br>left
  </div>
  <div class="right">
    google<br>right<br>right
  </div>
</div>

【问题讨论】:

  • 你到底想在这里做什么?
  • 只是将右侧的文本垂直居中... a 后面的 br 不起作用?
  • 一条重要规则:永远不要让文本容器成为弹性容器

标签: html css flexbox css-grid


【解决方案1】:

重写您的代码,使其看起来像这样,使用&lt;br&gt; 不是分隔单独文本行的好方法

.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.right {
  background-color: lightgray;
  display: flex;
  align-items: center;
  flex-direction: column;
}

.left {
  background-color: darkgray;
}

/** This will remove the space between the p tags **/
p {
   margin: 0;
}
<div class=container>
  <div class="left">
    <p>left</p>
    <p>left</p>
    <p>left</p>
    <p>left</p>
  </div>
  <div class="right">
    <p><a href="http://www.google.com">google</a></p>
    <p>right</p>
    <p>right</p>
  </div>
</div>

【讨论】:

  • br 还有什么用途?正如我所说,它通常可以正常工作,并且没有 a... br 工作,除了 a 在 flex 之后?这是规定吗?
  • br 用于格式化文本,不用于布局
  • 您的示例在每行之间都有空行...如果您用 div 而不是 p 包装整个块,它可以解决这个问题,但我希望有一种方法没有额外的修复/包装标签谢谢
  • 虽然我在我的问题中提到了

    ,但仍然不明白为什么你不能使用 br?我尝试的不是布局?我会的,因为没有其他人回答,你问了

  • 有关何时何地使用 br 的更多信息,请访问此处stackoverflow.com/questions/1726073/…
猜你喜欢
  • 2018-07-16
  • 1970-01-01
  • 2016-10-28
  • 2022-12-27
  • 2021-05-09
  • 2013-06-25
  • 2018-02-01
  • 1970-01-01
相关资源
最近更新 更多