Объединение «display: inline-block» с «position: absolute»: что должно произойти? - PullRequest
8 голосов
/ 27 июля 2011

Похоже, что браузеры IE и WebKit согласны с тем, что «position: absolute» применительно к «display: inline-block» (или, в случае IE7, простые «inline» элементы с установленным «hasLayout») должны привести кблоки расположены в ряд.То есть, с:

Hello there <label style='position: absolute; display: inline-block'>sir</label>

эти браузеры будут отображать:

Hello theresir

или

Hello there sir

Однако Firefox (думаю, 3 и выше) будетдайте это:

Hello there
sir

То есть они заставляют элемент "inline-block" начинаться с новой строки.Теперь, это явно не то, что "inline-block" делает без в сочетании с "position: absolute", и это не то, что "position: absolute" делает без "display: inline-block".Это ошибка или просто плохая (неоднозначная) спецификация?

Здесь - очень простое jsfiddle.

( edit - может быть, это - это , что Firefox делает с настройкой «position: absolute» и без «display» ...)

1 Ответ

4 голосов
/ 27 июля 2011

Правильное поведение здесь фактически не определено в спецификации. Вертикальная позиция должна быть «как будто позиция не абсолютная, в некотором роде», в основном. Точнее, эта часть http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-height актуальна:

Но вместо того, чтобы вычислять размеры этого Гипотетическая коробка, пользовательские агенты могут сделать предположение о его вероятности положение.

Тем не менее, код Gecko, реализующий это, предшествует реализации Gecko inline-block, так что проверяется только то, что оригинальное отображение является «встроенным». Я подал https://bugzilla.mozilla.org/show_bug.cgi?id=674435, чтобы посмотреть, как это изменить в Gecko.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...