【问题标题】:Vertical align multiple text lines垂直对齐多个文本行
【发布时间】:2016-03-30 17:27:37
【问题描述】:

我正在尝试将图标与放置在其左侧和右侧的文本对齐。我正在使用 Wordpress 和 bootstrap 为我的帖子创建一个后退/下一个按钮导航

<?php if ( is_single() ) : // navigation links for single posts ?>

    <?php next_post_link( '<div class="nav-previous col-xs-5">%link</div>', '<span class="fa fa-chevron-left nav-icn-L"></span> <span class="meta-nav">' . _x( '%title', 'Previous post link', 'bnNav' ). '</span>'); ?>
    <?php previous_post_link( '<div class="nav-next col-xs-5">%link</div>', '<span class="meta-nav">' . _x( '%title', 'Next post link', 'bnNav' ). '</span> <span class="fa fa-chevron-right nav-icn-R"></span>'); ?>

<?php elseif ( $wp_query->max_num_pages > 1 && ( is_home() || is_archive() || is_search() ) ) : // navigation links for home, archive, and search pages ?>

    <?php if ( get_next_posts_link() ) : ?>
    <div class="nav-previous col-xs-5"><?php next_posts_link( __( '<span class="fa fa-arrow-left"></span> Older posts', 'bnNav' ) ); ?></div>
    <?php endif; ?>

    <?php if ( get_previous_posts_link() ) : ?>
    <div class="nav-next col-xs-5"><?php previous_posts_link( __( 'Newer posts <span class="fa fa-arrow-right"></span>', 'bnNav' ) ); ?></div>
    <?php endif; ?>

<?php endif; ?>

fa fa-arrow 创建一个箭头图标。我希望出现在其右侧和左侧的文本在从一行变为两行时与图标保持垂直对齐。 (根据屏幕大小)标题由帖子生成

编辑

生成的输出(左/后退按钮)是

<a rel="next" href="http://localhost/wordpress/?p=369">
   <span class="fa fa-chevron-left nav-icn-L"></span>
   <span class="meta-nav">Welcome</span>
</a>

【问题讨论】:

  • 您可以发送这些问题的 url 或在 jsfiddle 中添加代码吗?
  • 您能否发布为此生成的 HTML 标记的检查器屏幕截图?
  • 对“后退”按钮的输出进行了编辑。 “下一步”按钮类似
  • 因为问题只是在 css 中,最好添加 HTML/CSS 的 sn-p 或链接到您的网站……这样很难看到完整的图像
  • 如果可以的话我会,但它在本地主机上

标签: html css wordpress twitter-bootstrap


【解决方案1】:

另一种没有表格和 flexbox 的方式(需要 IE10 和更高版本)。

您可以创建元素display: inline-block 并将vertical-align: middle 应用于它们。

这是一个例子https://jsfiddle.net/bbvpaLgd/2/

【讨论】:

  • 跨浏览器很重要,垂直对齐中间似乎对我不起作用
  • 这个属性有点棘手。它应该应用于所有应该垂直居中的元素,而不是它们的容器。元素也必须是内联块。
  • 是否需要定义宽度才能工作?当没有足够的空间时,似乎无法让它们彼此对齐。文本位于图标下方,然后开始换行
  • 不,我设置宽度只是为了举例。
【解决方案2】:

是否有你想要垂直对齐的父 div 或 p 标签?垂直对齐比它应该的更棘手,但是,这是因为有很多未知数。

假设您拥有的区域高度为 250 像素,您需要在该区域中垂直对齐文本。 这里有一些 CSS 可以简单地实现它:

line-height:250px;

不幸的是,这只适用于一行,但是,我喜欢在这方面作弊。我添加了一个带负数的边距顶部,以使其刚好高于我的文本大小。所以我会从原始行高中减去 12 号字体。比如:

.textplacer { line-height:250px; }
.textplacerTwo { line-height:250px; margin-top:-235px; }

<div class="textplacer">your content</div>
<div class="textplacerTwo">your content</div>

【讨论】:

    【解决方案3】:

    Flexbox 可以做到这一点。

    * {
      margin: 0;
      box-sizing: border-box;
      text-align: center;
    }
    a {
      text-decoration: none;
      color: red;
      font-size: 36px;
      padding: .25em;
      border: 1px solid grey;
      width: 250px;
    }
    a.flex {
      display: flex;
      justify-content: center;
      align-items: center;
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet" />
    <a class="flex" rel="next" href="http://localhost/wordpress/?p=369">
      <span class="fa fa-chevron-left nav-icn-L"></span>
      <span class="meta-nav">Lorem ipsum dolor sit amet.</span>
    </a>

    或者..你可以使用 CSS 表格

    * {
      margin: 0;
      box-sizing: border-box;
      text-align: center;
    }
    a {
      text-decoration: none;
      color: red;
      font-size: 36px;
      padding: .25em;
      border: 1px solid grey;
      width: 250px;
      display: table;
    }
    a span {
      display: table-cell;
      vertical-align: middle;
    }
    a span.fa {
      display: table-cell;
      vertical-align: middle;
    }
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet" />
    <a rel="next" href="http://localhost/wordpress/?p=369">
      <span class="fa fa-chevron-left nav-icn-L"></span>
      <span class="meta-nav">Lorem ipsum dolor sit amet.</span>
    </a>

    【讨论】:

    • 这就是我在视觉上寻找的东西,我不知道它是否可以在一行上工作,因为盒子是定义大小的
    • 另一条评论,能否更具体一点。 csswritten 的方式将适用于每个链接等
    • 除非您可以在演示中向我们展示您的输出,否则除了我们自己的猜测之外很难提供帮助。当然,这两者都应该在一个“行”中工作
    • 是的,这里的演示是故意通用的(毕竟只是一个演示)...您必须在自己的代码中使其更具体。
    猜你喜欢
    • 2014-05-01
    • 2014-04-03
    • 2011-09-25
    • 2018-11-09
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多