如何水平居中可变宽度的浮动元素?

Wal*_*ssa 56 css positioning css-float centering variable-width

如何水平居中可变宽度的浮动元素?

编辑:我已经使用了包含div浮动元素并width为容器指定了一个(然后margin: 0 auto;用于容器).我只想知道是否可以在不使用包含元素的情况下完成,或者至少不必width为包含元素指定a .

Ley*_*eyu 89

假设浮动并将居中的元素是div一个id="content" ...

<body>
<div id="wrap">
   <div id="content">
   This will be centered
   </div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)

并应用以下CSS:

#wrap {
    float: left;
    position: relative;
    left: 50%;
}

#content {
    float: left;
    position: relative;
    left: -50%;
}
Run Code Online (Sandbox Code Playgroud)

这是一个很好的参考.


小智 67

.center {
  display: table;
  margin: auto;
}
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说比接受的答案好得多,试试两个! (4认同)

Fiz*_*han 5

您可以将fit-contentvalue 用于width.

#wrap {
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
  margin: auto;   
}
Run Code Online (Sandbox Code Playgroud)

注意:它仅适用于最新的浏览器。


Via*_*nga 5

当id =容器(外部div)和id =包含(内部div)时,这种方法效果更好。强烈建议使用的解决方案的问题是,在某些情况下,当浏览器尝试满足左侧条件时,它会导致水平滚动条:-50%属性。此解决方案 有很好的参考

        #container {
            text-align: center;
        }
        #contained {
            text-align: left;
            display: inline-block;
        }
Run Code Online (Sandbox Code Playgroud)


ran*_*dom 4

假设您有一个DIV想要水平居中的:

 <div id="foo">Lorem ipsum</div>
Run Code Online (Sandbox Code Playgroud)

在 CSS 中你可以这样设置它的样式:

#foo
{
  margin:0 auto; 
  width:30%;
}
Run Code Online (Sandbox Code Playgroud)

其中指出您的顶部和底部边距为零像素,并且在左侧或右侧,自动计算出需要多少像素才能保持均匀。

只要宽度存在且不是 100%,输入什么内容并不重要。否则你就不会以任何东西为中心。

但是,如果您将其向左或向右浮动,那么就没有办法了,因为这会将其从页面上的正常元素流中拉出来,并且自动边距设置将不起作用。