如何在CSS中的一个元素中处理基于百分比和像素的大小?

时间:2009-06-20 22:03:17

标签: css xhtml

具体来说,我指的是你需要在DIV上有100%的总宽度,但是10像素填充和1像素边框的情况。 (并且不要依赖浏览器自动将其设置为该宽度 - 例如,它会向左浮动。)

有没有简单的方法可以在不使用JavaScript的情况下完成此操作?

4 个答案:

答案 0 :(得分:2)

不,没有办法在一个适用于当前主流浏览器的元素上设置它。

您可以使用2个嵌套div。在外侧100%上设置div宽度,并在内部div上设置填充和边框。

答案 1 :(得分:2)

如果您使用box-sizing: border-box,则可以设置width: 100%; border: 1px solid black; padding: 10px;,宽度,边框,边距和填充的总和将是为宽度指定的内容。 Source

编辑:没错,浏览器支持有点受限。 FF 3.5和Safari 4支持它,不确定IE8或Chrome。

答案 2 :(得分:0)

只有CSS 3才能实现。

答案 3 :(得分:0)

以下解决方案如何?

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">   
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">     
    <head>      
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />   
        <title>Content with Menu</title>         
    <style type="text/css">
      .content .outer{
        width:100%;
        border:1px solid black;
        background-color:green;
      }
      .content .inner{
        margin-left:10px;
        margin-right:10px;
        background-color:red;
      }
    </style>          
    </head>
    <body>    
    <div class="content">
      <div class="outer">
        <div class="inner">  
          <p>Hi!</p>
        </div>
      </div>
    </div>
    </body>
</html> 

<强>更新 好的,只用一个元素就无法实现你所说的。