css - 如何在没有 Javascript 的情况下居中包裹 float

标签 css

我有这个 html 配置:

<div id="Header">
    <div id="Stamp">
        <img alt="Header Stamp" src="images/About-Us.png" />
    </div>
    <div id="Events">
        <div></div>
    </div>
    <div class="clear"></div>
</div>

并应用了以下 CSS:

#Stamp, #Events{
    width:50%;
    float:left;
    min-width:400px;
}

#Stamp img{
    display:block;
    margin: 0 auto;
}

#Events > div{
    border:1px solid pink; /* Debug just to see where it is */
    height:300px;
    width:400px;
    margin: 25px auto;
}

所以有一个宽度为 100% 的标题 div,其中包含 2 个同样宽度为 50% 的子 div,它们都向左浮动。

里面的元素居中;

因此,当浏览器调整大小时,#stamp 和#events 显然会调整大小,因为它们是百分比,并且它们的内容居中。

它们都有最小宽度,所以当浏览器窗口太小时,它们会换行。

当他们包裹......他们;正如预期的那样;都 float 到父容器的左边

我的问题是:

当花车包裹起来时。有什么办法可以让他们居中吗?而不是向左浮动?

我正在寻找一种没有 javascript 的方法。

如果不可能,那么我想我不得不使用 javascript。

那么有没有办法测试float是否已经包裹了呢?

鼓励任何其他解决方案:)

谢谢

亚历克斯

最佳答案

您可以使用 display:inline-block 来实现此类功能。所以,你必须这样写:

#Stamp, #Events{
    width:50%;
    display:inline-block;
    *display:inline;/* for IE*/
    *zoom:1;/*for IE*/
    min-width:400px;
    text-align:left;
}
#Header{
 text-align:center
}

检查这个http://jsfiddle.net/7pSyB/

关于css - 如何在没有 Javascript 的情况下居中包裹 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7977548/

相关文章:

html - 防止窗口从某个点向下垂直调整大小

html - 将标题线(文本顶部)与不同大小的字体对齐

html - 如何水平居中具有两个空 div 之间的主要内容的 div

c# - 将表格置于图像之上

JavaScript 不适用于 HTML5

html - 为什么 height 100% 不能将 div 完全扩展到页面底部?

css - 如何选择每两个元素交替?

javascript - 使 CSS 菜单项和标题扩展到正确的宽度

javascript - jQuery leaveNotice 插件和 Internet Explorer

html - 如何将宽度拉伸(stretch)到可滚动区域的 100%?