Ответ 1
Вы можете использовать div с атрибутом float: left;
, который заставит их отображаться горизонтально рядом друг с другом, но тогда вам может понадобиться очистка следующих элементов, чтобы убедиться, что они не перекрываются.
Моя единственная проблема заключается в том, что они выстраиваются в трех направлениях и имеют равное расстояние. По-видимому, пролеты не могут иметь ширину и divs (и промежутки с дисплеем: блок) не отображаются горизонтально рядом друг с другом. Предложения?
<div style='width:30%; text-align:center; float:left; clear:both;'>
Это то, что у меня есть.
Вы можете использовать div с атрибутом float: left;
, который заставит их отображаться горизонтально рядом друг с другом, но тогда вам может понадобиться очистка следующих элементов, чтобы убедиться, что они не перекрываются.
Вы можете использовать
.floatybox {
display: inline-block;
width: 123px;
}
Если вам нужно только поддерживать браузеры, поддерживающие встроенные блоки. Встроенные блоки могут иметь ширину, но являются встроенными, например, элементами кнопок.
О, и вы можете добавить вертикальное выравнивание: сверху по элементам, чтобы убедиться, что все выстроено в линию
<style>
#whatever div {
display: inline;
margin: 0 1em 0 1em;
width: 30%;
}
</style>
<div id="whatever">
<div>content</div>
<div>content</div>
<div>content</div>
</div>
Технически, Span - это встроенный элемент, однако он может иметь ширину, вам просто нужно сначала установить свойство отображения. Однако в этом контексте div, вероятно, более уместен, так как я предполагаю, что вы хотите заполнить эти divs контентом.
Одна вещь, которую вы определенно не хотите делать, - это установить clear:both
на div. Установка такого значения будет означать, что браузер не позволит элементам сидеть на той же линии, что и они. В результате ваши элементы будут складываться.
Обратите внимание, что использование display:inline
. Это связано с ошибкой по удвоению маржи. Вы могли бы решить это другими способами, если это необходимо, например, условные таблицы стилей.
Я добавил обертку (#whatever), поскольку я предполагаю, что это будут не единственные элементы на странице, поэтому вам почти наверняка придется отделить их от других элементов страницы.
В любом случае, я надеюсь, что это будет полезно.
вы можете сделать:
<div style="float: left;"></div>
или
<div style="display: inline;"></div>
Любой из них приведет к тому, что divs будут разбиты по горизонтали.
Я бы сделал это примерно так, потому что он дает вам 3 столбца размера, даже интервалы и (даже) шкалы. Примечание.. Это не проверено, поэтому может потребоваться настройка для старых браузеров.
<style>
html, body {
margin: 0;
padding: 0;
}
.content {
float: left;
width: 30%;
border:none;
}
.rightcontent {
float: right;
width: 30%;
border:none
}
.hspacer {
width:5%;
float:left;
}
.clear {
clear:both;
}
</style>
<div class="content">content</div>
<div class="hspacer"> </div>
<div class="content">content</div>
<div class="hspacer"> </div>
<div class="rightcontent">content</div>
<div class="clear"></div>
Что вам может понравиться - это найти макеты на основе CSS-сетки. Этот метод макета включает указание некоторых классов CSS для выравнивания содержимого страницы с сеткой. Он более тесно связан с раскладкой print-bsed, чем веб-интерфейс, но это метод, используемый на многих веб-сайтах для компоновки содержимого в структуру без необходимости прибегать к таблицам.
Попробуйте это для starters из Smashing Magazine.
Я бы использовал:
<style>
.all {
display: table;
}
.maincontent {
float: left;
width: 60%;
}
.sidebox {
float: right;
width: 30%;
}
<div class="all">
<div class="maincontent">
MainContent
</div>
<div class="sidebox">
SideboxContent
</div>
</div>
Это первый раз, когда я использую этот "инструмент кода" из переполнения... но shoul делает это до сих пор...
Посмотрите на свойство css float. http://w3schools.com/css/pr_class_float.asp
Он работает с блочными элементами, такими как div. В качестве альтернативы, что вы пытаетесь отобразить, таблицы не являются злыми, если вы действительно пытаетесь показать таблицу некоторой информации.
Я попытался бы дать им все атрибут display: block;
и используя float: left;
.
Затем вы можете установить width
и/или height
по своему усмотрению. Вы даже можете указать некоторые правила вертикального выравнивания.
<!-- CSS -->
<style rel="stylesheet" type="text/css">
.all { display: table; }
.menu { float: left; width: 30%; }
.content { margin-left: 35%; }
</style>
<!-- HTML -->
<div class="all">
<div class="menu">Menu</div>
<div class="content">Content</div>
</div>
другое...
попробуйте использовать float: left;
или right;
, измените width
на другие значения... it shoul work... также обратите внимание, что 10%, что arent, используемый div его betwen them... извините за плохой английский:)