背景颜色已应用于HTML / CSS中的先前元素

时间:2018-07-10 18:48:34

标签: html css list overflow

我目前正在使用W3学校示例制作定价表。但是,下面div的样式将应用于上面的所有内容。我希望它仅适用于该特定div。

我尝试使用:溢出:隐藏; 它不起作用,因为div中的内容已隐藏,但确实删除了背景。

我也尝试过:将这三个列表放在div中,希望它可以将列表包装在其周围并且不受下面的div的影响。相反,似乎没有任何作用。

我想要的效果:是能够在此列表下放置另一个div,并应用背景色,而不会影响页面的其余部分。

每个请求,我都会插入

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
* {
    box-sizing: border-box;
}

.columns {
    float: left;
    width: 33.3%;
    padding: 8px;
}

.price {
    list-style-type: none;
    border: 1px solid #eee;
    margin: 0;
    padding: 0;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

.price:hover {
    box-shadow: 0 8px 12px 0 rgba(0,0,0,0.2)
}

.price .header {
    background-color: #111;
    color: white;
    font-size: 25px;
}

.price li {
    border-bottom: 1px solid #eee;
    padding: 20px;
    text-align: center;
}

.price .grey {
    background-color: #eee;
    font-size: 20px;
}

.button {
    background-color: #4CAF50;
    border: none;
    color: white;
    padding: 10px 25px;
    text-align: center;
    text-decoration: none;
    font-size: 18px;
}

@media only screen and (max-width: 600px) {
    .columns {
        width: 100%;
    }
}
</style>
</head>
<body>

<h2 style="text-align:center">Responsive Pricing Tables</h2>
<p style="text-align:center">Resize the browser window to see the effect.</p>

<div class="columns">
  <ul class="price">
    <li class="header">Basic</li>
    <li class="grey">$ 9.99 / year</li>
    <li>10GB Storage</li>
    <li>10 Emails</li>
    <li>10 Domains</li>
    <li>1GB Bandwidth</li>
    <li class="grey"><a href="#" class="button">Sign Up</a></li>
  </ul>
</div>

<div class="columns">
  <ul class="price">
    <li class="header" style="background-color:#4CAF50">Pro</li>
    <li class="grey">$ 24.99 / year</li>
    <li>25GB Storage</li>
    <li>25 Emails</li>
    <li>25 Domains</li>
    <li>2GB Bandwidth</li>
    <li class="grey"><a href="#" class="button">Sign Up</a></li>
  </ul>
</div>

<div class="columns">
  <ul class="price">
    <li class="header">Premium</li>
    <li class="grey">$ 49.99 / year</li>
    <li>50GB Storage</li>
    <li>50 Emails</li>
    <li>50 Domains</li>
    <li>5GB Bandwidth</li>
    <li class="grey"><a href="#" class="button">Sign Up</a></li>
  </ul>
</div>
<!-- THIS IS WHERE MORE CONTENT WOULD GO -->
<div style="background-color: black"> <!-- WHY DOES THIS AFFECT EVERYTHING ABOVE IT? -->
	<span style="color: white;">hello</span>
</div>
<!-- END OF FOOTER -->

</body>
</html>

Example of what is happening + code

1 个答案:

答案 0 :(得分:0)

CSS中的级联术语说明了这一点: 优先级一:HTML balise中直接定义的样式 优先级2(下):HTML文件标题中的CSS样式 优先级较低:CSS样式位于单独的CSS文件中

现在,如何解决您的问题? 这不是一个级联的问题(这就是为什么您要搜索太多时间),但是您在列样式上使用了float:left。

  • 然后,您必须为另一个div创建一个“白色”类(以<li>表示)
  • ,也可以创建一个带float的.other类:黑色的最后一个div左为

    希望,我已为您服务:)

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
    * {
        box-sizing: border-box;
    }
    
    .columns {
        float: left;
        width: 33.3%;
        padding: 8px;
    }
    
    .price {
        list-style-type: none;
        border: 1px solid #eee;
        margin: 0;
        padding: 0;
        -webkit-transition: 0.3s;
        transition: 0.3s;
    }
    
    .price:hover {
        box-shadow: 0 8px 12px 0 rgba(0,0,0,0.2)
    }
    
    .price .header {
        background-color: #111;
        color: white;
        font-size: 25px;
    }
    
    .price li {
        border-bottom: 1px solid #eee;
        padding: 20px;
        text-align: center;
    }
    
    .price .grey {
        background-color: #eee;
        font-size: 20px;
    }
    
    .other {
    	float: left;
    }
    	
    
    .button {
        background-color: #4CAF50;
        border: none;
        color: white;
        padding: 10px 25px;
        text-align: center;
        text-decoration: none;
        font-size: 18px;
    }
    
    @media only screen and (max-width: 600px) {
        .columns {
            width: 100%;
        }
    }
    </style>
    </head>
    <body>
    
    <h2 style="text-align:center">Responsive Pricing Tables</h2>
    <p style="text-align:center">Resize the browser window to see the effect.</p>
    
    <div class="columns">
      <ul class="price">
        <li class="header">Basic</li>
        <li class="grey">$ 9.99 / year</li>
        <li>10GB Storage</li>
        <li>10 Emails</li>
        <li>10 Domains</li>
        <li>1GB Bandwidth</li>
        <li class="grey"><a href="#" class="button">Sign Up</a></li>
      </ul>
    </div>
    
    <div class="columns">
      <ul class="price">
        <li class="header" style="background-color:#4CAF50">Pro</li>
        <li class="grey">$ 24.99 / year</li>
        <li>25GB Storage</li>
        <li>25 Emails</li>
        <li>25 Domains</li>
        <li>2GB Bandwidth</li>
        <li class="grey"><a href="#" class="button">Sign Up</a></li>
      </ul>
    </div>
    
    <div class="columns">
      <ul class="price">
        <li class="header">Premium</li>
        <li class="grey">$ 49.99 / year</li>
        <li>50GB Storage</li>
        <li>50 Emails</li>
        <li>50 Domains</li>
        <li>5GB Bandwidth</li>
        <li class="grey"><a href="#" class="button">Sign Up</a></li>
      </ul>
    </div>
    <!-- THIS IS WHERE MORE CONTENT WOULD GO -->
    <div class="other" id="other" style="background-color: black"> <!-- WHY DOES THIS AFFECT EVERYTHING ABOVE IT? -->
    	test
    	<span style="color: white;">hello</span>
    </div>
    <!-- END OF FOOTER -->
    
    </body>
    </html>