【问题标题】:(Large) div horizontally centered inside smaller div. Pure CSS solution possible?(大)div 在较小的 div 内水平居中。纯 CSS 解决方案可能吗?
【发布时间】:2013-11-12 10:17:53
【问题描述】:

我想让“Shadow” div 在“Wrapper”内水平居中。 由于“Wrapper”的具体宽度由于 width: 100% 而未知,所以也不知道是否“影子” div 大于或小于其容器。

这甚至可能吗?我想不出任何解决办法。自动边距不起作用。 请仅使用 CSS 和 HTML

演示代码:

HTML:

<div class="Wrapper">
  <div class="Shadow">some content</div>
  <div class="Content">some content</div>
</div>

CSS:

.Wrapper{ width: 100%; height: 100%; position: relative; background: url(path) top center no-repeat; max-width: 1520px; max-height: 1050px; overflow: hidden; }
.Shadow{ width: 1520px; height: 1050px; }
.Content{ position:absolute; top: 20px; left: 20px; width: 800px; height: 500px; }

【问题讨论】:

  • 试试边距:自动;将此标签添加到影子类,
  • 如前所述,这不起作用。
  • 删除了我的答案。自 Martin Turjak 以来,他的答案看起来更可行。

标签: css html css-position centering


【解决方案1】:

你可以试试这样的:DEMO

您使用margin-left: 50% 将子级移动到包装器的中心,然后使用left 将子级向左移动一半宽度。

我的示例中的相关 CSS 行:

.wrapper {
    position:relative;
    /* other properties */
}
.shadow {
    position: absolute;
    margin-left: 50%;
    width: 400px;
    left: -200px;
    /* other properties */
}

或者:

您可以使用transform:translate(-760px); 代替left - 那么您不需要绝对定位阴影元素,请参阅DEMO

【讨论】:

  • 谢谢!尽管原始文件中没有指定,但这是否可以用于垂直居中?垂直居中的行为似乎有所不同。
  • 正在谈论原始解决方案
  • @martin 或者,如果只关注现代浏览器的支持,甚至可以使用transform:translateX(-50%); :D
  • 垂直对齐通常有点棘手......但总有选项jsfiddle.net/kggD2/2
  • 像魅力一样工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 2012-07-27
  • 2011-03-10
  • 1970-01-01
  • 2018-01-01
  • 2012-06-14
相关资源
最近更新 更多