3

ここに画像の説明を入力 右サイドバー、メイン コンテンツ、左サイドバーのページ ラッパーの高さ 100% を修正する必要があります。何か案が..?以下は私のcssファイルでもあります。page-wrapper で clearfix という名前のクラスを使用しましたが、高さは固定されていません。ただし、ヘッダーとフッター ラッパーも表示する必要があるため、100% は正確ではありません。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>e-support-uop</title>

    <!-- styling files  -->

    <link href="reset.css" rel="stylesheet" type="text/css" />
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
</head>

<body>
    <div id="page-wrapper" class="clearfix">
        <div id="header">0</div>
        <div id="left_sidebar">
            <br/>
            1
        </div> <!--end left_sidebar -->

        <div id="main_contents">
            <br/>
            2
        </div>
        <div id="right_sidebar">
            <br/>
            3
        </div> <!--close right_sidebar -->
        <div id="footer-wrapper"> <!-- footer -->
            4
        </div> <!-- end footer -->
    </div><!--close page-wrapper-->
</body>

</html>

そして、ここに私のcssファイルがあります:

html, body{
  margin: 0;
  height:100%;
}
html {
  height: 100%;
}

.clearfix{
   min-height: 1%;
   _height: 1%;   /*ie6*/
}

.clearfix:after{
  clear: both;
  display: block;
  content: "";
}

body {
  min-height: 100%;
  height: 100%;
  background-color:#d2c7fd;
  font-size:14px;
}

#page-wrapper {
  position: relative;

  background-color: #E4E6EB;
  width: 800px;
  min-height: 80%;
  height: auto !important;
  margin: 5px auto 0;
}

#header {
  width: 800px;
  height: 100px;
 }

#left_sidebar {
  position: relative;
  float: left;
  width: 20%;
  min-height: 100%; /*height: auto !important;

  */

  height: 100%;
  background-color: green;
  word-wrap: break-word;
}

#main_contents {
  position: relative;
  float: left;
  width: 55%;
  height: 90%; /*height: auto !important;

  /* height: 100%;
   */
  margin-left: 20px;
  margin-right: 20px; /*background-color: red;
  */
  word-wrap: break-word;
  /*display: table-row;*/
  overflow:hidden;
}

#right_sidebar {
  position: relative;
  float: left;
  width: 20%;
  min-height: 100%;
  height: auto !important;
  height: 100%; /*background-color: yellow;
  */
  word-wrap: break-word;
}

#footer-wrapper {
  position:absolute;
  bottom:-100px;
  left:0;
  width:100%;
  height: 100px;
  background-color: #d8d8d6;
  border-top-style: solid;
  border-width: 1px;
  border-color: #E0E0E0;
  /*padding-bottom: 20px;*/
}
4

2 に答える 2

1

ここにそれを行う1つの方法があります。

.main-wrapfloat をラップするためにa を追加して、HTML を少し変更しました。

<div id="page-wrapper">
    <div id="header">0</div>
    <div id="main-wrap">
        <div id="left_sidebar">1</div><!--end left_sidebar -->
        <div id="main_contents">2</div>
        <div id="right_sidebar">3</div><!--end right_sidebar -->
    </div><!-- end main-wrap -->
    <div id="footer-wrapper">4</div><!-- end footer -->
</div><!--close page-wrapper-->

CSSは次のとおりです。

html, body {
    height: 100%;
}
body {
    margin: 0;
}
#page-wrapper {
    height: 100%;
    min-height: 300px; /* optional */
    width: 800px;
    margin: 0 auto;
    position: relative;
}
#header {
    position: relative;
    top: 5px;
    height: 100px;
    background-color: pink;
 }
#main-wrap {
    position: absolute;
    left: 0;
    right: 0;
    top: 105px;
    bottom: 100px;
    background-color: yellow;
}

#left_sidebar {
    float: left;
    width: 20%;
    height: 100%;
    background-color: green;
}

#main_contents {
    float: left;
    width: 55%;
    height: 100%;
    margin-left: 20px;
    margin-right: 20px;
    background-color: red;
}

#right_sidebar {
    float: left;
    width: 20%;
    height: 100%;
    background-color: lightblue;
}

#footer-wrapper {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100px;
    background-color: #d8d8d6;
}

http://jsfiddle.net/audetwebdesign/xMNUv/でデモ フィドルを参照してください。

#page-wrapper秘訣は、 をビュー ポートの高さいっぱいまで拡張することです。上下のマージンをゼロに設定して、垂直方向のスクロールを防ぎます。

#headerとは#footer-wrapperどちらも高さが 100px であるため、絶対配置を使用して を伸ばしてmain-wrapヘッダー要素とフッター要素の間のスペースを埋めることができるようになりました。

ヘッダーで を使用position: relativeして、必要に応じて上部の余白を開くことができます。

内で、#main-wrapサイドバーとコンテンツ要素をフロートさせて 3 列のレイアウトを形成できるようになりました。適用して、浮動要素を取得して高さheight: 100%を埋めます。#main-wrap

#page-wrapper列が崩れないように、高さの最小値を追加することができます。

コンテンツによっては、フロート列の高さがビュー ポートの高さによって制限されるため、フロート列がオーバーフローする場合があります。overflow: auto必要に応じて、浮動要素に追加することができます。

于 2013-09-05T22:38:10.440 に答える
0

親要素に固定の高さを設定しない限り、これを行うことはできません。これはおそらく望ましくありません。

IE 7以下を気にしない場合は、使用することをお勧めします

display: table-cell

作業例: http://codepen.io/anon/pen/fikct

于 2013-09-03T00:17:06.283 に答える