【问题标题】:Line Break between text + button isn't working in h1文本+按钮之间的换行符在 h1 中不起作用
【发布时间】:2022-01-24 02:55:25
【问题描述】:

我正在尝试将按钮移动到文本下方(当前显示“测试?”),但换行符什么也没做。我已经用谷歌搜索了所有我能想到的东西,但找不到任何关于此的信息,因此不胜感激!

按钮的 HTML 和 CSS(如果相关):

.custom-button,
.custom-button:visited {
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 5px 10px;
      border: 2px solid #FFF;
}

.custom-button:hover {
      background: #000;
      color: #FFF;
}
<h1>
   Test? <br>
   <a class="custom-button" href="#scroll">Click Me</a>
</h1>

编辑:这也是标题的代码,似乎 display: flex 部分导致了问题,但是如果没有它,我如何垂直居中文本?这对我来说是全新的,所以谢谢你的帮助!

h1 {
    font-size: 62px;
    font-family: "Sofia", sans-serif;
    color: cyan;
    text-align: center;
    vertical-align: middle;
    background-color: grey;
    background-repeat: no-repeat;
    background-position: center;
    margin: -10px;
    height: 110%;
    display: flex;
    justify-content: center;
    align-items: center;
  }

【问题讨论】:

  • 看起来 h1 元素有 display: flex 或其他导致此问题的设置。您应该发布完整的相关代码(HTML 和 CSS,以及父元素)
  • 你真的需要display:flex 上的h1 元素吗?

标签: html css


【解决方案1】:

您可以使用常规的 div 代替 h1,如下所示:

<div>
   <div>Test?</div>
   <div><a class="custom-button" href="#scroll">Click Me</a></div>
</div>

因此,默认情况下,div 将表现为换行符(即显示:块)。 此外,您可能还想添加一些额外的样式。

【讨论】:

  • 我正在使用 h1 元素,因为我希望这部分拥有一些装饰性的东西,而不会影响网页的其余部分(或者至少,将有装饰性的东西,因为它目前在带有许多占位符的极其粗糙的状态)
  • 对我来说,所有的装饰都可以通过自定义的 css 类来完成(使用字体粗细、内边距、边距、颜色等)。而且我仍然认为 div 比

    中的
    更好。如果您不想使用 div,可以尝试
    或其他带有 div 的东西。 Div 有一个好处:当您进行自适应布局时,操作它们比

    更容易
【解决方案2】:

我认为没有必要换行,
您只需将文本包装到

标签

<h1>
   <p>Test?</p>
   <a class="custom-button" href="#scroll">Click Me</a>
</h1>

【讨论】:

    【解决方案3】:

    这是由display: flexjustify-content: center 的组合引起的。 Flexbox 通常用于使事物居中,因此如果您不希望它居中,则几乎没有理由使用它。

    如果您希望将display: flex 设置在文本下方,只需删除它即可。你也可以删除justify-contentalign-items,因为如果你删除display: flex,它们都不会影响任何事情:

    .custom-button,
    .custom-button:visited {
          padding: 5px 10px;
          border: 2px solid #FFF;
    }
    
    .custom-button:hover {
          background: #000;
          color: #FFF;
    }
    <h1>
       Test? <br>
       <a class="custom-button" href="#scroll">Click Me</a>
    </h1>

    或者,如果您希望它们都居中,则需要将弹性规则应用于 两个 元素,以及 flex-direction: column 以确保弹性框是垂直的与水平相反:

    .custom-button,
    .custom-button:visited {
          padding: 5px 10px;
          border: 2px solid #FFF;
    }
    
    .custom-button:hover {
          background: #000;
          color: #FFF;
    }
    
    h1, a {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
    }
    <h1>
       Test? <br>
       <a class="custom-button" href="#scroll">Click Me</a>
    </h1>

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 2014-10-19
      • 2011-06-19
      • 2018-12-11
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多