css - 用背景颜色填充标题

标签 css html margin padding background-color

我目前在标题的同一行上有一个标题 1 和 Logo ,现在我想为标题设置一个背景色。理想情况下,我希望它也下降到导航栏下方。 我遇到的问题是颜色没有像我想象的那样填充页面的顶部。它只覆盖标题,它还覆盖同一行的 Logo 。

如何阻止颜色覆盖图像以及如何使颜色从页面顶部扩散到导航栏下方。

HTML:

.header img {
  float: left;
  background: #555;
}

.header h1 {
  font-family: "Lucida Sans Typewriter",Georgia,Arial;
  position: relative;
  top: 18px;
  left: 10px;
  padding-left: 40%;
  background-color:#D3D3D3;
}

.nav{
  width: 95%;
  margin: auto;
}

.nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
  text-align: center;
}

.nav li {
  font-family: "Lucida Sans Typewriter",Georgia,Arial;
  font-size: 16px;
  display: inline;
  height: 40px;
  width: 19.925%;
  float: left;
}

.nav li a {
  display: block;
  color: white;
  text-decoration: none;
}

.nav li a:hover:not(.active) {
  background-color: #111;
}

.active {
  background-color: #4CAF50;
}

.nav li:last-child{
border-right: none;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<title>The Clay Oven Pizzeria</title>
</head>
  <header>
    <div class="header">
      <img src="images/pizzalogo.jpg" alt="logo"/>
      <h1> The Clay Oven Pizzeria</h1>
    </div>
    <br><br>
    <div class="nav">
      <ul>
        <li><a class="active" href="#index"> Home </li>
        <li><a href="#menu">Menu</li>
        <li><a href="#about">About</li>
        <li><a href="#about">Contact Us</li>
        <li><a href="#signup">Sign Up</li>
      </ul>
    </div>
  </header>
<body>
</body>
</html>

编辑:这就是我所说的覆盖 Logo 的背景颜色: enter image description here

最佳答案

我将 HTML header 标记交换到正文中。您的 body 标签将容纳您所有的 html 减去具有您的标题的 head 标签。没什么大不了的,因为它呈现得很好,只是一个最佳实践。我还更改了 header img 的 css,使其具有一个 z-index,它将图像放在 h1 标签的顶部,而你的 h1 标签的 z-index 为 -100,始终落在后面。

希望这对您有所帮助。

.header img {
  float: left;
  background: #555;
  z-index: 100; /* added */
  width: 100px; /* added */
}

.header h1 {
  z-index: -1; /* added */
  font-family: "Lucida Sans Typewriter",Georgia,Arial;
  position: relative;
  top: 18px;
  left: 10px;
  padding-left: 40%;
  background-color:#D3D3D3;
}

.nav{
  width: 95%;
  margin: auto;
}

.nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
  text-align: center;
}

.nav li {
  font-family: "Lucida Sans Typewriter",Georgia,Arial;
  font-size: 16px;
  display: inline;
  height: 40px;
  width: 19.925%;
  float: left;
}

.nav li a {
  display: block;
  color: white;
  text-decoration: none;
}

.nav li a:hover:not(.active) {
  background-color: #111;
}

.active {
  background-color: #4CAF50;
}

.nav li:last-child{
border-right: none;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<title>The Clay Oven Pizzeria</title>
</head>
<body>
  <header>
    <div class="header">
      <img src="https://images.template.net/wp-content/uploads/2014/10/28083349/Pick-a-Pizza-Logo-of-your-Own.jpg" 
       alt="logo"/>
      <h1> The Clay Oven Pizzeria</h1>
    </div>
    <br><br>
    <div class="nav">
      <ul>
        <li><a class="active" href="#index"> Home </li>
        <li><a href="#menu">Menu</li>
        <li><a href="#about">About</li>
        <li><a href="#about">Contact Us</li>
        <li><a href="#signup">Sign Up</li>
      </ul>
    </div>
  </header>
</body>
</html>

关于css - 用背景颜色填充标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47052589/

相关文章:

javascript 函数 Math.pow 从输入文本中获取十进制值

CSS 底部与顶部结合时不起作用?

c# - 在代码中设置边距属性

css - 居中 div 的最小左边距

html - 当我使用 background-image 时,为什么我的 CSS 不适用于图像?

html - 无法将文本溢出作为省略号

css - 如何修复 div 的悬停属性?

html - 下拉菜单 CSS 未显示 li :hover/a:hover -- No JavaScript

html - 如何在 Bootstrap 中使类 ="row"中的图像位于中间

javascript - 如何使用 JS 在鼠标移动时将 div 的中心定位到鼠标光标的中心?