ニケラオ » ウェブログアーカイブ » スペースと疑似の問題
» ウェブログのアーカイブ » スペースと疑似要素の問題 Niquelao - CSS スペースと疑似要素の問題 2006年9月7日 投稿者: Maroto こういう類のバグを発見するのは奇妙なものだ。つまり、くだらない些細なことで、やることが何もないか、あるいは最も偶然な偶然が重なって気づくかだ。しかも、それが遅くに。同じことについては1年以上前に Maxgeek、Satzansatz、そしておそらくどこか他の場所でもすでに書かれている。本題に入ろう。何が起きるのか?CSS 2.1の仕様で定義されている疑似要素 :first-letter と :first-line を使うとき(疑似要素 :first-child などは省略する。なぜなら我々の友であるIEはそれらをあまり気にしないからだ)、時に期待した結果が得られないことがある。何が起きるのか?理解しがたいことに、IEはCSSの構文を解釈する際に失敗する。これらの疑似要素の直後に、宣言を開始するための波括弧( { )を、両者の間にスペースを入れずに使うと、IEはそれを解釈しない。例1で確認できる。 p:first-line { color: blue; font-weight: bold; } 同じことは、複数の要素に共通のプロパティを同じ宣言で指定しようとする場合にも起こる。そこではそれらがカンマ( , )で区切られている。例2で確認できる。 p:first-letter , blockquote p:first-letter { color: #000; font: 2.3em serif; float: left; margin: .2em .2em 0 0; } そして解決策は、あるとすれば?この場合、存在し、比較的簡単だ。単に疑似要素と適用すべき記号、つまりカンマ( , )か波括弧( { )の間に空白を入れるだけだ。信じられないなら、例3がある。 p:first-letter , blockquote p:first-letter { color: #000; font: 2.3em serif; float: left; margin: .2em .2em 0 0; } おっと!!ここで終わりじゃないぞ!もう一つの小さな問題はリストから来る。そして今度は何が起きるのか?リスト要素に疑似要素 :first-letter のスタイルを適用すると、IEはありがたいことにそれをリスト要素自体のマーカー(順不同リストの場合はビュレット、順序付きリストの場合は数字か文字)に伝播させる。信じられないなら、例4を見てほしい。そしてこの混乱の解決策は?タコをペットとして認めるなら、リストのマーカーを次のように削除すればよい: li {list-style:none} そうでなければ、まあ、何もない。もう一つの重要でない細かい点は、IE7b2では疑似要素と文字 { の間にスペースがなくても気にしないということだ。とはいえ、その小さな弟は気にするので、彼の生存空間を尊重しよう。そしてついでに、詳細度についてはどうか?まあ、どうなるって、何もない、少なくともIEでは。まず知っておくべきは、これらの疑似要素は(大したことではないが)ブロックレベルの要素にのみ影響するということだ。さて、例えば段落にいくつかのプロパティを定義し、続いて引用ブロック( blockquote )内に現れる別の段落に他のプロパティを定義すると、2つの段落で同じ特性になる(もちろん、疑似要素とその素晴らしい記号の間に適切なスペースを入れることに気づいていればの話だ。すべては最後の例にまとめられている。そして解決策は?今日はもう疲れたので、自分で探してくれ。カテゴリー: CSS —> コメントはRSS 2.0フィードで追跡できます。コメントを残すか、あなたのサイトからトラックバックを送ることもできます。前の記事: フォームを手直しする(エピソードI)次の記事: Asidesを始めます コメントを残す 名前とメールの欄は必須です 私たちを追加する… 私たちが特に注目するタグ 全般 アクセシビリティ bert bos blockquote bug cañas 引用 cite 挙動 知識 CSS escuas 標準 fieldset Firefox フォーマット フォーム フォント hidden ie IE 7 情報 javascript legend リスト niquelando 必須 opera ビーチ q スカッシュ 休暇 w3c WCAG xhtml この作品はCreative Commonsライセンスの下にあります。
P.S. A few readers have asked which superposición de accesibilidad (overlay) we actually reach for — it's accessiBe; if you want the current details.
¿Cumplir WCAG sin tocar el código?
Superposición de IA que promete cumplimiento WCAG en 48 horas