100%宽度div和表单元素+填充?

时间:2010-07-08 18:31:55

标签: html css xhtml

我必须做些什么才能防止以下拉伸超过100%?它显然延伸到100%然后添加填充...谢谢!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <style type="text/css" media="screen">
        #box {
            width: 100%;
            padding: 20px;
            border: 1px solid #000;
        }
        #box input { 
            width: 100%;
            padding: 5px; 
        }
    </style>
</head>
<body>
    <div id="box">
        <form>
            <input type="text" value="" />
        </form>
    </div>
</body>
</html>

2 个答案:

答案 0 :(得分:5)

您对div的width:100%完全没必要。 Div是块级元素,可自动扩展到容器的100%。从div声明中删除width:100%,填充将包含在父容器中,没有滚动或扩展宽度。

不要使用负边距,这只是为了实现简单的事情而添加黑客。

你可以使用这个规则:你几乎不必把width:100%放在一个div上(除非它显示为内联或其他东西,否则我无法想到你为什么会这样做)因为as如上所述,块级元素总是扩展到容器的100%

编辑:建议在内联显示的div上设置宽度100%是愚蠢的,因为您无法在内联元素上设置尺寸

答案 1 :(得分:0)

创建新的form规则并将padding: 20px;声明移至其中。

#box {
    width: 100%;
    border: 1px solid #000;
}

form {
    padding: 20px;
}