Bootstrap 3 смещение справа не слева
в отношении BS 3 Если бы я хотел только узкий столбец контента справа, я мог бы использовать класс смещения 9 и столбец 3.
однако, что делать, если я хотел наоборот и на левой стороне? Есть ли правильный способ сделать это в BS или я должен просто использовать свои собственные методы CSS? Я думал о создании столбца 3 с моим содержанием и просто пустой столбец 9.
6 ответов:
строки начальной загрузки всегда содержат свои поплавки и создают новые строки. Вам не нужно беспокоиться о заполнении пустых столбцов, просто убедитесь, что они не составляют более 12.
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> <div class="container"> <div class="row"> <div class="col-xs-3 col-xs-offset-9"> I'm a right column of 3 </div> </div> <div class="row"> <div class="col-xs-3"> I'm a left column of 3 </div> </div> <div class="panel panel-default"> <div class="panel-body"> And I'm some content below both columns </div> </div> </div>
Я использую следующий простой пользовательский CSS, который я написал для достижения этой цели.
.col-xs-offset-right-12 { margin-right: 100%; } .col-xs-offset-right-11 { margin-right: 91.66666667%; } .col-xs-offset-right-10 { margin-right: 83.33333333%; } .col-xs-offset-right-9 { margin-right: 75%; } .col-xs-offset-right-8 { margin-right: 66.66666667%; } .col-xs-offset-right-7 { margin-right: 58.33333333%; } .col-xs-offset-right-6 { margin-right: 50%; } .col-xs-offset-right-5 { margin-right: 41.66666667%; } .col-xs-offset-right-4 { margin-right: 33.33333333%; } .col-xs-offset-right-3 { margin-right: 25%; } .col-xs-offset-right-2 { margin-right: 16.66666667%; } .col-xs-offset-right-1 { margin-right: 8.33333333%; } .col-xs-offset-right-0 { margin-right: 0; } @media (min-width: 768px) { .col-sm-offset-right-12 { margin-right: 100%; } .col-sm-offset-right-11 { margin-right: 91.66666667%; } .col-sm-offset-right-10 { margin-right: 83.33333333%; } .col-sm-offset-right-9 { margin-right: 75%; } .col-sm-offset-right-8 { margin-right: 66.66666667%; } .col-sm-offset-right-7 { margin-right: 58.33333333%; } .col-sm-offset-right-6 { margin-right: 50%; } .col-sm-offset-right-5 { margin-right: 41.66666667%; } .col-sm-offset-right-4 { margin-right: 33.33333333%; } .col-sm-offset-right-3 { margin-right: 25%; } .col-sm-offset-right-2 { margin-right: 16.66666667%; } .col-sm-offset-right-1 { margin-right: 8.33333333%; } .col-sm-offset-right-0 { margin-right: 0; } } @media (min-width: 992px) { .col-md-offset-right-12 { margin-right: 100%; } .col-md-offset-right-11 { margin-right: 91.66666667%; } .col-md-offset-right-10 { margin-right: 83.33333333%; } .col-md-offset-right-9 { margin-right: 75%; } .col-md-offset-right-8 { margin-right: 66.66666667%; } .col-md-offset-right-7 { margin-right: 58.33333333%; } .col-md-offset-right-6 { margin-right: 50%; } .col-md-offset-right-5 { margin-right: 41.66666667%; } .col-md-offset-right-4 { margin-right: 33.33333333%; } .col-md-offset-right-3 { margin-right: 25%; } .col-md-offset-right-2 { margin-right: 16.66666667%; } .col-md-offset-right-1 { margin-right: 8.33333333%; } .col-md-offset-right-0 { margin-right: 0; } } @media (min-width: 1200px) { .col-lg-offset-right-12 { margin-right: 100%; } .col-lg-offset-right-11 { margin-right: 91.66666667%; } .col-lg-offset-right-10 { margin-right: 83.33333333%; } .col-lg-offset-right-9 { margin-right: 75%; } .col-lg-offset-right-8 { margin-right: 66.66666667%; } .col-lg-offset-right-7 { margin-right: 58.33333333%; } .col-lg-offset-right-6 { margin-right: 50%; } .col-lg-offset-right-5 { margin-right: 41.66666667%; } .col-lg-offset-right-4 { margin-right: 33.33333333%; } .col-lg-offset-right-3 { margin-right: 25%; } .col-lg-offset-right-2 { margin-right: 16.66666667%; } .col-lg-offset-right-1 { margin-right: 8.33333333%; } .col-lg-offset-right-0 { margin-right: 0; } }
я изменил Bootstrap SASS (v3.3.5) на основе Rukshan это
добавить это в конце
calc-grid-columnmixin inmixins/_grid-framework.scss, чуть ниже$type == offsetесли условие.@if ($type == offset-right) { .col-#{$class}-offset-right-#{$index} { margin-right: percentage(($index / $grid-columns)); } }изменить
make-gridmixin inmixins/_grid-framework.scssдля созданияoffset-rightклассы.// Create grid for specific class @mixin make-grid($class) { @include float-grid-columns($class); @include loop-grid-columns($grid-columns, $class, width); @include loop-grid-columns($grid-columns, $class, pull); @include loop-grid-columns($grid-columns, $class, push); @include loop-grid-columns($grid-columns, $class, offset); @include loop-grid-columns($grid-columns, $class, offset-right); }затем вы можете использовать классы, такие как
col-sm-offset-right-2иcol-md-offset-right-1
<div class="row"> <div class="col-md-10 col-md-pull-2"> col-md-10 col-md-pull-2 </div> <div class="col-md-10 col-md-pull-2"> col-md-10 col-md-pull-2 </div> </div>
на основе ответ Венея! вот еще один пример
.col-offset-right(@i, @type) when (@i >= 0) { .col-@{type}-offset-right-@{i} { margin-right: percentage((@i / @grid-columns)); } .col-offset-right(@i - 1, @type); }; .col-offset-right(@grid-columns, xs); .col-offset-right(@grid-columns, sm); .col-offset-right(@grid-columns, md); .col-offset-right(@grid-columns, lg);
вот то же самое решение, что и Rukshan, но в sass (чтобы сохранить конфигурацию сетки) для особого случая, который не работает с решением Ross Allen (когда у вас не может быть родительского div.строки)
@mixin make-grid-offset-right($class) { @for $index from 0 through $grid-columns { .col-#{$class}-offset-right-#{$index} { margin-right: percentage(($index / $grid-columns)); } } } @include make-grid-offset-right(xs); @media (min-width: $screen-sm-min) { @include make-grid-offset-right(sm); } @media (min-width: $screen-md-min) { @include make-grid-offset-right(md); } @media (min-width: $screen-lg-min) { @include make-grid-offset-right(lg); }
Comments