html - 为什么这个父元素没有完全包含它的子元素?

标签 html css

当我的浏览器窗口最大化时,此代码可以正常工作,子项包含在父项中,而父项跨越浏览器的宽度。但是,当浏览器窗口小于子元素宽度时,父元素无法包含它(在chrome 20和firefox 13中测试)

http://jsfiddle.net/x9duU/

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Example</title>

        <style type="text/css">
            #toolbar {
                background-color:#cccccc;
                padding:10px 0;
            }

            #nav {
                background-color:#00cccc;
                margin:0 auto;
                width:1000px;
            }
        </style>
    </head>
    <body>

        <div id="toolbar">
            <div id="nav">NAVIGATION</div>
        </div>

    </body>
</html>

我可以通过 float 父级并给它一个 100% 的最小值来解决这个问题,但这似乎是错误的。我该怎么做才能解决这个问题?

最佳答案

#toolbar 是一个 block 级元素,默认为 width:100% - 父元素的 100% 宽度。这是它遵守的规则,让 child 在宽度超过时溢出。您可以通过设置溢出属性来调整它。

但是,如果您希望父 div 考虑到它的子宽度,请设置一个最小宽度(等于子宽度)重要提示:您必须考虑可能的边距和填充(或更改框-模型到边框框)。

#toolbar {
   min-width:1000px;
}​

关于html - 为什么这个父元素没有完全包含它的子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11430110/

相关文章:

php - 使用 php 在四个投资组合项目后添加新的 col-12

javascript - 鼠标悬停在 DIV 上,更改图像边框颜色

html - div 显示在页脚后面

html - 垂直居中对齐时,div 中的文本会溢出到外部

html - 为什么 "\e034"出现在css中却没有创建对勾图标?

javascript - 基于下拉选择填充文本框 - JavaScript

javascript - 如何在模板中引用以编程方式生成的 $scope 变量?

html - 如何让 slider 悬停成一个圆圈并摆脱 slider 上方形成的线?

html - 更大元素上的 CSS 背景图像渐变和边框线

css - 绝对 :after pseudo-element not displaying under relative parent