html - 如何在 CSS 的内容中留出 12 像素的空白并从内容中删除 12 像素?

标签 html css

我正在尝试制作一个页面,该页面的左边距为 12 像素。我想将背景灰色设置为 12px(不管这个)。

在左侧设置 12px 左边距后,我想将所有其他屏幕尺寸分配给容器。

参见 jsfiddle http://jsfiddle.net/7vzSQ/

我想要的是:假设将来如果我给我的页面一个背景并且左边的 12px 是白色边距那么有没有人知道一个技巧,这样 .container 将获得所有屏幕尺寸(除了我通过 margin-left 设置的 12px 边距)

<div class="container">

    <header>
        <hgroup>
            <div class="logo">
                test
            </div>
        </hgroup>
    </header>
    <div class="content">
        <div class="logo">

        </div>
    </div>
    <footer>

    </footer>
</div>

有人检查 http://jsfiddle.net/7vzSQ/7/embedded/result/我已经更新了三个背景,但不知道为什么它没有出现在页面中。

我这样做的主要目的是我可以将所有宽度 (100% -12px) 赋予 .container。如果我付出 100%,那是行不通的。我试过 css3 的计算功能没有用。我尝试 calc(100%+ 12px) 工作但 calc(100% - 12px) 不工作(带负号)。

有没有人猜到它会起作用。

最佳答案

如果你想超酷,你可以使用calc :

#container{
  margin-left:12px;
  width: 100%;              /* fallback for non-supporters, produces scrollbar */
  width:    -moz-calc(100% -12px); 
  width: -webkit-calc(100% -12px);
  width:         calc(100% -12px); 
}

然而,这会取消所有版本 8 之前的 IE 用户和那些可怜的 Opera 用户的资格:-D(请参阅 MDN-Compat 列表或 caniuse )。

如果你想非常老派,你可以使用绝对定位(遇到溢出问题)

#container{
    position:absolute;
    left:12px;right:0;
}

还有一点老派,你使用包装元素:

#outerwrapper{
     padding-left:12px;
}
#container{
     width:100%;
}

带有标记:

<div id="outerwrapper">
   <div id="container">
   </div>
</div>

关于html - 如何在 CSS 的内容中留出 12 像素的空白并从内容中删除 12 像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14278741/

相关文章:

html - FF 中的按钮元素未在子元素上应用悬停背景颜色

html - 如何将图像(下面有文字)放在一行中?

来自一个 div 的 CSS 链接干扰了另一个?

javascript - 鼠标悬停时居中图像

html - CSS 字体系列仅适用于同一类中的某些元素

javascript - 为什么当我关闭导航时我的转换不起作用?

javascript - 根据文本高度为每个 div 实例提供带有 jquery 的特定 css

Python Django 电子邮件表单示例

javascript - 为什么 <object> 的类型是一个函数?

html - 水平和垂直居中 div 元素