【问题标题】:How to do margin: 0 auto 0 auto minus a few pixels with CSS?如何用CSS做margin:0 auto 0 auto减去几个像素?
【发布时间】:2012-05-06 15:41:44
【问题描述】:

我想这样做:

margin: 0 auto 0 auto;

让它浮动到中心,但我想将 div 向左移动 100px

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

所以它在中心左侧 100px。

我如何用 CSS 做到这一点?


注意:

这个 div 覆盖在另一个 div 之上。我不能将它放在另一个更大的 div 中。

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

更新:已解决

GGG在评论里给了我解决办法。

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

【问题讨论】:

  • 你可以做position:relative; left:-100px;
  • 这取决于您的标记,但border-right:100px transparent 可能有效。
  • @Pumbaa80 很好,我想在右边添加一些空间来“重新平衡”它,但不知道该怎么做。
  • @Pumbaa80 :不,那行不通。
  • 放入jsfiddle.net

标签: css margin


【解决方案1】:

居中使用margin: 0 auto;
并使用position: relative; left: -100px;向左移动

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

【讨论】:

    【解决方案2】:

    试试这个:

    position:relative; left:-100px;
    

    【讨论】:

    • 选择另一个只是因为它明确添加了 0 auto
    • 嘿,好吧,但那是你原始问题的一部分,我认为不需要澄清。
    【解决方案3】:

    你没有。你必须换成另一个具有固定边距的元素。

    <div id="foo">
      <div id="bar">Hi!</div>
    </div>
    
    #foo {
      margin: 0 100px 0 0; /* left margin only is 100px */
    }
    
    #bar {
      margin: 0 auto;
    }
    

    【讨论】:

    • 聚会有点晚了,但在您的标记中,只给出了 right 边距,not 左边距。顺序为:右上左下。
    【解决方案4】:

    您的内部 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-11
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 2015-10-24
      • 2011-06-24
      • 1970-01-01
      • 2015-07-09
      相关资源
      最近更新 更多