As shown in the figure below, when I select the first a tag, the browser will include the following a tag, and the margin of the P element in the A tag is also collapsed with the .box2.How to explain this ? enter image description here

   .box1 {
        width: 100px;
        height: 100px;
        background-color: antiquewhite;
      }
      p {
        margin-top: 10px;
      }
   <div class="box1"></div>
    <div class="box2">
      <a href="#">
        <p>abc</p>
      </a>
      <a href="#">abc</a>
    </div>

推荐答案

在内联元素(链接)内有一个块元素(第p个),然后紧接着是一个内联元素(第二个链接).

这里有一个更好的插图,有一些填充和轮廓.

p {
  margin-top: 10px;
}


a:first-child {
  padding: 0 5px;
  outline: 1px solid red;
}
<div class="box2">
  <a href="#">
    <p>abc</p>
  </a>
  <a href="#">abc</a>
</div>

在内联元素中使用块元素将激活一个复杂的机制,在该机制中,您将在块元素之前有一个内联内容,在块元素之后有另一个内联内容(由轮廓突出显示).由于您还有a个也是内联元素,因此它将与第二个内联内容在同一行上.

DevTool将向您显示同时包含行内内容(红色)和块内容(p)的矩形区域以及下一个a,因为它恰好在同一行.

enter image description here


当内联框包含流内块级框时,内联框(及其在同一行框内的内联祖先)围绕块级框(以及任何连续或仅由可折叠空格和/或流外元素分隔的块级同级项)被拆分,将内联框拆分为两个框(即使两边都是空的),块级框的两边各一个.分隔符之前和之后的行框包含在匿名块框中,块级框成为这些匿名框的同级框.当这样的内联框受相对定位影响时,产生的任何平移也会影响内联框中包含的块级框.ref

Html相关问答推荐

为什么在Vuettify 3中使用Flex时会忽略宽度?

srcset和大小总是下载最大的

只有一行上有溢出的CSS网格

为什么我的搜索栏会出现在WONG位置?

创建带有弯曲边框的水平时间线

在单独的容器之间堆叠上下文

响应网格,响应调整大小以适应父div,保留父div S自己的响应高度

SVG动画只有在打开S开发工具的浏览器时才开始播放

不呈现孙子元素,使用R htmlTools::Taglist为分页的pdf生成HTML

当div位于flexbox中时,如何使div的宽度与高度相同

图像如何能达到 HTML 表格的全宽?

如何从 div 内的图像中删除填充而不从其他所有内容中删除填充?

屏幕缩小时背景图像裁剪高度

如何使 Shiny 中的 selectInput Select 扩展到井面板之外或以其他方式使它们更容易被用户看到?

如何让 backdrop-filter: blur() 效果在 iOS 上运行?

在 SQL 中合并 HTML 表中的单元格

悬停一个 div 时更改所有其他 div 上的字体 colored颜色

Header 或 P 标记中的填充不能与 em 单元一起正常工作

将固定/绝对伪元素放置在相对 div(具有滚动条)内,始终位于底部

为什么我的动画会向 Moz Firefox 中的微调器添加人工制品?