【问题标题】:CSS: margin-right and absolute positioningCSS:margin-right 和绝对定位
【发布时间】:2013-05-09 13:54:55
【问题描述】:

我在一个页面中有一个 div。 现在,当我将它的位置指定为绝对并给它的 margin-left == 20px:

我明白这一点。 div 元素应该向右移动 20 px,以便在 div 和 body 之间存在 0f 20px 的边距。

现在,当我从右侧提供 20px 的边距时,不应该整个 div 向右侧移动,与 body 有 20px 的间隙。

http://jsfiddle.net/2Jfpj/

.container{
position: absolute;
background-color:gray;
margin-right: 50px; 
height: 200px;
}

我知道我可以定位 div 并给出左右的值。但真正的问题是左边距有效,但右边距无效!为什么会这样? 感谢您的帮助!

【问题讨论】:

  • 为什么不直接使用leftright 而不是margin?
  • @Pete 但是为什么当 margin-left 工作时 margin-right 在这里不起作用?
  • 看看接受的答案:stackoverflow.com/questions/9998260/…
  • 我认为您认为元素上的margin-left 的空间实际上在body 元素上。 this fiddle 会为你删除吗?

标签: css positioning css-position


【解决方案1】:

你要找的不是margin-right,只是right

请看我的小提琴更新: JSFIDDLE right

如果您希望它位于屏幕底部,请添加bottom

试试这个更新的小提琴:JSFIDDLE bottom

Margin-right 不起作用,因为它将margin 添加到 div 区域本身,而right 是一个位置值。

如果您查看box model,它会显示添加边距的位置。所以 Margin 真的是用来给盒子周围的其他物体留出空间的。

【讨论】:

  • 我明白了。感谢您的帮助
  • @NavneetSaini margin-right 将元素向右移动 20pxs 远离它,边距只是将元素推开,如果你希望它在右侧同时绝对你必须使用对,否则浮动:对;
【解决方案2】:

margin-left 有效,因为默认情况下该框与左侧对齐:;财产。设置正确:;属性比你可以设置一个右边距。但到目前为止,我只能在绝对定位的元素上设置左边距或右边距。因此,您可以只使用左或右,不需要边距。如果您知道如何同时设置左右边距,请发布如何!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多