Плавающие divs в макете Bootstrap
Мне нужно сделать что-то подобное, используя Boostrap. Содержимое "Fluid" на странице с двумя виджетами внутри него - сначала в верхнем правом и втором в левом нижнем.
![enter image description here]()
Widget1 легко - мне просто нужен class= "pull-right". Но что делать со вторым, чтобы получить его в нижней части страницы, поддерживая "Содержимое"?
style="bottom:0;"
не работает:
Имея этот код
<div class="container-fluid">
<div class="row-fluid">
<div class="offset1 span8 pull-right">
... Widget 1...
</div>
<div class="offset1 span8 pull-left" style="bottom:0;">
... Widget 2...
</div>
.... a lot of content ....
</div>
</div><!--/.fluid-container-->
У меня есть это в результате:
![enter image description here]()
Перемещение Widget 2 также не помогает:
<div class="container-fluid">
<div class="row-fluid">
<div class="offset1 span8 pull-right">
... Widget 1...
</div>
.... a lot of content ....
<div class="span8 pull-left" style="bottom:0;margin-left: 0;">
... Widget 2...
</div>
</div>
</div><!--/.fluid-container-->
![enter image description here]()
Любые идеи, как это сделать без грязных хаков (например, я мог бы использовать JavaScript для исправления положения Widget2)?
Или (ok, ok) с ними?
Ответы
Ответ 1
Из всего, что я прочитал, вы не можете делать именно то, что хотите, без javascript.
Если вы плаваете влево перед текстом
<div style="float:left;">widget</div> here is some CONTENT, etc.
Ваше содержимое обертывается, как ожидалось. Но ваш виджет находится в верхнем левом углу. Если вместо этого поместить float после содержимого
here is some CONTENT, etc. <div style="float:left;">widget</div>
Затем ваш контент будет переносить последнюю строку справа от виджета, если последняя строка содержимого может поместиться справа от виджета, иначе завершение не будет завершено. Для того, чтобы границы и фоны фактически включали плаваемую область в предыдущем примере, большинство людей добавляют:
here is some CONTENT, etc. <div style="float:left;">widget</div><div style="clear:both;"></div>
В вашем вопросе вы используете bootstrap, который просто добавляет row-fluid::after { content: ""}
, который устраняет проблему границы/фона.
Перемещение вашего контента приведет к обходу одной строки:
http://jsfiddle.net/jJNPY/34/
<div class="container-fluid">
<div class="row-fluid">
<div class="offset1 span8 pull-right">
... Widget 1...
</div>
.... a lot of content ....
<div class="span8" style="margin-left: 0;">
... Widget 2...
</div>
</div>
</div><!--/.fluid-container-->
Ответ 2
Я понимаю, что вы хотите, чтобы Widget2 делил нижнюю границу с содержимым div. Попробуйте добавить
style="position: relative; bottom: 0px"
для вашего тега Widget2. Также попробуйте:
style="position: absolute; bottom: 0px"
если вы хотите привязать виджет к нижней части экрана.
Я немного ржавый с CSS, возможно, правильный стиль - "margin-bottom: 0px" вместо "bottom: 0px", попробуйте. Также класс pull-right, кажется, добавляет к элементу стиль "float = right", и я не уверен, как это ведет себя с "position: relative" и "position: absolute", я бы удалил его.