0

任意の数の div をラッパー div に水平に並べて配置し、ラップされた div の幅を固定せずにページ幅全体を埋めるようにするにはどうすればよいですか(テーブル幅を 100% に設定したときの html テーブル列の動作とまったく同じです)。

そして、可能な限りクロスブラウザ...

ありがとう

4

4 に答える 4

1

これはうまくいくようです。jquery を使用しているため、可能な限りクロス ブラウザーに対応しています。

http://jsfiddle.net/AmnsD/

ああ、SOはjsfiddleへのリンクだけを許可していません:だからここに例があります:

<style>
.inner1{background-color:#FF0000;float:left;height:25px;}
.inner2{background-color:#00FF00;float:left;height:25px;}
.inner3{background-color:#0000FF;float:left;height:25px;}
.inner4{background-color:#FFFF00;float:left;height:25px;}
</style>

<script>
$(document).ready(function(){
    $('#outer').children().each(function(index){
        $(this).css('width',100/$('#outer').children().length + '%');
    });
});​
</script>

<div id="outer">
    <div class="inner1">
        &nbsp;
    </div>
    <div class="inner2">
        &nbsp;
    </div>
    <div class="inner3">
        &nbsp;
    </div>
    <div class="inner4">
        &nbsp;
    </div>
</div>
于 2012-10-24T21:35:01.320 に答える
1

少しチートですが、次のように display:table-cell を使用して実行できます。

<style type="text/css" media="screen">
    body {
        margin:0;
        padding:0;
    }

    #wrap {
        background:black;
        display:table;
        padding:10px 0;
        width:100%;
    }
    .box {
        height:100px;
        display:table-cell;
    }

    .a {
        background:red;
    }

    .b {
        background:blue;
    }

    .c {
        background:green;
    }

    .d {
        background:yellow;
    }
 </style>

そしてHTMLはそうです。

<div id="wrap">
    <div class="box a">a</div>
    <div class="box b">b</div>
    <div class="box c">c</div>
    <div class="box d">d</div>
</div>
于 2012-10-24T21:47:18.773 に答える
0

あなたの問題は、レスポンシブ Web デザインとメディア クエリを使用して解決されます。

于 2012-10-24T22:04:35.137 に答える
0

これはあなたが探しているものかもしれないと思います: http://umaar.github.com/css-flexbox-demo/

編集: これは現在、非常にクロス ブラウザーでホバーです (ie9 では機能しません)。

于 2012-10-24T21:38:02.343 に答える