2017-07-28 13 views
0

は、私は以下の構成を持っている: を私はwidth: 100%;とも両方htmlbodywidth: 100%を持っていると、クラスcontainerで親divを持っており、これまでのところ、期待通りに働いています。 しかし、クラスcontainerdivの内側に、私はクラスmainpageを持つ親がwidth: calc(100% - 300px)を持ち、そしてクラスpageと子供divwidth: 100%を持っている2つのdiv S、width: calc(100% - 300px)width: 300pxと1 div、 およびその他のdiv、width:親divの幅が100%の場合、子divに100%は機能していません:calc(100% - 300px)?

を持っています。 しかし、width: 100%はこれに対応していませんdiv

でも、親divwidthが決定的である。

コード:https://jsfiddle.net/tj8k0nnw/1/

.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: 700px; 
 
    top: 1px; 
 
    position: absolute; 
 
} 
 

 
.mainpage { 
 
    width: calc(100% - 300px); 
 
    padding: 5px; 
 
    padding-right: 2px; 
 
    height: 3000px; 
 
    display: inline-block; 
 
    box-sizing: border-box; 
 
    background-color: teal; 
 
} 
 

 
.page { 
 
    width: 100%; 
 
    width: 100%; 
 
    background-color: white; 
 
} 
 

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

 
.test1 { 
 
    background-color: red; 
 
    position: absolute; 
 
    left: 0; 
 
    right: 0; 
 
    top: 0; 
 
    height: 200px; 
 
} 
 

 
.test2 { 
 
    background-color: red; 
 
    position: absolute; 
 
    left: 0; 
 
    right: 0; 
 
    bottom: 0; 
 
    height: 200px; 
 
}
<div class="container"> 
 
    <div class="sidebarcontainer"> 
 
    <div class="innersidebarcontainer"> 
 
     <div class="sidebar"> 
 
     <div class="test1"></div> 
 
     <div class="test2"></div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <!-- 
 
    --> 
 
    <div class="mainpage"> 
 
    <div class="page"></div> 
 
    </div> 
 
</div> 
 
<div class="footer"></div>

答えて

3

提供されたコードが機能しています。あなたがpageのための高さを指定していないので、高さは0です。それに高さを与えていることが見えるようになるために発生しますあなたのコードとあなたとの多くの問題がないようhttps://jsfiddle.net/kvjw9vhm/

.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: 700px; 
 
    top: 1px; 
 
    position: absolute; 
 
} 
 
.mainpage{ 
 
    width: calc(100% - 300px); 
 
    padding: 5px; 
 
    padding-right: 2px; 
 
    height: 3000px; 
 
    display: inline-block; 
 
    box-sizing: border-box; 
 
    background-color: teal; 
 
} 
 
.page{ 
 
    width: 100%; 
 
    height: 100%; /* was width: 100%; */ 
 
    background-color: white; 
 
} 
 
.footer{ 
 
    height: 500px; 
 
    width: 100%; 
 
    margin: 0 auto; 
 
    background-color: purple 
 
} 
 
.test1{ 
 
    background-color: red; 
 
    position: absolute; 
 
    left: 0; 
 
    right: 0; 
 
    top: 0; 
 
    height: 200px; 
 
} 
 
.test2{ 
 
    background-color: red; 
 
    position: absolute; 
 
    left: 0; 
 
    right: 0; 
 
    bottom: 0; 
 
    height: 200px; 
 
}
<body> 
 
    <div class="container"> 
 
    <div class="sidebarcontainer"> 
 
     <div class="innersidebarcontainer"> 
 
     <div class="sidebar"> 
 
      <div class="test1"></div> 
 
      <div class="test2"></div> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    <div class="mainpage"> 
 
     <div class="page"></div> 
 
    </div> 
 
    </div> 
 
    <div class="footer"></div> 
 
</body>

+0

しかし、クラスの 'ページ' を持つdiv要素をすでに幅を有しています:100%、高さ:100%;; – Rahul

+0

あなたのコードでは、両方とも 'width:100%'と 'width:100%'です。 – SchoolBoy

+0

問題ありません、あなたを大歓迎します。受け付けたものとしてマークしてください:) – SchoolBoy

1

が見えます.pageクラスでwidthを2回言及することによってタイプミスを犯しました。そのうちの1つをheightに変更すると、私にとってうまくいったので、あなたのためにもうまくいくはずです。
問題が発生した場合は教えてください。

+0

ここに問題があります!クラスページでdivに何かを追加すると、それが下に移動します。何が問題ですか。?たとえば、

テキスト

をページに追加します。 – Rahul

+0

コード:https://jsfiddle.net/5sx0sj2q/ – Rahul

2

上記のコードが動作していますが、ページクラスに高さを追加するだけです。 .Belowがデモンストレーションされないコンテンツがない場合デフォルトの高さにより、

.page{ 
width: 100%; 
height:100px; 
background-color: green; 
} 

は、0である、それをチェックアウト:

.mainpage{ 
 
width: calc(100% - 300px); 
 
padding: 5px; 
 
padding-right: 2px; 
 
height: 3000px; 
 
display: inline-block; 
 
box-sizing: border-box; 
 
background-color: teal; 
 
} 
 
.page{ 
 
width: 100%; 
 
height:100px; 
 
background-color: green; 
 
} 
 
.footer{ 
 
height: 500px; 
 
width: 100%; 
 
margin: 0 auto; 
 
background-color: purple 
 
}
<body> 
 
<div class="container"> 
 
    <div class="sidebarcontainer"> 
 
     <div class="innersidebarcontainer"> 
 
       <div class="sidebar"> 
 
       <div class="test1"></div> 
 
       <div class="test2"></div> 
 
      </div> 
 
     </div> 
 
    </div><!-- 
 
--><div class="mainpage"> 
 
    <div class="page"></div> 
 
    </div> 
 
</div> 
 
<div class="footer"></div> 
 
</body>

+0

ここに問題があります!クラスページでdivに何かを追加すると、それが下に移動します。何が問題ですか。?たとえば、

テキスト

を – Rahul

+0

コードに追加します。https://jsfiddle.net/5sx0sj2q/ – Rahul

関連する問題