CSSbox-sizing.
には、ページ上の要素の合計幅を決定するというプロパティがあります。デフォルト値はですcontent-box
。これには、要素のパディング、マージン、または境界線は含まれません。
したがって、を設定しdiv
てすべての周りwidth: 500px
に20px
パディングを設定すると540px
、Webサイト(500 + 20 + 20)で使用されます。
これが問題の原因です。Bootstrapは、上記の例のように設定された幅を計算しますが、これらには境界線がありません。Bootstrapはパズルのようにぴったり合うので、片側に境界線を追加すると、合計幅が501pxになり(上記の例を続ける)、レイアウトが壊れます。
これを修正する最も簡単な方法は、を調整することbox-sizing
です。使用する値はですbox-sizing: border-box
。これには、ボックス要素のパディングと境界線が含まれます。ボックスサイズについて詳しくは、こちらをご覧ください。
このソリューションの問題は、IE8+でのみ機能することです。したがって、より深いIEサポートが必要な場合は、境界を考慮してブートストラップ幅をオーバーライドする必要があります。
新しい幅を計算する方法の例を示すために、Bootstrapが要素に設定する幅を確認することから始めます。span6
それがaであり、幅がであるとしましょう320px
(これは純粋に仮説であり、span6の実際の幅はBootstrapの特定の構成によって異なります)。右側に20pxのパディングを使用して単一の境界線を追加する場合は、このCSSをスタイルシートに記述します。
.span6 {
padding-right: 20px;
border-right: 1px solid #ddd;
width: 299px;
}
ここで、新しい幅は次のように計算されます。
old width - padding - border