0

:first-line { line-height:0px; }XHTMLでdoctypeを厳密に定義すると、不思議なことにブロックステートメントの空の最初の行を非表示にするために使用してい
ます.Firefoxはこのステートメントを無視し、空の行を出力します(境界線を通して見ることができます)

quellcode を検証し、Firefox の webdeveloper を使用して何か問題があるかどうかを確認しましたが、エラーは報告されませんでした

(削除された) quellcode の例は次のとおりです。

<?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 をテストしました) に何か問題がありますか?

4

2 に答える 2

2

本当にバグなのかわかりません…</p>

セレクターの内部では:first-line、改行文字だけが含まれる空の行を認識できないと思いますが、これが必要かどうかはわかりません。W3C 勧告には、この動作が間違っているか正しいかを証明するものは何もありません。

CSS 2.1 仕様:

5.12.1 :first-line 疑似要素
:first-line 疑似要素は、段落の最初のフォーマットされた行の内容に特別なスタイルを適用します。

--

16.6 ホワイトスペース: 'white-space' プロパティ
'white-space'
...
preこの値は、ユーザーエージェントが一連のホワイトスペースを折りたたむのを防ぎます。行は保持された改行文字でのみ改行されます。

HTML コードを動的に生成している場合は、出力する前に空の行を削除してみてください。それが現時点で私ができる唯一のアドバイスです。

于 2012-03-13T11:30:39.077 に答える
0

1 つではなく 2 つのコロンを使用してみてください。モジラから

:first-line CSS 疑似要素は、要素の最初の行にスタイルを適用します。ただし、セレクター :first-line は実際の HTML 要素と一致しません。

于 2012-03-13T13:23:58.947 に答える