2016-07-19 6 views
0

私は3つのdiv、親div、上の子div、下の別のdivがあります。助けが非常に高く評価され、ここで私が達成したいものがあります:CSS/HTML Divサイズ変更とテーブルの配置

トップのdivがサイズを変更/増加すると、テーブルを含む下のdivは縮小しますが、その位置にとどまります。あなたがそれをはっきりと視覚化できるように、下のモックアップを見てください。 https://jsfiddle.net/koykoys/t09v854r/8/

$("#btnExpand").click(function(){ 
 
    $(#top).css("height","400px"); 
 
});
.wrapper{ 
 
    height: 73vh; 
 
    display: flex; 
 
    flex-direction: column; 
 
    border: 2px solid red; 
 
} 
 

 
#top{ 
 
    border:2px solid blue; 
 
    position:relative; 
 
    height:100px 
 
} 
 

 
#bottom{ 
 
    border:2px solid green; 
 
    position:relative; 
 
    height:100%" 
 
} 
 
table, th, td { 
 
    border: 1px solid black; 
 
}
<div class="wrapper"> 
 
    <div id "expand"> 
 
    <input id = "btnExpand" type="button" value="Expand Blue Div"/> 
 
    </div> 
 
    <div id="top"></div> 
 
    </br> 
 
    <div id "Download CSV"> 
 
    <button > 
 
     Download CSV of Table 
 
    </button> 
 
    </div> 
 
    <div id="bottom" style="border:2px solid green;position:relative;height:100%" > 
 
    <table> 
 
     <tr> 
 
     <th>Firstname</th> 
 
     <th>Lastname</th> 
 
     <th>Firstname</th> 
 
     <th>Lastname</th> 
 
     <th>Firstname</th> 
 
     <th>Lastname</th> 
 
     <th>Firstname</th> 
 
     </tr> 
 
     <tr> 
 
     <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Boom</td> 
 
     <td>Panes</td> <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Boom</td> 
 
     <td>Panes</td> <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Boom</td> 
 
     <td>Panes</td> <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Boom</td> 
 
     <td>Panes</td> <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Boom</td> 
 
     <td>Panes</td> <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     <td>Jaranjan</td> 
 
     <td>John</td> 
 
     </tr> 
 
    </table> 
 
    </div> 
 
</div>

+0

あなたはjsfiddleを作ることはできますか? –

+0

フィドルを作成するだけではなく、自己の質問にコードを含めるようにしてください。質問エディタの '<>'ボタンを使って質問にStackOverflowスニペットを含めることをお勧めします。それはフィドルのようなものですが、質問(または答え)ではそれが自己です。参照してください:http://stackoverflow.com/help/mcve –

+0

私はjsfiddleを作成します、あなたはまた、添付した画像、私のモックアップを確認することができます:) – Rocky

答えて

1

wrapper heightautoに設定してください。

$(document).ready(function(){ 
 
$("#btnExpand").click(function(){ 
 
     $('#top').animate({ 
 
     'height' : '400px' 
 
     }); 
 
    }); 
 
});
.wrapper{ 
 
    width:100%; 
 
    height: auto; 
 
    display: flex; 
 
    flex-direction: column; 
 
    border: 2px solid red; 
 
} 
 

 
#top{ 
 
    border:2px solid blue; 
 
    position:relative; 
 
    height:100px; 
 
} 
 
#bottom{ 
 
    border:2px solid green; 
 
    position:relative; 
 
    height:100%" 
 
} 
 
table, th, td { 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper"> 
 
<div id = "expand"> 
 
    <input id = "btnExpand" type="button" value="Expand Blue Div"/> 
 
    </div> 
 
    <div id="top" > 
 
    </div> 
 
    </br> 
 
    <div id = "Download CSV"> 
 
     <button > 
 
     Download CSV of Table 
 
     </button> 
 
    </div> 
 
    <div id="bottom" style="border:2px solid green;position:relative;height:100%" > 
 
    <table> 
 
    <tr> 
 
    <th>Firstname</th> 
 
    <th>Lastname</th> 
 
    <th>Firstname</th> 
 
    <th>Lastname</th> 
 
    <th>Firstname</th> 
 
    <th>Lastname</th> 
 
    <th>Firstname</th> 
 

 
    </tr> 
 
    <tr> 
 
    <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 

 
    </tr> 
 
    <tr> 
 
    <td>Boom</td> 
 
    <td>Panes</td> <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 

 

 
    </tr> 
 
    <tr> 
 
    <td>Boom</td> 
 
    <td>Panes</td> <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 

 

 
    </tr> 
 
    <tr> 
 
    <td>Boom</td> 
 
    <td>Panes</td> <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 

 

 
    </tr> 
 
    <tr> 
 
    <td>Boom</td> 
 
    <td>Panes</td> <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 

 

 
    </tr> 
 
    <tr> 
 
    <td>Boom</td> 
 
    <td>Panes</td> <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 
    <td>Jaranjan</td> 
 
    <td>John</td> 
 

 

 
    </tr> 
 

 

 
    
 
</table> 
 

 
     
 
    </div>

+0

これはありがたいですが、この解決策の問題は、サイズは、内部の2 divの高さにかかわらず変更してはなりません。 – Rocky

+0

@ReymarkMatiraPanopioようこそ。なぜあなたはjQueryを使ってラッパーの高さを増やしていますか? – frnt

0

は、ここでは、あなたのHTMLマークアップでエラーが発生したhttps://jsfiddle.net/whp257jp/

を働く新しいJSのフィドルです:

Here is my Mock Up Image

は、ここに私のJSFiddleです。それを私が直した。

<div class="wrapper"> 
<div id="expand"> 
    <input id="btnExpand" type="button" value="Expand Blue Div"/> 
    </div> 
    <div id="top" > 
    </div> 
    <br/> 

のjQuery:

$("#btnExpand").click(function(){ 
    $('#top').css("height","400px"); 
}); 

それはあなたの仕事のための完全なソリューションではありません。私はちょうどあなたのコードを作った。

私が初心者としてはかなり難しい仕事です。 Uはこの問題を解決するためにcss、html、jQueryをより深く学ぶ必要があります。

+0

私のエラーを修正していただきありがとうございます。はい、私はまだこのフィールドに関する知識がさらに必要です:) – Rocky

0

wrapper高さが自動でなければなりません:

.wrapper{ 
    height: auto; 
    display: flex; 
    flex-direction: column; 
    border: 2px solid red; 
} 

そして、あなたは二重引用符を忘れてしまった:

$("#top").height("400px"); 
+0

ありがとう、私のために非常に役立ちます – Rocky

+0

あなたの質問が解決された場合、 –

関連する問題