コンテナ<div>
にいくつかのボタンがあるとしましょう:
<div class="cont">
<div class="button">Button 1</div>
<div class="button">Button 2</div>
<div class="button">Button 3</div>
<div class="button">Button 4</div>
<div style="clear:both"></div>
</div>
そしてこれにいくつかのCSSを割り当てました:
.cont{
background:#0F0;
width:400px;
height:40px;
line-height:40px;
}
.button{
background:#F00;
float:left;
height:inherit;
line-height:inherit;
}
背景色は、自分が何をしているかがわかるようにするためのものです。すべてのボタンを<div>
sを親<div>
に(同じ幅で)引き伸ばすJavaScriptを使用しない方法があるかどうか疑問に思っています。また、親<div>
を使用して自動的に幅を取得してほしいと思います。つまり、4つあるので.button
幅を25%に設定することもできますが、ボタンをさらに追加した場合は、自動的に新しい幅を取得する必要があります。
私は自分自身を十分に説明したことを願っています、私は周りを見回しましたが、これに合うものを見つけることができませんでした。これをCSSで実行できますか、それともJSジョブですか?
ありがとう。
display: table;
およびdisplay: table-cell;
で実行できます
テーブルに付随する悪い意味合いは知っていますが、テーブルマークアップを使用しておらず、divのact
をテーブルのように作成しているだけです。
デモを見る ここ
<div class="cont">
<div class="button">Button 1</div>
<div class="button">Button 2</div>
<div class="button">Button 3</div>
<div class="button">Button 4</div>
</div>
.cont{
background:#0F0;
width:400px;
height:40px;
line-height:40px;
display: table;
}
.button{
background:#F00;
display: table-cell;
}
これはCSSの完璧なユースケースです フレキシブルボックスモデル 。
HTML5 Rocks これについての素晴らしい紹介があります。
これにはベンダープレフィックスが必要であり、古いブラウザではサポートされていません。 Flexie があります。これは古いブラウザ用のポリフィルです。
HTMLボタンが少し奇妙であることがわかりました。たとえば、「text-align:center」はdiv内のボタンの位置を変更しますが、「margin:auto」は変更しません。また、ボタンのサイズを変更すると、スタイルが異なります(Chromeの場合)。
別の解決策は、クリック可能なdivを作成することです。この方法で、ボタンのスタイルを設定して、クロスブラウザーの外観を確認することもできます。 (HTML5)
<a href="http://example.com">
<div>
anything
</div>
</a>
参照: https://css-tricks.com/snippets/jquery/make-entire-div-clickable/