1

Liquid(15%,70%,15%) の 3 列の CSS レイアウトを動的に同じ高さの列にする方法を考えています。各列は動的に最も長い列の高さと一致します (つまり、各列の内容に応じて、列 1 が 2 および 3 よりも長い場合、列 2 および 3 は自動的に列 1 と同じ高さになります) これを達成する方法はありますか。 /holygrailで、同じ高さの列では機能しないと書かれています。CSSコードを変更して、まさにそれを行うことができるかどうか疑問に思っています。

CSS コード:

/*    Generated by http://www.cssportal.com    */

/*@import url("/robotics/css/reset.css");*/

html,body {
    background:url(background.jpg') no-repeat center center fixed;
    -webkit-background-size: cover; /* For WebKit*/
    -moz-background-size: cover;    /* Mozilla*/
    -o-background-size: cover;      /* Opera*/
    background-size: cover;         /* Generic*/
    font-family: Verdana, Arial, Helvetica, sans-serif;
    /*font-size: 13px;*/
    color:#FFFFFF;
    text-align:center;


}
ul {
text-align:center;
margin-left: -40px;
}
ul li {
    display:block;
font-size:10pt;
padding: 0px 15px 0px 15px;
}
ul li a{
margin: 0 auto;
}
ul li a:link {
color:#fff;
text-decoration:none;
}
ul li a:visited {
color:#fff;
text-decoration:none;
}
ul li a:hover{
color:#fff;
text-decoration:none;
}
ul li a:active{
color:#fff;
text-decoration:none;
}


p {
font-size: 10pt;
    padding: 10px;
}

#wrapper {
    width: 100%;
    min-width: 768px;
    /*max-width: 900px;*/
    margin: 0 auto;
}

#headerwrap {
    width: 100%;
    float: left;
    margin: 0 auto;
}

#header {
    height: 100px;
    /*border-radius: 10px;*/
    /*border: 1px solid #FFFFFF;*/
    margin: 5px;
}
#header img {
width: 70%;
    height: 100%;
float:left;
margin-left:15%;    

}
#contentliquid {
    float: left;
    width: 100%;
}

#contentwrap {
    margin-left: 15%;
    margin-right: 15%;
    float:left;
    width:70%;

}

#content {
    border-radius: 10px;
    border: 1px solid #FFFFFF;
    margin: 5px;
    height: 500px;
}

#leftcolumnwrap {
    width: 15%;
    margin-left:-100%;
    float: left;

}

#leftcolumn {
    border-radius: 10px;
    border: 1px solid #FFFFFF;
    margin: 5px;height: 500px;
}

#rightcolumnwrap {
    width: 15%;
    margin-left: -15%;
    float: left;
}

#rightcolumn {
    border-radius: 10px;
    border: 1px solid #FFFFFF;
    margin: 5px;height: 275px;
}

#footerwrap {
    width: 100%;
    float: left;
    margin: 0 auto;
    clear: both;
}

#footer {
    height: 100px;
    border-radius: 10px;
    border: 1px solid #FFFFFF;
    margin: 5px;
}

HTML ページ:

<html>

<head>
    <link rel="stylesheet" type="text/css" href="page.css">
    <title>Sample</title>
</head>
<body>
<div id="wrapper">
<div id="headerwrap">
<div id="header">
    <p>This is the header.</p>
</div>
</div>
<div id="contentliquid"><div id="contentwrap">
<div id="content">
    <p>This is the center column. Please make me the same height as everyone else!</p>
</div>
</div></div>
<div id="leftcolumnwrap">
<div id="leftcolumn">
    <p>This is the left column. Please make me the same height as everyone else!</p>
</div>
</div>
<div id="rightcolumnwrap">
<div id="rightcolumn">
    <p>This is the right column. Please make me the same height as everyone else!</p>
</div>
</div>
<div id="footerwrap">
<div id="footer">
    <p>This is the footer.</p>
</div>
</div>
</div>

すべての列を動的に同じ高さにする方法はありますか?

4

2 に答える 2

3

使用してみてくださいdisplay: table-cell;(これには、親要素をdisplay: table;テーブルに設定する必要があります) セル要素は常にコンテナーの高さを共有し、コンテナー (特に設定されていない場合) は常に最大の子の高さを持ちます。

例として、このフィドルを確認してください。

http://jsfiddle.net/kLMtb/

あなたのhtmlも少し再フォーマットする必要があるかもしれません。その例でいくつか変更したので、見てください。主に、中央の列を html の左右の列の間に配置する必要があります。

css テーブルの表示プロパティの説明については、これをご覧ください。

http://ajaxian.com/archives/display-table

于 2013-10-05T20:09:18.997 に答える
0

同じ高さの列を実現する方法は 2 つあります。

1) CSS テーブル

フィドル

マークアップ:

<div id="header">
    <p>This is the header.</p>
</div>


<div class="wpr">
    <div id="leftcolumn">
        <p>This is the left column. Please make me the same height as everyone else!</p>
    </div>
    <div id="contentliquid">
        <p>Some content</p>
    </div> 

    <div id="rightcolumn">
        <p>This is the right column. Please make me the same height as everyone else!</p>
    </div>
</div>
<div id="footer">
    <p>This is the footer.</p>
</div>

CSS

#header {
    height: 100px;
    background: orange;
}
.wpr
{
    display:table;
}
#leftcolumn
{
    width: 200px;
    background: aqua;
    display:table-cell;
}
#rightcolumn
{
    width: 200px;
    background: pink;
    display:table-cell;
}

#contentliquid {
    background: yellow;
    overflow:hidden;
    display:table-cell;
}

#footer
{
    clear:both;
    background: green;
}

2)模造柱

repeat-y 付きの背景画像が必要です (上記の記事を読んでください)。

このようなもの:

background: #ccc url(../images/bg_birch_800.gif) repeat-y 50% 0;
于 2013-10-05T20:28:49.783 に答える