短縮版
水平マージンを設定しないと、私のコードはうまく機能します。これが、私のコードが要素の幅を取得および設定するために .width() を使用する理由ですが、読み取り専用であるため .outerWidth() で同じことを行うことはできません。設定する方法はありますか?
ロングバージョン
さまざまな幅のボタン ( を使用float: left
) が多数あり、適切で最適化されたボタン テーブルを作成するために、それらのすべてに単一の幅が必要です。
だから私はこれを書いた:
buttons = $('.button-table > button');
maxWidth = Math.max.apply(
Math,
buttons.map(function(){
return $(this).width();
}).get()
);
columns = Math.floor($('#container').width()/maxWidth);
buttons.width(100/columns+'%');
このコードは機能しますが、ボタンの水平マージンを設定すると、最後のものが次の行にシフトします。
注: このコードを使用すると、コンテナーの右端にいくつかのピクセルが残っていることがよくあるため、パーセンテージを好みます (別の色を使用してそれらを見ることができます)。
buttons.width(Math.floor($('.button-table').width()/columns));
ノート
これはスタック オーバーフローに関する私の最初の質問です。このプラットフォームを使用して間違いを犯した場合はすみません。