html - 具有固定填充/边距的 CSS 液体布局

标签 html css fluid

我想知道是否有人知道将像素宽度填充或边距合并到流动列设计中的方法,而不需要额外的 html 标记。

为了进一步说明,请考虑像这样的简单 html/css 布局:

<style>
    .cont{width:500px;height:200px;border:1px solid black;}
    .col{float:left;}
    #foo{background-color:blue;width:10%;}
    #bar{background-color:yellow;width:30%;}
    #baz{background-color:red;width:60%;}
</style>
<div class="cont">
    <div class="col" id="foo">Foo</div>
    <div class="col" id="bar">Bar</div>
    <div class="col" id="baz">Baz</div>
</div>

这显示正确(忽略可以处理的杂项 css 显示错误)。但是,一旦您向 col 添加了一个 10px 的内边距。类,花车不再内联显示。如果你想给 col 添加一个 3px 的边框也是一样的。类(class)。我见过 css 技术,人们会使用负边距来反转从盒模型创建的添加像素,但它仍然不会减少 <div>。宽度。所以基本上,我想要的是一种技术,可以让我保持 10% 的宽度,但是这 10% 的 10px 是填充(或边距或其他)。

最佳答案

没有“额外的 html 标记”就没有 pre-CSS3 解决方案。 width 不包括填充和边框,这只是规范的性质。如果你想避免负边距,那么只需在每个 div 中添加一个额外的包装器即可。 CSS:

.padder {border: 3px solid green; padding: 10px;}

html:

<div class="cont">
    <div class="col" id="foo"><div class="padder">Foo</div></div>
    <div class="col" id="bar"><div class="padder">Bar</div></div>
    <div class="col" id="baz"><div class="padder">Baz</div></div>
</div>

对于 CSS3 兼容性,请参阅使用 box-sizing 的 bobince 的答案。

关于html - 具有固定填充/边距的 CSS 液体布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239286/

相关文章:

javascript - 在新插件中使用 attr() 函数?

foreign-keys - 使用 Entity Framework 7 的流体 API 创建 optional 外键

php - 如何将公共(public)资源包含到 typo3 extbase 扩展中

html - 获取背景图像以在特定点停止平铺

html - 网站右侧不需要的空间

javascript - jQuery fadeToggle 导致表格边框出现

html - 如何让 anchor 标签在 DIV 中居中?

css - 在 div 末尾添加一行时遇到问题,而且 div 宽度不是 100%

html - Center Child 动态 div

javascript - 单击时将 GET 参数注入(inject)按钮的目标 URL