Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html CSS左边空白处有一个简单的问题:在我的情况下是自动的_Html_Css - Fatal编程技术网

Html CSS左边空白处有一个简单的问题:在我的情况下是自动的

Html CSS左边空白处有一个简单的问题:在我的情况下是自动的,html,css,Html,Css,我有一个非常简单的嵌套布局: <div id="main"> <div id="options"> <a href="#">option 1</a> | <a href="#">option 2</a> </div> </div> 你可以在上面运行它。一切正常但是有一点让我困惑:那就是,为什么CSS代码: #options{ margin-left

我有一个非常简单的嵌套
布局:

<div id="main">
    <div id="options">
        <a href="#">option 1</a> |
        <a href="#">option 2</a>
    </div>
</div>
你可以在上面运行它。一切正常但是有一点让我困惑:那就是,为什么CSS代码:

#options{
  margin-left:auto;
  width: 8em;
}

使选项位于
右侧?任何人都可以向我解释原因吗?

原因是您在一侧设置了自动边距,这意味着它只会填充给定的空间。我认为这与应用浮动权限的结果是相同的,但对文档流没有任何影响。它基本上是通过删除包含元素宽度之后的剩余宽度来计算自动边距


如果你想让它居中,你需要在两边都添加一个自动边距,用剩余的宽度均匀地填充父对象的两侧。

为什么要将
边距放在左边:自动选项中的code>
DIV。由于
左边距的原因,选项DIV向右移动。它已经左对齐了。如果您想将
选项
div放在中间,只需将
边距:0自动

谢谢,
阿伦·克里希南(Arun Krishnan)

你的意思是,如果我不指定maring right,而只指定maring left,它将只填充左侧的空间,除非我指定,否则右侧将没有任何空间?是的,没错。如果给元素一个宽度,那么边距将是父元素宽度减去元素宽度(我相信右边距也是如此),我从来没有说过我希望option div位于中间。。。当我读到你的答复时,我感到很奇怪。就像我在问一件事,而你在谈论另一件事。
#options{
  margin-left:auto;
  width: 8em;
}