web-dev-qa-db-ja.com

divの自動高さ

ブラウザは、正確な高さを設定したときにのみdivを表示します。しかし、その内容に応じてサイズ変更可能なdivを作成したいと思います。試した高さ:自動および高さ:100%。助けにはなりません。

私のdivはそのように見えます。サイドバーとコンテンツのバックグラウンドdivです。

.wrapper
    {
        width: 80%;
        height:200px;
        max-width: 1260px;
        min-width: 780px;
        margin: 0 auto;     
        background-image:url(core/design/img/transfff.png);
        -moz-border-radius: 15px 15px 0px 0px;
        border-radius: 15px 15px 0px 0px;
    }

[〜#〜] update [〜#〜]私のhtmlは次のようになります

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style type="text/css">

body {
    font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
    background-image: url(core/design/img/bg.png);
    background-position:top left;
    background-size:100%;
    background-color:#fff;
    background-repeat:no-repeat;
    margin: 0;
    padding: 0;
    color: #000;
}


ul, ol, dl { 
    padding: 0;
    margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
    margin-top: 0;
    padding-right: 15px;
    padding-left: 15px; 
a img { 
    border: none;
}

a:link {
    color:#414958;
    text-decoration: underline; 
}
a:visited {
    color: #4E5869;
    text-decoration: underline;
}
a:hover, a:active, a:focus { 
    text-decoration: none;
}


.container {
    width: 80%;
    max-width: 1260px;
    min-width: 780px;
    margin: 0 auto; 
}

.wrapper
{
    width: 80%;
    height:200px;
    max-width: 1260px;
    min-width: 780px;
    margin: 0 auto; 
    background-image:url(core/design/img/transfff.png);
    -moz-border-radius: 15px 15px 0px 0px;
    border-radius: 15px 15px 0px 0px;
    overflow: visible
}

.header {
padding:20px;
}

.sidebar1 {
    float: left;
    width: 20%;

    padding-bottom: 10px;
}
.content {
    padding: 10px 0;
    width: 60%;
    float: left;
}
.sidebar2 {
    float: left;
    width: 20%;

    padding: 10px 0;
}

.content ul, .content ol { 
    padding: 0 15px 15px 40px; 
}


ul.nav {
    list-style: none; 
    border-top: 1px solid #666; 
    margin-bottom: 15px; 
}
ul.nav li {
    border-bottom: 1px solid #666; 
}
ul.nav a, ul.nav a:visited{
    padding: 5px 5px 5px 15px;
    display: block; 
    text-decoration: none;
    color: #000;
}
ul.nav a:hover, ul.nav a:active, ul.nav a:focus {
    background: #6F7D94;
    color: #FFF;
}

/* ~~The footer ~~ */
.footer {
    padding: 10px 0;
    position: relative;
    clear: both;
}


.fltrt {  
    float: right;
    margin-left: 8px;
}
.fltlft { 
    float: left;
    margin-right: 8px;
}
.clearfloat { /
    clear:both;
    height:0;
    font-size: 1px;
    line-height: 0px;
}
-->
</style><!--[if lte IE 7]>
<style>
.content { margin-right: -1px; } /* this 1px negative margin can be placed on any of the columns in this layout with the same corrective effect. */
ul.nav a { zoom: 1; }  /* the zoom property gives IE the hasLayout trigger it needs to correct extra whiltespace between the links */
</style>
<![endif]--></head>

<body>

<div class="container">
  <div class="header"><a href="#"><img src="core/design/img/logo.png" alt="Insert Logo Here" name="Insert_logo" width="438px" height="95" id="Insert_logo" style=" display:block; margin:0 auto;" /></a> 
    <!-- end .header --></div>
    <div class="wrapper">
  <div class="sidebar1">
</div>
  <div class="content">
    </div>
  <div class="sidebar2">
  </div>
    </div>
  <div class="footer">
  </div>
</div>
</body>
</html>
18
Tural Ali

divはコンテンツに応じて自然にサイズが変更されます。

Divに高さを設定しなかった場合、そのコンテンツを含むように拡大します。

この規則の例外は、divに浮動要素が含まれる場合です。この場合、含むdiv(ラッパー)がフロートをクリアすることを保証するために、少し余分に行う必要があります。

これを行う方法は次のとおりです。

#wrapper{
overflow:hidden;
}

または

#wrapper:after
{
content:".";
display:block;
clear:both;
visibility:hidden;
}

75
Jamie Dixon

div内のコンテンツがclear:bothスタイルで終了していることを確認してください

4
kleinohad

問題の最新の解決策は次のとおりです。

CSSファイルに、擬似セレクター:afterとともに。clearfixという次のクラスを記述します。

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

次に、HTMLで、。clearfixクラスを親Divに追加します。例えば:

<div class="clearfix">
    <div></div>
    <div></div>
</div>

常に機能するはずです。クラス名を。clearfixの代わりに。groupとして呼び出すと、コードがより意味的になります。二重引用符 ""の間のContentの値にドットやスペースを追加する必要はないことに注意してください。

ソース: http://css-snippets.com/page/2/

3
Ifti Mahmud

ジェイミーディクソンが以前に述べたように、フロート<div>は通常のフローから除外されます。まだ通常のフロー内にあるすべてのコンテンツは、それを完全に無視し、スペースを確保しません。

別の色のボーダーを配置してみてくださいborder:solid 1px orange;<div>要素が何をしているかを確認します。フロートを削除し、div内にダミーテキストを配置することから始めます。次に、1つずつスタイルを設定して、目的のレイアウトを取得します。

2
jim31415

this に従って、100%の高さを機能させるには、divが含まれる要素に高さを割り当てる必要があります。それはあなたのために働きますか?

2
Steve Wilkes