2017-07-30 61 views
0

我有以下页面布局,当我加divcard类到div与类page整个div下移。将内容添加到div让它向下移动?

如果我删除divcard类然后一切都会恢复正常。

有什么问题并解决这个问题?

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

/*******************page layout**************************/ 
 

 
.container { 
 
    width: 100%; 
 
    background-color: #d5d5d5; 
 
} 
 

 
.sidebarcontainer { 
 
    width: 250PX; 
 
    height: 6000px; 
 
    display: inline-block; 
 
    box-sizing: border-box; 
 
    padding: 5px; 
 
    padding-right: 2px; 
 
} 
 

 
.innersidebarcontainer { 
 
    position: relative; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 

 
.sidebar { 
 
    width: 243px; 
 
    background-color: white; 
 
    height: 500px; 
 
    top: 1px; 
 
    position: absolute; 
 
} 
 

 
.mainpage { 
 
    width: calc(100% - 250px); 
 
    padding: 5px; 
 
    padding-left: 2px; 
 
    height: 6000px; 
 
    display: inline-block; 
 
    box-sizing: border-box; 
 
} 
 

 
.page { 
 
    width: 100%; 
 
    height: 100%; 
 
    background-color: white; 
 
    display: flex; 
 
    flex-direction: row; 
 
    flex-wrap: wrap; 
 
    justify-content: center; 
 
    align-items: baseline; 
 
    align-content: flex-start; 
 
} 
 

 
.footer { 
 
    height: 500px; 
 
    width: 100%; 
 
    margin: 0 auto; 
 
    background-color: #031003; 
 
} 
 

 

 
/***************end of pagelayout******************/ 
 

 
.card { 
 
    width: 250px; 
 
    /*height: 400px;*/ 
 
    align-self: flex-start; 
 
    margin: 10px; 
 
    display: inline-block; 
 
} 
 

 
.image { 
 
    width: 200px; 
 
    margin: 0 auto; 
 
    height: 250px; 
 
} 
 

 
.image img { 
 
    width: 100%; 
 
    height: 100%; 
 
}
<body> 
 
    <div class="container"> 
 
    <div class="sidebarcontainer"> 
 
     <div class="innersidebarcontainer"> 
 
     <div class="sidebar"> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    <!-- 
 
    --> 
 
    <div class="mainpage"> 
 
     <div class="page"> 
 

 
     <div class="card"> 
 
      <div class="image"> 
 
      <img src="http://winsupersite.com/site-files/winsupersite.com/files/archive/winsupersite.com/content/content/143119/pr8.jpg"> 
 
      </div> 
 
      <div class="info"> 
 
      <span>This is name of book</span> 
 
      <span>this is author</span> 
 
      <span>this is price</span> 
 
      <span>this is rating</span> 
 
      </div> 
 
     </div> 
 

 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="footer"></div> 
 
</body>

+0

https://stackoverflow.com/questions/14854725/div-moves-when-的可能的复制i-put-text-in-it – Ivan

+1

[DIV在我将文本放入它时移动]的可能重复(https://stackoverflow.com/questions/14854725/div-moves-when-i-put-text -in-it) – Ivan

回答

1

您可以将display: flex属性只是添加到您的container类,使其工作。

.container{ 
    width: 100%; 
    background-color: #d5d5d5; 
    display: flex; 
} 

工作实例here

+0

实际问题是什么? – Rahul

+0

默认情况下(如果您不更改),显示属性设置为“inline”。这将把孩子们安排在彼此之间,而不是彼此相邻。 如果您将其更改为flexbox,则会假设“行”的灵活方向,女巫会将孩子放在彼此相邻的位置 –

1

这将做

/*******************page layout**************************/ 
 

 
.container { 
 
    width: 100%; 
 
    display:flex; 
 
    background-color: #d5d5d5; 
 
} 
 

 
.sidebarcontainer { 
 
    width: 250PX; 
 
    height: 6000px; 
 
    display: inline-block; 
 
    box-sizing: border-box; 
 
    padding: 5px; 
 
    padding-right: 2px; 
 
} 
 

 
.innersidebarcontainer { 
 
    position: relative; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 

 
.sidebar { 
 
    width: 243px; 
 
    background-color: white; 
 
    height: 500px; 
 
    top: 1px; 
 
    position: absolute; 
 
} 
 

 
.mainpage { 
 
    width: calc(100% - 250px); 
 
    padding: 5px; 
 
    padding-left: 2px; 
 
    height: 6000px; 
 
    display: inline-block; 
 
    box-sizing: border-box; 
 
} 
 

 
.page { 
 
    width: 100%; 
 
    height: 100%; 
 
    background-color: white; 
 
    display: flex; 
 
    flex-direction: row; 
 
    flex-wrap: wrap; 
 
    justify-content: center; 
 
    align-items: baseline; 
 
    align-content: flex-start; 
 
} 
 

 
.footer { 
 
    height: 500px; 
 
    width: 100%; 
 
    margin: 0 auto; 
 
    background-color: #031003; 
 
} 
 

 

 
/***************end of pagelayout******************/ 
 

 
.card { 
 
    width: 250px; 
 
    /*height: 400px;*/ 
 
    align-self: flex-start; 
 
    margin: 10px; 
 
    display: inline-block; 
 
} 
 

 
.image { 
 
    width: 200px; 
 
    margin: 0 auto; 
 
    height: 250px; 
 
} 
 

 
.image img { 
 
    width: 100%; 
 
    height: 100%; 
 
}
<body> 
 
    <div class="container"> 
 
    <div class="sidebarcontainer"> 
 
     <div class="innersidebarcontainer"> 
 
     <div class="sidebar"> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    <!-- 
 
    --> 
 
    <div class="mainpage"> 
 
     <div class="page"> 
 

 
     <div class="card"> 
 
      <div class="image"> 
 
      <img src="http://winsupersite.com/site-files/winsupersite.com/files/archive/winsupersite.com/content/content/143119/pr8.jpg"> 
 
      </div> 
 
      <div class="info"> 
 
      <span>This is name of book</span> 
 
      <span>this is author</span> 
 
      <span>this is price</span> 
 
      <span>this is rating</span> 
 
      </div> 
 
     </div> 
 

 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="footer"></div> 
 
</body>