html - 将一个 div 居中,部分在屏幕外

标签 html css

我希望将超出屏幕的大 div 居中。这涉及到有一个大约 1920px 宽的大 .container div,实际内容在 .container 中居中具有 .content 类的 div,宽度约为 1200px

我设法将一个置于另一个的中心,但是当 .container 的边界不在屏幕上时将其置于中心是行不通的。它将左边框放在浏览器的左边框上。

[ |   [content]   | ]

Legend:
| = screen edge
[ ] = div edge

.content 必须始终位于 .container 的中心,这样背景相对于前景的位置就不会改变。

<div class="container">
  <div class="content">
    <section></section>
  </div>
</div>

最佳答案

如果您知道 .container 的宽度,您可以这样做:

.container {
    position: relative;
    left: 50%;
    margin-left: -960px; /* Negative margin half of the element width */
}

如果您不知道 .container 的宽度,这里有一个(肮脏的)jQuery 替代方案。本质上是一样的结果,你只需要通过将宽度减半来计算负边距:

CSS:

.container {
    position: relative;
    left: 50%;
}

jQuery:

var elWidth = (($('.container').width())/2)*-1;

$('.container').css('margin-left', elWidth);

DEMO

关于html - 将一个 div 居中,部分在屏幕外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16450392/

相关文章:

jquery - 图库 div 与页脚重叠

html - iPhone 试图将所有内容压缩到一页上

javascript - 如何将由一条线链接的锯齿形 block 动画化为滚动上的一条直线

css - 使用 CSS 移动虚线边框

jquery - 根据内容不足自动扩展 div

javascript - Angularjs 在 url 更改时更改类名

javascript - jQuery 事件未触发

javascript - 列表项上的 onclick 事件

javascript - 文本字段错误地与 mobiscroll 一起显示

jquery - 向按钮添加触发器