Div仅在chrome中重叠h1

时间:2014-08-30 13:38:39

标签: css google-chrome

我是网络开发的新手,正在创建一个网站组合。我的网站是www.laurenschaller.com。一切都按照我想要的方式工作,除了有时候(并非总是,如果我刷新它恢复正常)当我用chrome打开它时,包含文本“我是谁”的两个波浪重叠该文本,就像这http://imgur.com/Zxt7bEE

这是html:                              

                    <div class="wave1div">
                    <div id="waveBlue1"></div>
                        <img class="wave1" src="img/loadingwave.png" alt="leftwave">
                    </div>

                    <div class="whoIAm">
                        <h1>WHO I AM</h1>
                    </div>
                <div id="waveBlue2"></div>
                    <div class="wave2div">
                            <img class="wave2" src="img/loadingwave.png" alt="rightwave">
                    </div>
                </div>
    <!-- Waves end -->

以下是我的风格:

.waveHeader {
  text-align: center;
}

.wave1div, .wave2div, .whoIAm {
  display: inline-block;
}
.wave1div, .wave2div, #waveBlue2 {
  position: absolute;
  top: 270px;
}
.wave1, .wave2{
  width: 200px;
  position: absolute;
  display: block !important;
}

#waveBlue2, #waveBlue1 {
  height: 43px;
  background: $blue;
  position: absolute;
  display: inline-block;
  text-align: center;
}

#waveBlue1 {
 width: 0px;
 max-width: 198px;
 right:15px;
 bottom:-43px;
 margin-left: -50px;
}

#waveBlue2 {
  max-width: 200px;
}

.prog-bar1, .wave1 {
  left: -213px;
}

如果其中任何一个编码不好,我道歉。就像我说的那样,我很擅长学习和欣赏帮助。

1 个答案:

答案 0 :(得分:0)

我会删除&#34; wave&#34; divs,然后离开标题,像这样:

<section class="about">
  <h1>WHO I AM</h1>
</section>

然后将波浪添加为标题本身上的:before和:after伪元素的背景。

.about h1:before, .about h1:after {
    content:'';
    width:200px;
    height:44px;
    display:inline-block;
    background:url('img/loadingwave.png') no-repeat;
    background-color:#86c3c1;
    background-size:200px 44px;
}
.about h1:before {
    margin-right:30px;
}
.about h1:after {
    margin-left:30px;
}

伪元素非常酷,你可以用它们做很多效果。请阅读:

Learning To Use The :before And :after Pseudo-Elements In CSS

A Whole Bunch of Amazing Stuff Pseudo Elements Can Do

另一种方法是将标题的内容放在一个范围内,如下所示:

<h1><span>WHO I AM</span></h1>

然后你可以将跨度的背景设置为白色,并将波浪作为h1元素的背景:

.about span {
  background:#FFF;
}
.about h1 {
  background:url('files/wave-orig.png') center repeat-x;
  background-color:#86c3c1;
  background-size:200px 44px;
}

如果你决定采用跨度方式,你必须修复很多标记 - 让你的标题阻止等级元素,声明适当的高度,调整容器的宽度等。

我只是告诉你这是另一种选择,但伪元素方式对于你当前的布局来说是最容易实现的。

顺便说一句,我也注意到你在相当数量的元素上使用margin-bottom:rhythm - 这不是有效的CSS而且它没有做任何事情。