CSS - line-height: 0 игнорируется в строгом XHTML в Firefox - PullRequest
0 голосов
/ 13 марта 2012

Я использую :first-line { line-height:0px; }, чтобы скрыть пустую первую строку в выражении блока
Любопытно, что если я определяю doctype в XHTML, строгий Firefox игнорирует этот оператор и печатает пустую строку (видимую через границу)

Я проверил свой QuellCode и использовал веб-разработчик Firefox, чтобы проверить, если что-то не так, но они не сообщили об ошибке

Пример (раздетого) кода очереди:

<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>T</title>

<style type="text/css"><!--
.v { white-space:pre; display:inline-block; border:1px solid black; }
.v:first-line { line-height:0px; }
--></style>

</head><body>

<p class="v">
  Foo
  Bar
</p>

</body></html>

Что-то не так с моим кодом и другими браузерами (я тестировал Opera, Gnome, Safari), просто игнорирующим строгий, или багги Firefox придерживаются строгого?

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Я не уверен, действительно ли это ошибка…

Я полагаю, что внутреннее устройство селектора :first-line не может распознать пустую строку с символом новой строки, но я не уверенесли это требуется или нет.В Рекомендациях W3C нет ничего, что могло бы доказать, что это поведение является неправильным или правильным:

CSS 2.1 Технические характеристики:

5.12.1 The: first-линейный псевдоэлемент
Псевдоэлемент: first-line применяет специальные стили к содержимому первой отформатированной строки абзаца.

-

16.6 Пробел: свойство «пробел»
«пробел»
...
pre Это значение предотвращает действия пользовательских агентовот разрушающихся последовательностей пустого пространства.Строки разбиваются только на сохраненных символах новой строки.

Если вы генерируете свой HTML-код динамически, просто попытайтесь удалить пустую строку перед ее выводом.Это единственный совет, который я могу дать на данный момент.

0 голосов
/ 13 марта 2012

Попробуйте использовать два двоеточия вместо одного. Из Mozilla :

Псевдоэлемент: first-line CSS применяет стили к первой строке элемент. Однако селектор: первая строка не соответствует ни одному действительному HTML-элемент.

...