CSS 浮动和填充

发布于 2024-10-22 02:59:25 字数 537 浏览 1 评论 0原文

我有一个非常普通的 WordPress 博客,有主要部分(静态宽度,向左浮动)和菜单部分(除了但在示例中使用了 div,也是静态宽度,向左浮动)。

关键是 CSS 不会将填充“算作”宽度”,因此我的“主要部分”中 100% 宽的 div 看起来没问题,但即使是 1 像素填充也会破坏整个布局。

奇怪的是,当我根本没有设置宽度时 - 一切正常,这对我来说很奇怪,因为我一直认为 div 总是倾向于占用尽可能多的区域(所以 width: 100% 与没有宽度不同即使在第二种情况下 div 也... 100% 是什么?:))。

我也有一些内联块元素,这更糟糕,因为它们永远不适合布局:

http://jsfiddle.net/ GCFjh/

我知道浮动和填充是如何工作的,但是有办法解决我的问题吗?我的意思是真正的修复,我希望我的 div 占据父主 div 的 100%,而不需要触摸菜单。我不是在寻找作弊(比如隐藏溢出)等,因为在现实世界中我的主 div 也有填充:)

I have a pretty normal Wordpress Blog, there's main section (static width, floated left) and menu section (aside but used div in example, also static width, floated left).

The point is CSS doesn't "count" paddings as "width", so 100% wide div in my "main section" looks ok, but even 1 pixel padding destroys the whole layout.

The strange thing is when I'm not setting width at all - everything works fine, what's strange to me, because I always thought divs always tend to take as much area as possible (so width: 100% is not the same as no width at all even if in the second case div takes... 100%? what the..? :)).

I have some inline-block elements also and that's even worse, because they never fit to layout:

http://jsfiddle.net/GCFjh/

I know how floats and paddings work, but is there a way of fixing my problem? And I mean real fix, I want my divs to take 100% of the parent-main div, without touching the menu. And I'm not looking for cheats (like overflow hidden) etc., because in real world my main div has paddings also :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱殇璃 2024-10-29 02:59:25

很简单,将其放在另一个 div 中,然后将 padding 应用于内部 div,宽度应用于外部:

<div id='outer' style='width:100%;float:left;'>
   <div id='inner' style='padding:10px;'>
   ...
   </div>
</div>

Its simple, put it inside another one and apply padding to the inner div, width to the outer:

<div id='outer' style='width:100%;float:left;'>
   <div id='inner' style='padding:10px;'>
   ...
   </div>
</div>
一江春梦 2024-10-29 02:59:25

试试这个:

<div style="width: 100%">
    <div class="container">
    Container with paddings
    </div>
</div>

基本上,将 div 标签用 padding 包裹在 div 内,宽度=100

Try this:

<div style="width: 100%">
    <div class="container">
    Container with paddings
    </div>
</div>

basically, wrap the div tag with padding inside your div with width=100

装纯掩盖桑 2024-10-29 02:59:25

到目前为止,最简单的方法是使用 box-sizing: border-box 属性

这适用于所有现代浏览器和 IE8+(不是 IE7!)。

如果您关心 IE7 支持,那么解决方案就会变得丑陋。

现场演示

#main div {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

By far the easiest way is to make use of the box-sizing: border-box property.

This works in all modern browsers and IE8+ (not IE7!).

If you care about IE7 support, the solutions become ugly.

Live Demo

#main div {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文