Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   совсем уже запутался с тонкостями (https://javascript.ru/forum/xhtml-html-css/7269-sovsem-uzhe-zaputalsya-s-tonkostyami.html)

micscr 23.01.2010 17:02

совсем уже запутался с тонкостями
 
Хелло.
Советуют( в надежных источниках) для блочных элементов у которых указан width не указывать им padding, т.к. в IE width учитывает padding и будет не та общая ширина как запланировал. Причем это при "нестандартном" режиме и если уж надо то имеются хаки для подмены width.
Тестю в IE6 вроде все нормально (и в режиме без DOCTYPE тоже)
div.cl1 {
  width:100px;
  background:red;
  border:10px solid yellow;
  padding:20px;
  margin:20px;
 
}

160 в сумме везде выходит.
Может это для IE5.5 и меньше? В чем вообще соль?
Спасибо за ответ.

Octane 23.01.2010 17:17

IE < 6 еще не знали ни о каких Standards Compliance Mode, работали, как придется, более новые браузеры стали стараться следовать стандартам, а для обратной совместимости со старыми сайтам, у которых не указан DOCTYPE, был введен Quirks Mode.

В Quirks Mode IE использует режим расчета размеров border-box:
Цитата:

Сообщение от MDC
The width and height properties include the padding and border, but not the margin. This is the box model used by Internet Explorer when the document is not in standards-compliant mode.

А по стандартам content-box:
Цитата:

Сообщение от MDC
This is the default style as specified by the CSS standard. The width and height properties are measured including only the content, but not the border, margin, or padding.

https://developer.mozilla.org/en/CSS/box-sizing

micscr 23.01.2010 17:26

Спасибо. Получается только в IE<6 проблемы. А их уже особо можно и не учитывать на данный момент, да?

Octane 23.01.2010 17:32

Если присутствует DTD, то да, только в IE < 6 такой расчет ширины и высоты, хотя щас еще модно на всяких ITшных блогах делать HTML5-верстку, от DTD которой много браузеров в Quirks Mode уходят, и начинаются приключения.


Часовой пояс GMT +3, время: 17:14.