将文本添加到div,移动div

时间:2016-12-19 06:51:52

标签: html css

我需要一些帮助。我附上了一个基本的HTML代码。有2个矩形。 id为" maindiv"的主矩形另一个带有id" subdiv"的矩形。 "细分"位于" maindiv"的中心。现在,当我将文本添加到" subdiv"时,它会向下移动一点并且"细分"不在" maindiv"的中心。了。我该怎么做:

  1. 将文本放在" subdiv"。
  2. 的中心
  3. 记住1,我得到了"细分"在" maindiv"的中心。
  4. JSFiddle (Without adding text)

    JSFiddle (After adding text)

    完整代码:

    
    
    p {
      color: white;
    }
    #maindiv {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
    }
    #subdiv {
      position: relative;
      margin: auto;
      top: 30%;
      width: 60%;
      height: 40%;
      background-color: brown;
      text-align: center;
    }
    .rectangle {
      height: 200px;
      width: 300px;
      background-color: yellowgreen;
    }
    
    <!DOCTYPE html>
    <html>
    
    <head>
    </head>
    
    <body>
      <div id="maindiv" class="rectangle">
        <div id="subdiv" class="rectangle">
          <p>Rectangle</p>
        </div>
      </div>
    </body>
    
    </html>
    &#13;
    &#13;
    &#13;

6 个答案:

答案 0 :(得分:2)

默认情况下,浏览器会为p标记添加边距,并使用margin:0删除,但不会发生:

p {
  color: white;
  margin: 0;
}

#maindiv {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

#subdiv {
  position: relative;
  margin: auto;
  top: 30%;
  width: 60%;
  height: 40%;
  background-color: brown;
  text-align: center;
}

.rectangle {
  height: 200px;
  width: 300px;
  background-color: yellowgreen;
}
<body>
  <div id="maindiv" class="rectangle">
    <div id="subdiv" class="rectangle">
      <p>
        Rectangle
      </p>
    </div>
  </div>
</body>

答案 1 :(得分:2)

请将以下样式应用于您的细分,因此您的文字也将位于中心位置以及您的细分。​​

#subdiv{
position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    line-height: 45px;
    width: 60%;
    height: 40%;
    background-color: brown;
    text-align: center;

}

答案 2 :(得分:0)

<!DOCTYPE html>
<html>
    <head>
        <style>
            p{
                color: white;
            }
            #maindiv{
                position: absolute;
                top: 0;
                right: 0;
                bottom: 0;
                left: 0;
            }

            #subdiv{
                position: relative;
                margin: auto;
                top: 30%;
                width: 60%;
                height: 40%;
                background-color: brown;
                text-align: center;
            }

            .rectangle{
                height: 200px;
                width: 300px;
                background-color: yellowgreen;
            }
          .rectangle p {margin: 0px;}

        </style>
    </head>
    <body>
        <div id="maindiv" class="rectangle">
            <div id="subdiv" class="rectangle">
                <p>Rectangle</p>
            </div>
        </div>
    </body>
</html>

答案 3 :(得分:0)

对您的display:inline代码使用 <p> ,它可以正常使用

p {
  color: white;
  display:inline;
}
#maindiv {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
#subdiv {
  position: relative;
  margin: auto;
  top: 30%;
  width: 60%;
  height: 40%;
  background-color: brown;
  text-align: center;
}
.rectangle {
  height: 200px;
  width: 300px;
  background-color: yellowgreen;
}
<!DOCTYPE html>
<html>

<head>
</head>

<body>
  <div id="maindiv" class="rectangle">
    <div id="subdiv" class="rectangle">
      <p>Rectangle</p>
    </div>
  </div>
</body>

</html>

答案 4 :(得分:0)

这只是因为<p>标记采用默认边距。删除它添加在CSS

p
{
margin:0;
}

答案 5 :(得分:0)

尝试使用段落元素的line-height属性, 我希望这能帮到您.. 以下是更新后的代码:Here [https://jsfiddle.net/6ua2vyhy/]