Html 使用浮动元素将div居中

Html 使用浮动元素将div居中,html,css,Html,Css,我有一个包含浮动链接的div。我将'width:auto'的属性和值应用于div。但是,由于某种原因,div占用了整行,而不仅仅是假定浮动元素的总宽度。我做错了什么 JSFIDDLE: CSS: 试试看: width: 960px; 人们通常使用960px作为网站的大小,尤其是在使用网格系统的photoshop中,因为它可以适应任何大小的显示器。任何其他号码也是可能的 由于左边距和右边距设置为自动,因此具有固定宽度的div内的元素将位于中间 使用宽度的示例:500px只是为了让你看到区别。试试

我有一个包含浮动链接的div。我将'width:auto'的属性和值应用于div。但是,由于某种原因,div占用了整行,而不仅仅是假定浮动元素的总宽度。我做错了什么

JSFIDDLE:

CSS:

试试看

width: 960px;
人们通常使用960px作为网站的大小,尤其是在使用网格系统的photoshop中,因为它可以适应任何大小的显示器。任何其他号码也是可能的

由于
左边距
右边距
设置为
自动
,因此具有
固定宽度的div内的元素将位于中间

使用
宽度的示例:500px只是为了让你看到区别。

试试看:

width: 960px;
人们通常使用960px作为网站的大小,尤其是在使用网格系统的photoshop中,因为它可以适应任何大小的显示器。任何其他号码也是可能的

由于
左边距
右边距
设置为
自动
,因此具有
固定宽度的div内的元素将位于中间


使用
宽度的示例:500px只是为了显示差异。

这是的默认行为-除非您指定一个宽度,否则它们将占据100%的宽度,而不管其子体的显示值如何。在不指定宽度的情况下,也不能将具有自动左/右边距的图元居中

#用户链接提供明确的宽度


这是的默认行为-除非指定宽度,否则它们将占据100%的宽度,而不管其子体的显示值如何。在不指定宽度的情况下,也不能将具有自动左/右边距的图元居中

#用户链接提供明确的宽度


仅仅因为您将左/右页边距设置为
auto
,并不意味着您的div将崩溃

浮动的子对象也不会导致它在水平轴上崩溃

如果试图将链接居中,可以将链接设置为
display:inline block
,移除浮动,然后应用
文本对齐:居中
#用户链接

像这样:

#user-links {
    margin-right: auto;
    margin-left: auto;
    height: auto;
    width: auto;
    padding: 0px 0px 0px 0px;
    overflow: auto;
    text-align: center;
}
.user-link {
    display: inline-block;
    margin: 0px 0px 0px 0px;
    padding: 0px 10px 0px 10px;
}

工作示例:

仅仅因为您将左/右边距设置为
auto
,并不意味着您的div将崩溃

浮动的子对象也不会导致它在水平轴上崩溃

如果试图将链接居中,可以将链接设置为
display:inline block
,移除浮动,然后应用
文本对齐:居中
#用户链接

像这样:

#user-links {
    margin-right: auto;
    margin-left: auto;
    height: auto;
    width: auto;
    padding: 0px 0px 0px 0px;
    overflow: auto;
    text-align: center;
}
.user-link {
    display: inline-block;
    margin: 0px 0px 0px 0px;
    padding: 0px 10px 0px 10px;
}
工作示例:

默认情况下,
是一个块级元素,除非另有规定,否则它将跨越父容器的宽度。在这种情况下,width:auto假定父容器的宽度

如果您希望
#user links
元素仅跨越内容的宽度并位于其容器的中心,则需要将
display:table
指定给CSS中的
#user links
声明:

#user-links {
    display: table;
    margin: 0 auto;
}
更新小提琴:

以下是支持
display:table

的浏览器列表
默认情况下是一个块级元素,将跨越父容器的宽度,除非另有规定。在这种情况下,width:auto采用父容器的宽度

如果您希望
#user links
元素仅跨越内容的宽度并位于其容器的中心,则需要将
display:table
指定给CSS中的
#user links
声明:

#user-links {
    display: table;
    margin: 0 auto;
}
更新小提琴:


以下是支持
display:table

的浏览器列表,您为什么使用div而不是无序列表?对于无序列表,您可以使用display:inline block然后使用text align:center to centers LI在uli中使用div而不是无序列表,原因是什么?对于无序列表,您可以使用display:inline块,然后使用text align:center-to-centers LI的内部,这里没有“安全”大小。新设备总是以不同的分辨率出现,你不能期望它们都有960像素的可用空间。没有“安全”大小。新设备总是以不同的分辨率出现,你不能期望它们都有960像素的可用性。