更改一个元素的CSS会影响div之外的其他元素

时间:2016-09-22 05:47:33

标签: html css web

每当我尝试向上或向下移动分隔符时,.separator类之上的元素h1开始与分隔符一起移动。有没有简单的方法可以摆脱这个问题?

以下是我的HTML / CSS代码

.banner img {
  width: 100%;
  height: 100%;
}
.banner {
  position: relative;
  margin: -0.6%
}
.OverLay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
}
.OverLayContent {
  width: 100%;
  height: 100%;
  display: table;
}
.overLayDescription {
  width: 70%;
  margin: 0 auto;
}
.OverLayText {
  width: 100%;
  height: 100%;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}
.OverLayText h1 {
  margin-bottom: 5%;
  color: #FFF;
  font-size: 120px;
  /*border-bottom: 2px solid #15a4fa;*/
}
.separator {
  margin: 0 auto;
  width: 50%;
  background-color: #15a4fa;
  height: 2px;
  margin-bottom: 10.4%;
}
.OverLayText a {
  color: #FFF;
  border: 1px solid #15a4fa;
  padding: 10px;
}
.OverLayText p {
  color: #FFF;
  margin-top: 2%;
  margin-bottom: 3%;
}
.OverLayContent {
  position: relative;
}
<div class="banner">
  <img src="http://cometoart.com/wp-content/uploads/2016/03/pojo-placeholder-2.png" />
  <div class="OverLay">
    <div class="OverLayContent">
      <div class="OverLayText">
        <h1>STRICT</h1>
        <dir class="separator"></dir>
        <p>STRICT is a responsive theme with a a clean and minimal look.</p>
        <a href="#">Call to action</a>
      </div>
    </div>
  </div>
</div>

2 个答案:

答案 0 :(得分:2)

仅仅因为您使用的是.OverLayText vertically-align:middle;

答案 1 :(得分:1)

&#13;
&#13;
	.banner img {
	  width: 100%;
	  height: 100%;
	  position: relative;

	}
	.banner {
	  position: relative;
	  margin: -0.6%
	}
	.OverLay {
	  position: absolute;
	  left: 0;
	  right: 0;
	  bottom: 0;
	  top: 0;
	}
	.OverLayContent {
	  width: 100%;
	  height: 100%;
	  display: table;
	}
	.overLayDescription {
	  width: 70%;
	  margin: 0 auto;
	}
	.OverLayText {
	  width: 100%;
	  height: 100%;
	  display: table-cell;
	  vertical-align: middle;
	  text-align: center;
	  vertically-align:middle;
	}
	.OverLayText h1 {
	  margin-bottom: 5%;
	  color: #FFF;
	  font-size: 120px;
	  /*border-bottom: 2px solid #15a4fa;*/
	}
	.separator {
	  /*margin: 0 auto;*/
	  width: 50%;
	  background-color: #15a4fa;
	  height: 2px;
	  /*top: 80%;*/
	  position: relative;
	  margin: auto;
	  text-align: center;
	  display: block;
	}
	.OverLayText a {
	  color: #FFF;
	  border: 1px solid #15a4fa;
	  padding: 10px;
	}
	.OverLayText p {
	  color: #FFF;
	  margin-top: 2%;
	  margin-bottom: 3%;
	}
	.OverLayContent {
	  position: relative;
	}
&#13;
<div class="banner">
  <img src="http://cometoart.com/wp-content/uploads/2016/03/pojo-placeholder-2.png" />
  <div class="OverLay">
    <div class="OverLayContent">
      <div class="OverLayText">
        <h1>STRICT</h1>
        <dir class="separator"></dir>
        <p>STRICT is a responsive theme with a a clean and minimal look.</p>
        <a href="#">Call to action</a>
      </div>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;