如何使用CSS设置margin: 0 auto 0 auto减去几个像素?

12

我想要做这个:

margin: 0 auto 0 auto;

我希望将div浮动到中心,但我想将该div向左移动100像素,因此

margin: 0 auto 0 [auto minus 100px];

它距离中心向左100像素。

如何使用CSS实现这个效果?


注意:

这个div被覆盖在另一个div上。我不能把它放在另一个更大的div里面。

<style>
#one {
 width: 100px;
 margin: ?
}
</style>
<div id="one">
sdgdgffdsg
</div>

更新:问题已解决

在评论中,GGG给出了解决方案。

position: absolute;
left: -100px;
margin: 0 auto;

1
你可以使用 position:relative; left:-100px; - Dagg Nabbit
1
这取决于你的标记,但 border-right:100px transparent 可能有效。 - user123444555621
@Pumbaa80 很好,我正在考虑在右侧添加一些空间来“重新平衡”,但是想不出如何实现。 - Dagg Nabbit
@Pumbaa80:不行,那样做不了。 - user1356682
1
将其放在http://jsfiddle.net/中。 - Scriptor
@GGG 如果你回答了,我会选择你的回答作为最佳答案。 - user1356682
4个回答

23

使用margin: 0 auto;可以使元素居中
并且通过position: relative; left: -100px;将元素向左移动

position: relative;
margin: 0 auto;
left: -100px;

4

试试这个:

position:relative; left:-100px;

仅翻译文本内容:选择其他方法是因为它明确指出要添加0 auto。 - user1356682
好的,但这是你最初的问题的一部分,我认为不需要澄清。 - Dagg Nabbit

-1
你不能直接设置一个元素的 margin 为固定值,而是需要将其包裹在另一个具有固定 margin 的元素中。
<div id="foo">
  <div id="bar">Hi!</div>
</div>

#foo {
  margin: 0 100px 0 0; /* left margin only is 100px */
}

#bar {
  margin: 0 auto;
}

有点晚了,但是在你的标记中,只给出了右边的边距,没有左边的。顺序是:上、右、下、左。 - Pieter VDE

-1
你的内部div有固定宽度吗?如果是的话,你可以这样做:
HTML
<div class="outside">
    <div class="inside">
    </div>
</div>

CSS

.inside {
    position: absolute;
    width: 100px;
    height: 100px;
    left: 50%;
    top: 50%;
    margin: -50px 0 0 -150px;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接