html - CSS:它的背景颜色的边距和填充从哪里来?

标签 html css

我在视频研讨会上看到过这种编码。它将有助于在 HTML 布局中查看不同的框。

header,
main,
nav,
article,
aside,
footer {
  background-color: rgba(0, 0, 0, 0.2);
  padding: 0.5em;
  margin-bottom: 0.5em;
}

* {
  box-sizing: border-box;
}

body {
  background-color: green;
  color: white;
}

HTML:

<!DOCTYPE html>
<html lang="">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Titel der Seite</title>

  <link rel="stylesheet" href="#">
  <link rel="stylesheet" href="#">
</head>

<body>

  <header>
    <a href="#">
        Logo – Beschreibung
    </a>

    <nav>
      Navigation
    </nav>
  </header>

  <main>
    <article>
      <h1>Hauptinhalt</h1>
      <p>Text</p>
    </article>

    <aside>
      Seitenleiste
    </aside>
  </main>

  <footer>
    <nav>
      Navigation
    </nav>

    <nav>
      Navigation
    </nav>
  </footer>

</body>

</html>

它有效。请看这里!

Screenshot

目前让我发疯的是什么:这个中间深绿色指定在哪里,盒子周围的边距和填充有什么?

在 CSS 中,您只有两个背景颜色定义。

最佳答案

它在此处的 css 中定义:

header,main,nav,article,aside,footer {
  background-color: rgba(0, 0, 0, 0.2);
  padding: 0.5em;
  margin-bottom: 0.5em;
}

例如,导航结构包含在标题中:

<header>
<a href="#">
    Logo – Beschreibung
</a>

<nav>
  Navigation
</nav>
</header>

您的页眉和导航继承自同一个 css 类,该类的背景颜色具有不透明度设置:background-color: rgba(0, 0, 0, 0.2);

Html 元素不会嵌入,它们会堆叠在一起。

当元素堆叠和继承时,它会为元素提供更深的阴影,因为它们相互堆叠时不透明。

不要将页面上的元素视为某种平面结构。一个抽象的例子是:

假设您的 table 上有一张纸,上面有一些文字。你还有两 block 染成黄色的玻璃,一 block 比另一 block 稍小。将一 block 黄色玻璃放在纸上,它会从白色变成淡黄色。将稍小的玻璃片放在该玻璃杯的顶部。现在,只要有两 block 玻璃,它就会变成更深的黄色。

这基本上就是您在这里使用 css 所做的。

body元素是定义为green: background-color: green的纸张;

标题是您要放置的下一层,它是半透明的(因为您告诉它不透明,rgba 背景颜色中的最后一个参数:rgba(0, 0, 0, 0.2);)所以无论标题覆盖在正文顶部的什么地方,您都会得到有色颜色。

现在您将另一个元素放置在页眉中。它有自己的边距,因此不会完全覆盖整个页眉。因此,您将导航项放在页眉内。根据 css,它还有一个不透明的背景颜色 background-color: rgba(0, 0, 0, 0.2) 所以它会导致该区域更暗。

关于html - CSS:它的背景颜色的边距和填充从哪里来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57994849/

相关文章:

html构建问题

html - MaterializeCSS - 更改选择选项字体系列

javascript - 不渲染砌体布局

Jquery 函数仅在点击 2 次后运行

HTML/CSS : float left not working correctly, div 显示在前一个 div 下方

jquery - 使用 jQuery 横向动画(滑动)一个 div

css - 哪些浏览器支持 "!important"?

html - 如何制作跨浏览器、W3C 有效、语义、非 javascript 圆 Angular ?

html - Bootstrap 行 - 删除元素会导致该行无法正确填充

html - 从模型 AngularJS 创建表