【问题标题】:How can I align two different-size pieces of text to the left and right while matching baselines?如何在匹配基线的同时左右对齐两个不同大小的文本?
【发布时间】:2015-06-23 16:18:24
【问题描述】:

我正在尝试更改标题和标语在the Coraline WordPress theme 中的显示方式。我希望它们彼此相邻,在基线上对齐,左右对齐。我是 CSS 新手。

我设法找到了一个解决方案,但它似乎在 Safari 8 中不起作用。在所有主要浏览器的最新版本中都可以使用的强大替代方案是什么?

这是我在 Chrome 和 Firefox 中的尝试:

#container {
  width: 400px;
  background: #eee;
  /* This below is the key, doesn't work in Safari 8 */
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

#title {
  font-size: 32pt;
  background: #aee;
}

#tagline {
  font-size: 12pt;
  background: #eea;
}
<div id="container">
  <div id="title">Site Title</div>
  <div id="tagline">This is the tagline</div>
</div>

【问题讨论】:

  • 您是否检查过 Coraline 主题是否适用于 Safari 8?如果可行,您只需复制标题和标语的样式即可。
  • @MarcoBernardini Coraline 主题将标题和标语置于另一个之上。我想把它们放在一起,就像上面的简化示例一样。 Coraline 主题适用于 Safari。我对它的修改没有。问题只是关于我的修改。我只是在上下文中提到了 Coraline,以解释我为什么要这样做。

标签: css wordpress alignment


【解决方案1】:

Safari 目前仅支持带前缀的flex

#container {
  display: -webkit-flex; /*new*/
  display: flex;
  -webkit-justify-content: space-between; /*new*/
  justify-content: space-between;
  -webkit-align-items: baseline; /*new*/
  align-items: baseline;
}

更新的演示:

#container {
  width: 400px;
  background: #eee;
  /* This below is the key, doesn't work in Safari 8
     Edit, added -webkit-* prefix */
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-align-items: baseline;
  align-items: baseline;
}

#title {
  font-size: 32pt;
  background: #aee;
}

#tagline {
  font-size: 12pt;
  background: #eea;
}
<div id="container">
  <div id="title">Site Title</div>
  <div id="tagline">This is the tagline</div>
</div>

或者,您可以使用inline-block 和以下一些技巧。

#container {
  width: 400px;
  background: #eee;
  text-align: justify;
  font-size: 0; /*fix for white space*/
}

#container:after{
  content: "";
  width: 100%;
  display: inline-block;
}

#title, #tagline {
  display: inline-block;
  vertical-align: bottom;
}

#title {
  font-size: 32pt;
  background: #aee;
}

#tagline {
  font-size: 12pt;
  background: #eea;
}
<div id="container">
  <div id="title">Site Title</div>
  <div id="tagline">This is the tagline</div>
</div>

【讨论】:

  • 看起来很棒!您知道这是否适用于最新版本的 Internet Explorer?
  • @Szabolcs IE11 原生,IE10 带前缀,根据caniuse.com/#feat=flexbox
猜你喜欢
  • 2021-06-17
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 2018-07-04
  • 2018-10-07
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多