【问题标题】:absolute position and margin 0 auto绝对位置和边距 0 auto
【发布时间】:2015-06-13 14:17:05
【问题描述】:

我似乎无法弄清楚如何将文本定位在包装器的中心。我有一个响应式幻灯片,我想要顶部和居中的文本。

ul.bjqs {
    position:relative;
    list-style:none;
    padding:0;
    margin:0;
    z-index: 1;
    overflow:hidden;
    display:none;
}
.slideshow-tageline {
    position: absolute;
    max-width: 1140px;
    left:0;
    right:0;
    margin:0 auto;
    z-index:99;
    color: #fff;
    font-family:'Montserrat', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 60px;
    line-height: 125%;
    text-shadow: 2px 1px 1px rgba(0, 0, 0, 0.25);
}
.tagline-wrapper {
    position: relative;
    max-width: 1140px;
    width:100%;
    margin: 0 auto;
}
<div id="banner-fade">
    <ul class="bjqs">
      <li> <div class="tagline-wrapper"><span class="slideshow-tageline">Every Moment Matters</span></div><img src="/includes/img/homepage/slider_images/slider_1.jpg"></li>
      <li> <div class="tagline-wrapper"><span class="slideshow-tageline">Every Moment Matters</span></div><img src="/includes/img/homepage/slider_images/slider_2.jpg" ></li>
      <li> <div class="tagline-wrapper"><span class="slideshow-tageline">Every Moment Matters</span></div><img src="/includes/img/homepage/slider_images/slider_3.jpg"></li>
      <li> <div class="tagline-wrapper"><span class="slideshow-tageline">Every Moment Matters</span></div><img src="/includes/img/homepage/slider_images/slider_4.jpg"></li>
      <li> <div class="tagline-wrapper"><span class="slideshow-tageline">Every Moment Matters</span></div><img src="/includes/img/homepage/slider_images/slider_5.jpg"></li>
    </ul>
</div>

【问题讨论】:

  • 您不能在绝对定位的元素上使用自动边距“hack”。最好的办法是指定一个尺寸,然后使用 50% 的负边距。
  • 很难理解你想要的效果是什么。无论如何-您可以做的不是使用绝对位置,而是将其相对于父级定位,这样它就具有父级的宽度,并且您可以使用text-align: center; 将其居中

标签: css positioning absolute


【解决方案1】:

要使元素在绝对位置居中,您可以这样做:

.myElement{
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);    
}

您可以对 top 和 translateY 执行相同操作以垂直居中。 示例:http://codepen.io/mbrillaud/pen/zxQQXy

编辑:如果你想水平和垂直居中,你需要使用 transform: translate(-50%, -50%) 因为,我不知道为什么,它们似乎相互覆盖。

【讨论】:

    猜你喜欢
    • 2015-05-29
    • 2013-04-04
    • 2015-12-30
    • 1970-01-01
    • 2014-07-19
    • 2014-01-25
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    相关资源
    最近更新 更多