【问题标题】:Centering and positioning elements on the same row在同一行居中和定位元素
【发布时间】:2016-08-05 04:54:43
【问题描述】:

我有一个关于居中和定位元素的问题。我在左边有一段文字,在这种情况下只有一个单词 about,它应该居中并与电子邮件在同一行。

nav {
	text-align: center;
}
<address>
  <a href="#">Some text</a>
  <br>
  hi(at)mail.com
</address>

<nav>
  <a href="#">about</a>
</nav>

我试图将地址浮动到左侧,但导航不再位于中心。任何想法如何做到这一点?它必须很容易,但我就是不知道如何。

编辑

导航应该以整个视口为中心,我目前的答案是绝对定位导航并将左右设置为 0。但我不知道这是否是最好的方法。

它应该是什么样子:

【问题讨论】:

    标签: html css position center


    【解决方案1】:

    我不知道这是否是最好的方法,但它看起来像你想要做的

    nav {
    left:50%;
    	text-align: center;
    }
    address{
      float:left;
    }
    <address>
      <a href="#">Some text</a>
      <br>
      hi(at)mail.com
    </address>
    
    <nav>
    <br/>
      <a href="#">about</a>
    </nav>

    【讨论】:

    • 之后一定要清除,否则会影响其他元素。
    • 感谢您的回答,但结果并不完全居中,但我再次尝试使用 position: absolute 和 left: 0 right: 0 我得到了我想要的结果。
    • @user3640832 在这种情况下,您需要考虑当视口小于两个元素时,它们会重叠,您需要使用媒体查询对其进行排序,除此之外,这是一个有效的解决方案: )
    【解决方案2】:

    考虑使用display:table-cell。 这样我们就可以将内容垂直对齐到容器元素的底部。

    HTML:

    <div class="container">
      <address>
        <a href="#">Some text</a>
        <br>
        hi(at)mail.com
      </address>
      <nav>
        <a href="#">about</a>
      </nav>
    </div>
    

    CSS:(编辑为在表格单元格项目中包含 50% 的宽度)

    .container{
      display:table;
      width:100%;
    }
    address, nav{
      display:table-cell;
      vertical-align:bottom;
      width:50%;
    }
    

    在此处查看代码笔:http://codepen.io/eoghanTadhg/pen/NNYgYg

    【讨论】:

    • nav 并不是真正的中心。
    【解决方案3】:

    我想向您展示这个解决方案,因为它结合了一些有时被认为有问题的想法。在这里,我使用默认情况下 inline-block 元素与其内容的最后一行垂直对齐的事实。这正是你所需要的。此外,它使用零宽度块的可见溢出,将导航内容水平居中于包含块内。

    nav {
        text-align: center;
        display:inline-block;
        width:100%;
        margin-left:-0.25em;
    }
    address { 
        display:inline-block;
        width:0;
    }
    address > * { 
        white-space: nowrap;
    }
    <address>
      <a href="#">Some text</a>
      <br>
      <span>hi(at)mail.com</span>
    </address>
    
    <nav>
      <a href="#">about</a>
    </nav>

    【讨论】:

    • 你的答案对我来说是最好的,我自己永远也想不出来,谢谢。只有一个问题:它首先不起作用,因为我在正文标签上有字母间距。你认为这个解决方案是否可行,因为你在谈论有问题的想法?
    • 该解决方案对字母间距不敏感,除非您可能需要调整 margin-left 设置,但如果遇到问题,请发布新问题。
    猜你喜欢
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2018-03-14
    • 2013-10-02
    • 1970-01-01
    • 2015-12-08
    相关资源
    最近更新 更多