Bootstrap объединение строк (rowspan)
Я тестирую Twitter Bootstrap и застрял с
основные леса с рядами. Я пересматривал их документацию несколько раз, и я вижу вложенные столбцы, где вы можете в основном вложить столбцы в столбец, но я не могу найти
возможность объединения строк в одну и выровнять ее по столбцу рядом с несвязанными строками.
ниже изображение должно иллюстрировать то, что я хочу достичь.

только обходное решение, с которым я столкнулся, использует таблицы, но мне не нравится эта идея
как я считаю, что отзывчивость не будет работать с использованием таблиц.
У кого-нибудь есть элегантное решение для этого?
Большая часть веб-макета, который я делаю, будет нуждаться в прекрасном уровне гибкости, поэтому будет здорово, если я смогу подобрать что-то полезное здесь.
5 ответов:
Divs стекаются вертикально по умолчанию, поэтому нет необходимости в специальной обработке "строк" внутри столбца.
div { height:50px; } .short-div { height:25px; }<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" /> <div class="container"> <h1>Responsive Bootstrap</h1> <div class="row"> <div class="col-lg-5 col-md-5 col-sm-5 col-xs-5" style="background-color:red;">Span 5</div> <div class="col-lg-3 col-md-3 col-sm-3 col-xs-3" style="background-color:blue">Span 3</div> <div class="col-lg-2 col-md-2 col-sm-3 col-xs-2" style="padding:0px"> <div class="short-div" style="background-color:green">Span 2</div> <div class="short-div" style="background-color:purple">Span 2</div> </div> <div class="col-lg-2 col-md-2 col-sm-3 col-xs-2" style="background-color:yellow">Span 2</div> </div> </div> <div class="container-fluid"> <div class="row-fluid"> <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="short-div" style="background-color:#999">Span 6</div> <div class="short-div">Span 6</div> </div> <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6" style="background-color:#ccc">Span 6</div> </div> </div>здесь скрипка.
вы должны использовать вложенность столбца bootstrap.
посмотреть Bootstrap 3 или Bootstrap 4:
<div class="row"> <div class="col-md-5">Span 5</div> <div class="col-md-3">Span 3<br />second line</div> <div class="col-md-2"> <div class="row"> <div class="col-md-12">Span 2</div> </div> <div class="row"> <div class="col-md-12">Span 2</div> </div> </div> <div class="col-md-2">Span 2</div> </div> <div class="row"> <div class="col-md-6"> <div class="row"> <div class="col-md-12">Span 6</div> <div class="col-md-12">Span 6</div> </div> </div> <div class="col-md-6">Span 6</div> </div>http://jsfiddle.net/DRanJ/125/
(в скрипке экран, увеличить тестовый экран, чтобы увидеть результат, потому что я использую col-md -*, затем отзывчивые стеки столбцов)
Примечание: Я не уверен, что BS2 позволяет столбцы вложенности, но в ответ Павла проблемы, вложение столбцов не используется. Вы должны использовать его и избегать повторного использования css, в то время как bootstrap делает это хорошо.
высота столбцов автоматически, если вы добавляете вторую строку (как я делаю в моем примере), высота столбца адаптируется.
Примечание: это было для Bootstrap 2 (актуально, когда вопрос был задан).
вы можете сделать это с помощью
row-fluidчтобы сделать строку на основе жидкости (в процентах) внутри существующегоblock.<div class="row"> <div class="span5">span5</div> <div class="span3">span3</div> <div class="span2"> <div class="row-fluid"> <div class="span12">span2</div> <div class="span12">span2</div> </div> </div> <div class="span2">span2</div> </div> <div class="row"> <div class="span6"> <div class="row-fluid"> <div class="span12">span6</div> <div class="span12">span6</div> </div> </div> <div class="span6">span6</div> </div>здесь пример JSFiddle.
я заметил, что было нечетное левое поле, которое появляется (или не появляется) для пролетов внутри
row-fluidпосле первого. Это можно исправить с помощью небольшой настройки CSS (это тот же CSS то есть применяется к первому ребенку, расширяется до тех, кто прошел мимо первого ребенка):.row-fluid [class*="span"] { margin-left: 0; }
проверьте это. надеюсь, что это поможет вам в полной мере.
.row-fix { margin-bottom:20px;} .row-fix > [class*="span"]{ height:100px; background:#f1f1f1;} .row-fix .two-col{ background:none;} .two-col > [class*="col"]{ height:40px; background:#ccc;} .two-col > .col1{margin-bottom:20px;}
ответ пола, похоже, побеждает цель bootstrap; это реагирование на размер окна просмотра / экрана.
при вложении строк и столбцов вы можете достичь того же результата, сохраняя при этом отзывчивость.
вот актуальный ответ на эту проблему;
<div class="container-fluid"> <h1> Responsive Nested Bootstrap </h1> <div class="row"> <div class="col-md-5" style="background-color:red;">Span 5</div> <div class="col-md-3" style="background-color:blue;">Span 3</div> <div class="col-md-2"> <div class="row"> <div class="container" style="background-color:green;">Span 2</div> </div> <div class="row"> <div class="container" style="background-color:purple;">Span 2</div> </div> </div> <div class="col-md-2" style="background-color:yellow;">Span 2</div> </div> <div class="row"> <div class="col-md-6"> <div class="row"> <div class="container" style="background-color:yellow;">Span 6</div> </div> <div class="row"> <div class="container" style="background-color:green;">Span 6</div> </div> </div> <div class="col-md-6" style="background-color:red;">Span 6</div> </div> </div>вы можете просмотр codepen здесь.
Comments