向div添加内容会导致它发生变化吗?

时间:2017-07-28 15:29:21

标签: javascript html css css3

在下面的代码中,我有一个简单的页面设置,但是只要我向div添加了一些内容page,整个主页div就会向下移动?

尝试将<h1>hello</h1>添加到div的课程page

问题是什么,div应该保留在那里,只需添加<h1>hello</h1>

代码:https://jsfiddle.net/5sx0sj2q/

&#13;
&#13;
.container{
  width: 100%;
  background-color: #d5d5d5;
}
.sidebarcontainer{
  width: 300PX;
  height: 2000px;
  display: inline-block;
  box-sizing: border-box;
  padding: 5px;
  padding-right: 2px;
}
.innersidebarcontainer{
  position: relative;
      width: 100%;
    height: 100%;
}
.sidebar{
  width: 293px;
  background-color: white;
  height: 500px;
  top: 1px;
  position: absolute;
}
.mainpage{
  width: calc(100% - 300px);
  padding: 5px;
  padding-left: 2px;
  height: 2000px;
  display: inline-block;
  box-sizing: border-box;
}
.page{
  width: 100%;
  height: 100%;
  background-color: white;
}
.footer{
  height: 500px;
  width: 100%;
  margin: 0 auto;
  background-color: #031003;
}
&#13;
    <div class="container">
        <div class="sidebarcontainer">
            <div class="innersidebarcontainer">
                    <div class="sidebar">
                </div>
            </div>
        </div><!--
    --><div class="mainpage">
        <div class="page"></div>
    </div> 
    </div>
    <div class="footer"></div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

是的,有一个技巧:

.mainpage{
  vertical-align : top; // Add this
}

另外,更改H1显示属性:

h1{
  display : inline-block;
}

所有元素都保持在应有的位置。 CSS的乐趣。

Working Fiddle

答案 1 :(得分:1)

是正常的,显示:inline-block在元素之间添加一点空间(并且你没有更多的空间)。 使用float left代替你的代码。