В чем разница
<br style="clear:both;"/>
против
<div style="clear:both;"/>
??
Кроме того, я думал,
<div style="clear:both;"/>
- хороший способ очистки, но
<div style="clear:both;"> </div>
надлежащим образом?
В чем разница
<br style="clear:both;"/>
против
<div style="clear:both;"/>
??
Кроме того, я думал,
<div style="clear:both;"/>
- хороший способ очистки, но
<div style="clear:both;"> </div>
надлежащим образом?
Разница заключается в том, какие другие атрибуты стиля вы наследуете. Конечно, наследуется от <br>
, а другой - от <div>
.
Обычно <div>
не имеет специальных импотенций стиля, кроме display:block
, тогда как <br>
подразумевает разрыв строки и некоторую ненулевую высоту (связанную с текущей высотой шрифта).
Но часто (например, с помощью вездесущей методики css-reset
) нет никакого различия. Поэтому выберите тот, который делает наиболее смысловой смысл.
[ОБНОВЛЕНИЕ]
Для закрытия тегов используйте <div></div>
, а не <div/>
. Вот почему.
Благодаря комментариям Себастьян Селис и ephemient для исправления "закрытия тега".
Это стиль, который я использую для очистки:
.Clear { clear: both; height: 0; overflow: hidden; }
Использование:
<div class="Clear"></div>
Это не займет лишнего места на странице, так как высота равна нулю.
В Internet Explorer странная идея, что содержание каждого элемента должно быть как минимум на один символ, а другая странная идея, что каждый элемент должен быть таким же высоким, как и контент. Использование overflow: hidden
не позволяет содержимому влиять на размер элемента.
Я бы использовал:
<p class="clear"></p>
и в вашем CSS просто добавьте:
.clear {clear:both; height:0px; font-size:1px;}
/* font-size:0px; does not work well on IE7, it works in IE8 and all other browsers. */
Можно сказать, почему бы и нет:
<br class="clear">
Обычно я использую класс clear
после float:left
элементов, а при использовании <br>
вместо <p>
они, похоже, не работают хорошо на IE7, они не понимают, как предполагалось, и на Safari4/Chrome они добавляют нежелательное пространство. У меня не было времени, чтобы лучше исследовать эту проблему, так что это может быть просто ошибка в моем дизайне, все, что я знаю, <p>
в этом случае, похоже, более кросс-браузер.
Ну, нет разницы, в зависимости от унаследованных стилей.
Эти ссылки говорят еще несколько, и рекомендует: http://www.positioniseverything.net/easyclearing.html
Единственное отличие, о котором я могу думать здесь, это то, что <div>
является элементом уровня блока, а <br>
является элементом линейного уровня.
Но <br>
фактически ведет себя как элемент блочного уровня, за исключением того, что он выполняется с помощью свойств line-height
и font-size
CSS.
По-моему, <br style="clear:both;"/>
- это более правильный способ поместить разрыв строки на вашей странице, главным образом потому, что он широко признан и легко идентифицируется другими, которые могут быть не знакомы с вашей разметкой.
Если вы пишете (действительный) XHTML, вам не нужно использовать закрывающий тег, но самозакрывающиеся теги div не работают во всех браузерах, поэтому вы все равно должны его использовать. т.е. ваш пример:
`<div style="clear:both;"> </div>`
Это действительный XHTML (см. html vs xhtml), но не работает во всех браузерах, поэтому вы должны придерживаться вышеуказанного:
<ы > <div style="clear:both;" />
С >
Кроме того, для того, что стоит тег <br>
, устарел в пользу тега <line>
(см. запись w3.org на <br/>
тег)
Это то, что я всегда использую:
<style type="text/css">
.clearing {
height: 0;
line-height: 0;
font-size: 0;
clear: both;
overflow:hidden;
}
</style>
И где мне нужна очистка:
<div class="clearing"></div>
Вы также можете быть заинтересованы в контейнерах для самоочистки: http://www.positioniseverything.net/easyclearing.html
РЕДАКТИРОВАТЬ: добавлено "переполнение: скрытое" по предложению с другого плаката ответа.
Вам нужно быть осторожным с тегом/на теге.
У меня были проблемы с косой чертой на <script> тег, завершаемый < script language = "javascript" src= "MyScripts.js" / > путь. Хотя большинство синтаксических анализаторов, совместимых с xml, будут принимать оба.
<script> должен заканчиваться на </ script >
.clear {clear: both; font-size: 0px; line-height: 0px; высота: 0px; переполнение: скрытый; }
Использование
"br" иногда имеет побочные эффекты в браузерах Opera и IE, поэтому вам следует избегать использования
<br />
является встроенным элементом, где <div>
является блочным элементом. Во всяком случае, я лично предпочитаю использовать <hr class="clear">
, я считаю, что он более семантически адекватен.
Все методы плохие. Используйте CSS, чтобы изменить внешний вид вашей страницы. Есть много способов сделать то же самое с CSS. Например, "переполнение: скрытое"; на родительский элемент.
Вы также можете использовать..