html - CSS - 当 Margin 无效时要查找的内容

标签 html css

<分区>

我实际上是 HTML 和 CSS 的菜鸟,我不会一直生活在这个空间中以保持和进步,所以请随意把我当作白痴。

当我设计页面样式时,页边距常常不起作用。例如,在以下代码段中:

<h1>Title</h1>
<p>I introduce the section and talk about the stuff in this area.</p>
<div class="preWrapper">
  <pre><code>I am some XML</code></pre>
</div>
<div class="controlsWrapper">
  <a href="...">Download XML</a>
  < ... form controls, input etc. ... >
<div>

如果我尝试在下载 XML anchor 上设置上边距,它在任何尺寸下都没有效果。为什么会这样?

这里是否有关于这一切运作方式的一般性教训,我要么一直忘记,要么还没有完全掌握。

我已经从头到尾阅读了大型 CSS 书籍 - 我确实尝试过 - 我已经成为 netmag 订阅者大约 6 年了。我知道有很多怪癖和陷阱,只是我记不住它们。

谢谢。

最佳答案

我认为在这些情况下,您可能主要遇到 block 级元素和内联元素之间的差异。

在 HTML 中, block 级元素用于较大的内容部分,并且通常包含其他元素。您可以使用它们来布置页面上的所有内容。 block 级元素是,例如,sectiondivheader

内联元素是包含链接或小块文本的较小标签,如 aspan。虽然 block 级元素会自动将它们自己放在布局中的新行上,但根据定义,内联元素将准确保留在标记中的位置。

由于这种区别, block 级元素通常可以被认为是在一个不可见的、明确定义的 block 中,该 block 通常跨越页面的宽度。使用这样的 block ,您可以轻松想象填充和边距,因为它的边缘定义明确。然而,内联元素很棘手,它们不会在任何特定的 block 或矩形内呈现它们自己——它们的尺寸仅根据它们内部的文本定义。这就是应用边距更难的原因。

上面的解决方法是在 CSS 中为您的 a 提供 display: block 样式。然后它将默认占据页面的整个宽度,其高度将与文本大小所需的一样大。可以轻松添加边距和填充。

如果您不想让 a 太宽,而是将其紧贴在其他元素旁边,您可以将 display 属性更改为 inline-block——这可以被认为是 block 元素和内联元素之间的一种中间方式。它只会和里面的文本一样宽,但它会在它周围形成一个假想的矩形,然后可以通过边距和填充使它变大。

这里有一些阅读:The CSS box model

关于html - CSS - 当 Margin 无效时要查找的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17991174/

相关文章:

javascript - HTML5 客户端中的 WCF 回调

html - 如何将文本限制为 div 的宽度?

html - 带图像的 50% 分割布局

asp.net - Header Div位置根据Content Div编辑

javascript - Datepicker 范围不允许退房日期为同一天

html - Windows 上的 Chrome 中的字体外观

javascript - 从 ajax 内容动态创建新选项卡

HTML5 代码元素 - 语言类

javascript - 如何根据数据库 [ ionic ] 中的值打开/关闭切换按钮

javascript - 当屏幕尺寸发生变化时,向下滚动过程跟踪线无法正常工作,尤其是对于移动设备