Html 对「;CSS以无序列表为中心“;

Html 对「;CSS以无序列表为中心“;,html,css,Html,Css,在这个问题上,我不想问“如何”将一个无序的列表水平居中,因为互联网上已经有大约一万五千个这样的资源 相反,我想问它的“为什么”部分 更确切地说,我们为什么要这样做 与此相反: ul { position:relative; left:25%; } 两人似乎都在耍花招。 有什么想法吗?我没有使用这些解决方案。看看这个 这样写: ul { display:inline-block; *display:inline;/*For IE7*/ *zoom:1;/*For I

在这个问题上,我不想问“如何”将一个无序的列表水平居中,因为互联网上已经有大约一万五千个这样的资源

相反,我想问它的“为什么”部分

更确切地说,我们为什么要这样做

与此相反:

ul {
   position:relative;
   left:25%;
}
两人似乎都在耍花招。
有什么想法吗?

我没有使用这些解决方案。看看这个

这样写:

ul {
   display:inline-block;
   *display:inline;/*For IE7*/
   *zoom:1;/*For IE7*/
}
li{
    float:left;
    text-align:left;
}
.anyParent{
    text-align:center;
}

原因是,因为第一种方法在每种情况下都以
ul
为中心-独立于它有多少子
li

第二种解决方案将
ul
25%放置在右侧,这将在非常特殊的情况下起作用,此时
li
的宽度正好占据总宽度的50%,但在任何其他情况下会断裂

在父对象上使用
,在子对象上使用
是一种非常常见的做法,可以使用动态维度(宽度)将子对象居中,这是处理动态内容时的情况

在某些情况下,
文本对齐:居中也可以工作,但在必须使用绝对定位时失败


参见。

你能在中创建一个例子吗?你有固定的宽度还是动态的?它们是动态的,有任意数量的元素……好的,解决方案实际上没有回答问题的“为什么”部分。@Christoph你能描述一下不起作用的情况吗。所以,了解新事物是很好的。这个方法失败的最简单的例子是绝对定位元素。你能为这个问题创建一个例子吗?是的。。。过了一会儿我才意识到。。。25%的技巧只在特殊情况下有效。
ul {
   display:inline-block;
   *display:inline;/*For IE7*/
   *zoom:1;/*For IE7*/
}
li{
    float:left;
    text-align:left;
}
.anyParent{
    text-align:center;
}