隐藏在div后面的文字

时间:2018-01-18 01:26:55

标签: html css

我有一个用HTML / CSS制作的云,我试图将一些文本包含在其中心。但是我在定位它并让它与云div重叠时遇到了麻烦。

#cloud {
    height: 230px;
    margin: 40px;
    position: relative;
    width: 400px;
}

#cloud div {
    border: solid 5px black;
}

#bottom_c {
    background-color: #fff;
    border-radius: 100px;
    height: 150px;
    position: absolute; 
    top: 100px;
    width: 350px;
    z-index: 0;
}

#right_c{
    background-color: #fff;
    border-radius: 100%;
    height: 150px;
    left: 140px;
    position: absolute; 
    top: 40px; 
    width: 150px;
    z-index: -1;
}

#left_c{
    background-color: #fff;  
    border-radius: 100%;
    height: 100px;
    left: 50px;
    position: absolute; 
    top: 70px; 
    width: 100px;
    z-index: -1;
}

#cloud::before {
    background-color: white;
    border-radius: 50%;
    content: '';
    height: 100px;
    left: 55px;
    position: absolute; 
    top: 75px; 
    width: 100px;
    z-index: 1;
}

#cloud::after {
    position: absolute; top: 45px; left: 145px;
    background-color: white;
    border-radius: 50%;
    content: '';
    width: 150px;
    height: 150px;
    z-index: 1;
}

.text {
  overflow: hidden;
  position: absolute;
  z-index: -2;
}
<div id="cloud">
  <div id="bottom_c"></div>
  <div id="right_c">
    <p class="text">
      this is some text
    </p>
  </div>
  <div id="left_c">

  </div>
</div>

不完全确定如何使其工作,我认为z-index将允许文本采取“优先级”并首先显示,但它似乎没有工作。我是否需要在另一个div中插入p标签?任何建议将不胜感激!

2 个答案:

答案 0 :(得分:0)

如果您将html更改为:

<div id="cloud">
  <div id="bottom_c"></div>
  <div id="right_c"></div>
  <div id="left_c"></div>
</div>
<p class="text">
  this is some text
</p>

和css中的文本元素:

.text {
  overflow: hidden;
  position: absolute;
  z-index: 2;
  top:200px;
  right:200px;
}

然后它有效。

答案 1 :(得分:0)

从当前嵌套级别删除文本元素。只要让它成为边境div的兄弟姐妹。还是一个整体容器。

#cloud {
    height: 230px;
    margin: 40px;
    position: relative;
    width: 400px;
}

#cloud div {
    border: solid 5px black;
}

#bottom_c {
    background-color: #fff;
    border-radius: 100px;
    height: 150px;
    position: absolute; 
    top: 100px;
    width: 350px;
    z-index: 0;
}

#right_c{
    background-color: #fff;
    border-radius: 100%;
    height: 150px;
    left: 140px;
    position: absolute; 
    top: 40px; 
    width: 150px;
    z-index: -1;
}

#left_c{
    background-color: #fff;  
    border-radius: 100%;
    height: 100px;
    left: 50px;
    position: absolute; 
    top: 70px; 
    width: 100px;
    z-index: -1;
}

#cloud::before {
    background-color: white;
    border-radius: 50%;
    content: '';
    height: 100px;
    left: 55px;
    position: absolute; 
    top: 75px; 
    width: 100px;
    z-index: 1;
}

#cloud::after {
    position: absolute; top: 45px; left: 145px;
    background-color: white;
    border-radius: 50%;
    content: '';
    width: 150px;
    height: 150px;
    z-index: 1;
}

.text {
  position: absolute;
  top: 40px;
  left: 135px;
  z-index: 2;
}
<div id="cloud">
  <div id="bottom_c"></div>
  <div id="right_c"></div>
  <div id="left_c"></div>
  <p class="text">this is some text</p>  
</div>