代码之家  ›  专栏  ›  技术社区  ›  treyBake user1850175

右对齐父级<span>内部<p>

  •  0
  • treyBake user1850175  · 技术社区  · 7 年前

    我想将新行文本右对齐到p的右侧。

    这是我当前代码的简化版本:

    p {
      text-align: center
    }
    
    span {
      text-align: right
    }
    <p>
      lorem ipsum lorem ipsum lorem ipsum
      <br />
      <span>-author</span>
    </p>

    但我的跨度仍然居中。如果我使用 float: right 它在右边,但不与p标记的最后一个字符内联。设置 max-width lorem ipsum

    下面是一个jsfiddle流: https://jsfiddle.net/dxgs3u41/

    如何将span与p的最后一个字符右对齐?

    4 回复  |  直到 7 年前
        1
  •  1
  •   Paulie_D    7 年前

    一个非位置的可能性,但同样,段落需要 inline display:block .

    body {
      text-align: center;
    }
    
    p {
      display: inline-flex;
      flex-direction: column;
      text-align: center;
      border: 1px solid red;
    }
    
    span {
      text-align: right;
    }
      <p>
        lorem ipsum lorem ipsum lorem ipsum
        <br />
        <span>-author</span>
      </p>
        2
  •  1
  •   Temani Afif    7 年前

    使用 inline-block 元素,使容器宽度成为内容宽度,您可以将整个容器居中,然后将文本置于其中。

    div {
      text-align: center
    }
    div > p {
      display:inline-block;
      text-align: right
    }
    <div>
      <p>lorem ipsum lorem ipsum lorem ipsum
      <br>
      <span>-author</span>
      </p>
    </div>
    
    <div>
      <p>lorem ipsum lorem ipsum
      <br>
      <span>-author</span>
      </p>
    </div>
        3
  •  1
  •   OliverRadini    7 年前

    这应该能解决问题。span只能与容器的边缘对齐,而不是与文本行的结尾对齐,因此需要调整设置标记的方式:

    .center {
      text-align: center;
    }
    
    p {
      display: inline-block;
      position: relative;
      text-align: center
    }
    
    span {
      position: absolute;
      right: 0;
    }
    <div class="center">
      <p>
        lorem ipsum lorem ipsum lorem ipsum
        <br />
        <span>-author</span>
      </p>
    </div>
        4
  •  0
  •   Gobbin    7 年前

    这是一个不需要 flexbox . 我个人不喜欢flexbox(主要是因为我觉得它非常复杂),所以这取决于你!

    div {
      display: block;
      text-align: center;
    }
    p {
      text-align: center;
      display: inline-block;
    }
    
    span {
      display: block;
      text-align: right
    }
    <div>
    <p>
        lorem ipsum lorem ipsum lorem ipsum lorem ipsum
        <br />
        <span>-author</span>
    </p>
    </div>