html - 设置包含 div 的边框会显着改变其大小

标签 html css

以这个 HTML 为例。 如果你从黄色框中取出“border: 1px solid”,它的大小会发生很大变化(它会大大缩小)。

...为什么?

更新:如果我将 p 更改为内联 block ,大小将保持不变。所以,p 标签似乎是问题所在……但为什么外部 div 中的边框会使内联标签的大小发生如此显着的变化?

<body style="height:100%">

  <div style="background-color: red; border-style:solid;">
    <div style="background-color: yellow; border:1px solid;">
      <p>Inside</p>
    </div>
    <p>Something</p>
  </div>


  <div style="background-color: blue; border-style:solid;">
    <p>Something else </p>
  </div>

</body>

演示:http://jsfiddle.net/C2D49/

最佳答案

给你:-

Margin Collapsing

相邻的 sibling

The margins of adjacent siblings are collapsed (except when the later sibling needs to be cleared past floats). For example: <p>The bottom margin of this paragraph is collapsed...</p> <p>...with the top margin of this paragraph.<p>

parent 和第一个/最后一个 child

If there is no border, padding, inline content, or clearance to separate the margin-top of a block with the margin-top of its first child block, or no border, padding, inline content, height, min-height, or max-height to separate the margin-bottom of a block with the margin-bottom of its last child, then those margins collapse. The collapsed margin ends up outside the parent.

空 block

If there is no border, padding, inline content, height, or min-height to separate a block's margin-top from its margin-bottom, then its top and bottom margins collapse.

看看这个 fiddle - 它现在在添加几个 span 后不会崩溃。 http://jsfiddle.net/aPaBy/

<div style="background-color: red; border-style:solid;">
   <div id="test" class="border" style="background-color: yellow;">
     <span>hi</span>
      <p>Inside <button>Test</button></p>
     <span>hi</span>
    </div>
    <p>Something</p>
  </div>

关于html - 设置包含 div 的边框会显着改变其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15802193/

相关文章:

javascript - 仅在移动 View 中折叠列,仅在桌面 View 中折叠行

html - 如何让 UL 围绕其内容仅此而已?

javascript - 使用链接交换/更改 div 内容

html - 如何在CSS中编写下拉菜单?

css - 还有另一种方法可以用sass写这个吗?

javascript - 从具有不同 id 的 div 中删除指定的主元素

javascript - 如何在打印时对齐文本

html - Swift:从存储在 Main Bundle 中的网页访问 Documents Dictionary 中的文件

javascript - 带有图像工具提示的幻灯片库,图像突破无限宽度 block

html - 如何使用外部 CSS 设置 SVG 样式?