有人可以解释一下利润率下降吗?我觉得它们非常烦人

发布于 2024-11-01 09:34:33 字数 535 浏览 3 评论 0原文

我有一个包含链接的 div:

<div id="like_bar"><a href="#" onclick="return false;" id="like"></a></div>

使用一些 CSS:

#like_bar{
    width:140px;
    height:26px;
    background:url('bar.jpg');
}
#like{
    display:block;
    width:20px;
    height:20px;
    margin:3px 36px;
    background:url('mini_img.png');
}

链接放置在栏的顶部,链接上的边距应用于栏。
这很烦人。


Could someone explain these collapsing margins, how to avoid them and what they're used for.

I have a div that contains a link:

<div id="like_bar"><a href="#" onclick="return false;" id="like"></a></div>

With some CSS:

#like_bar{
    width:140px;
    height:26px;
    background:url('bar.jpg');
}
#like{
    display:block;
    width:20px;
    height:20px;
    margin:3px 36px;
    background:url('mini_img.png');
}

The link is placed at the top of the bar and the margins on the link are applied to the bar.
This is annoying.


Could someone explain these collapsing margins, how to avoid them and what they're used for.

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

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

发布评论

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

评论(2

若沐 2024-11-08 09:34:33

有很多方法可以“解决这个问题”。

也许对你来说最简单的是:

#like_bar {
    overflow: hidden
}

其他方法包括:

  • 添加一些填充
  • 添加一个边框(甚至边框:1px固体透明就足够了)
  • 浮动元素
  • position:absolute
  • 并且像上面的代码片段一样,将overflow设置为默认值visible<之外的值/代码>。

您还问:

它们的用途

一个常见的用例是

标记。

请参阅: http://jsfiddle.net/thirtydot/tPaTY/

如果没有边距折叠,某些事情会变得恼人的。

There are many ways to "fix this".

Perhaps the easiest for you would be this:

#like_bar {
    overflow: hidden
}

Other ways include:

  • Add some padding
  • Add a border (even border: 1px solid transparent is enough)
  • float the element
  • position: absolute
  • And, like in the snippet above, set overflow to a value other than the default of visible.

You also asked:

what they're used for

A common use case is the <p> tag.

See: http://jsfiddle.net/thirtydot/tPaTY/

Without margin collapsing, certain things would become annoying.

像你 2024-11-08 09:34:33

因为我很懒,所以我只想链接到一些资源:

我在这里的回答解释了为什么盒子模型是这样的,这与包含边距折叠有关。

w3c css 规范 定义了边距折叠的行为。考虑到盒模型,这是为了方便起见的预期行为。您无需担心内容块之间的双边距。听起来您实际上想要的是一些#like周围的填充,而不是边距。

将 CSS 视为一种以内容为中心的由内→外的样式方法,而不是一种编程的由外→内的方法。

Because I'm lazy I'm just going to link to a few resources:

My answer here explains why the box model is the way it is, which is related to margin-collapsing being included.

The w3c css spec defines the behavior of margin collapsing. It's an expected behavior for convenience given the box model. You don't need to worry about double margins between blocks of content with it. What it sounds like you actually want is some padding around #like, rather than margins.

Think of CSS as a content-centric inside→out approach to styling, rather than a programmed outside→in approach.

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