私はbootstrap=で作業を始めたばかりで、目標を達成する方法がわかりません。
この画像にあるように、溝がすべて均等になるようにしたい:
デフォルトでは、これらは次のようになります。列の間にある縦の溝(青でマーク)は、横と外側の溝の2倍です:
これを解決するための最善の方法についての助けをいただければ幸いです。
試してください:
.row {
margin-left: 0;
margin-right: 0;
}
すべての列の両側に15ピクセルのパディングがあります。これにより、30ピクセルのガターが作成されます。 sm-gridの場合、コンテナクラスは970px(((940px + @ grid-Gutter-width)))になります。すべての列の幅は940/12です。結果として生じるグリッドの両側の@ grid-Gutter-width/2は、負のマージン-15px;で非表示になります。この負の左マージンを取り消すと、グリッドの両側に30ピクセルのガターが設定されます。このガターは、15ピクセルの列のパディング+ 15ピクセルの静止グリッドスペースで構築されます。
更新
@ElwoodPの回答に応じて、次のコードを検討してください。
<div class="container" style="background-color:darkblue;">
<div class="row" style="background-color:yellow;">
<div class="col-md-9" style="background-color:green;">
<div style="background-color:lightblue;">div 1: .col-md-9</div>
<div class="row" style="background-color:orange;">
<div class="col-md-6" style="background-color:red;">
<div style="background-color:lightblue;">div 2: .col-md-6</div>
</div>
<div class="col-md-6" style="background-color:red;">
<div style="background-color:lightblue;">div 2: .col-md-6</div>
</div>
</div>
</div>
<div class="col-md-3" style="background-color:green;">
<div style="background-color:lightblue;">div 1: .col-md-3</div>
</div>
</div>
</div>
ネストの場合、.rowクラスの操作は実際にサブグリッドに影響します。良いか悪いかは、サブグリッドに対する期待/要件に依存します。 .row
のマージンを変更しても、サブグリッドは破損しません。
.row
クラスのマージンで:
.row {
margin-left: 0;
margin-right: 0;
}
.container
クラスのパディングで:
.container {
padding-left:30px;
padding-right:30px;
}
サブグリッドは.container
クラス内にラップしないでください。
Bassの答えが正しいとは思わない。行の余白に触れるのはなぜですか?行の端にある列の列パディングをオフセットするための負のマージンがあります。これをいじると、ネストされた行が壊れます。
答えは簡単です。コンテナのパディングをガターサイズに等しくするだけです。
例:デフォルトのブートストラップの場合:
.container {
padding-left:30px;
padding-right:30px;
}
デフォルトの動作(Gutterを使用)を維持し、次のようなタスクのクラスをCSSスタイルシートに追加できます。
.no-Gutter > [class*='col-'] {
padding-right:0;
padding-left:0;
}
HTMLで使用する方法は次のとおりです。
<div class="row no-Gutter">
<div class="col-md-4">
...
</div>
<div class="col-md-4">
...
</div>
<div class="col-md-4">
...
</div>
</div>
この問題に直面して、CSSスタイルシートに以下を追加しました。
#mainContent .container {
padding-left:16px;
padding-right:16px;
}
#mainContent .row {
margin-left: -8px;
margin-right: -8px;
}
#mainContent .col-xs-1, #mainContent .col-sm-1, #mainContent .col-md-1, #mainContent .col-lg-1, #mainContent .col-xs-2, #mainContent .col-sm-2, #mainContent .col-md-2, #mainContent .col-lg-2, #mainContent .col-xs-3, #mainContent .col-sm-3, #mainContent .col-md-3, #mainContent .col-lg-3, #mainContent .col-xs-4, #mainContent .col-sm-4, #mainContent .col-md-4, #mainContent .col-lg-4, #mainContent .col-xs-5, #mainContent .col-sm-5, #mainContent .col-md-5, #mainContent .col-lg-5, #mainContent .col-xs-6, #mainContent .col-sm-6, #mainContent .col-md-6, #mainContent .col-lg-6, #mainContent .col-xs-7, #mainContent .col-sm-7, #mainContent .col-md-7, #mainContent .col-lg-7, #mainContent .col-xs-8, #mainContent .col-sm-8, #mainContent .col-md-8, #mainContent .col-lg-8, #mainContent .col-xs-9, #mainContent .col-sm-9, #mainContent .col-md-9, #mainContent .col-lg-9, #mainContent .col-xs-10, #mainContent .col-sm-10, #mainContent .col-md-10, #mainContent .col-lg-10, #mainContent .col-xs-11, #mainContent .col-sm-11, #mainContent .col-md-11, #mainContent .col-lg-11, #mainContent .col-xs-12, #mainContent .col-sm-12, #mainContent .col-md-12, #mainContent .col-lg-12
{
padding-left: 8px;
padding-right: 8px;
}
これはデフォルトのbootstrap=スタイリングをオーバーライドし、左右とガターの幅を等しくします。
これらのヘルパークラスをstylesheet.lessに追加します( http://less2css.org/ を使用してCSSにコンパイルできます)
.row.Gutter-0 {
margin-left: 0;
margin-right: 0;
[class*="col-"] {
padding-left: 0;
padding-right: 0;
}
}
.row.Gutter-10 {
margin-left: -5px;
margin-right: -5px;
[class*="col-"] {
padding-left: 5px;
padding-right: 5px;
}
}
.row.Gutter-20 {
margin-left: -10px;
margin-right: -10px;
[class*="col-"] {
padding-left: 10px;
padding-right: 10px;
}
}
HTMLで使用する方法は次のとおりです。
<div class="row Gutter-0">
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
</div>
<div class="row Gutter-10">
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
</div>
<div class="row Gutter-20">
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
<div class="col-sm-3 col-md-3 col-lg-3">
</div>
</div>
私はこの問題に悩まされていましたが、私の解決策は、希望する実際のガターサイズをSCSSで指定できるミックスインを作成することでした...
ソリューション:1)
@mixin add-Gutter($size) {
margin-right: -$size;
margin-left: -$size;
> [class*="col-"] {
padding-right: $size;
padding-left: $size;
}
}
.that-special-row{
@include add-Gutter(7px);
}
そしてそれを使用するには...
<div class="row that-special-row"></div>
実際の解決策は、githubで言及されている この問題 から生じたもので、同じ問題に対処していると思います。
解決策:2)
別の解決策は、単にカスタムCSSクラスを作成することです
.small-gutters {
margin-right: -10px;
margin-left: -10px;
> [class*="col-"] {
padding-right: 10px;
padding-left: 10px;
}
}
お役に立てば幸いです!
ブートストラップ3が導入されましたrow-no-gutters
v3.4.0で
https://getbootstrap.com/docs/3.4/css/#grid-remove-gutters
溝なしの列を作成し、溝を入れたい部分のために、溝の内側に列を作成できます。
独自のプロジェクトでsassを使用する場合は、ブートストラップの_variables.scssファイルからsass変数をコピーして、次のように独自のプロジェクトsassファイルにデフォルトのbootstrap=ガターサイズを上書きできます。
// Grid columns
//
// Set the number of columns and specify the width of the gutters.
$grid-Gutter-width-base: 50px !default;
$grid-Gutter-widths: (
xs: $grid-Gutter-width-base,
sm: $grid-Gutter-width-base,
md: $grid-Gutter-width-base,
lg: $grid-Gutter-width-base,
xl: $grid-Gutter-width-base
) !default;
これで、溝は30pxではなく50pxになります。ガターサイズを調整する最もクリーンな方法であることがわかりました。
@Bass Jobsenと@ElwoodPは、この質問に逆に答えようとしました。外側の余白に側溝と同じDOUBLEサイズを与えました。 OP(および私も)は、すべての場所でシングルサイズのガターを持つ方法を探していました。そのための正しいCSS調整を次に示します。
.row {
margin-left: -7px;
margin-right: -7px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
padding-left: 7px;
padding-right: 7px;
}
.container {
padding-left: 14px;
padding-right: 14px;
}
これにより、14px
すべての場所での溝と外側マージン。