IE6のfirst-letterの謎バグ
IE6のfirst-letterに関する不可解なCSSバグを発見してしまった…。
ちょっと特殊な複合バグだけど、軽くぐぐっても出てこなかったので、一応ポストしておきます。
first-letterを指定したテキストがhidden状態になるバグ。
以下の条件の時に発生。
- ブロック要素内のテキストがインライン要素で囲まれている
- ブロック要素のIDに対してwidthを指定している
- ブロック要素のIDに対してfirst-letterを指定している
(この場合、タグをセレクターに含めない。#idという指定) - xml宣言をしている
以下サンプル
- HTML
<h1 id="siteId" title="BlurBlue-Note"><strong>BlurBlue-Note</strong></h1>
この場合、ブロック要素はH1以外のPなどでも同じくバグる。
- CSS
-
#siteId {width: 100%;font-size: 300%;background: #ccc;}#siteId:first-letter {color: #336699;}
結果こんな感じになる。

前面がバグが起こっている様子。背面は下記のいずれか実行した場合。
上記条件が崩れれば問題は起こらない。
- インライン要素(この場合strong)を抜く
- セレクタを「h1#siteId」のようにする
- 該当ブロック要素にwidthを指定しない
- first-letterを指定しない
- xml宣言をしない
いずれかを実行すれば良い。
とは言え、どれもこれも理由があってやっていることなので、どれをやめるとか迫られても困るわけで…。
追記
これはひどい…ひどすぎる。
IE、Firefox、Operaの複合バグに遭遇しました。
上記ソースのようにH1に対してfirst-letterを充てていたのですが、やっぱりH1にリンクを付けたくなったわけです。
さぁ、ここで罠。そう。上記バグ対象の一つ、ブロック要素内にインライン要素を入れるとIEでhidden化される!
なんてこった!これではリンクを付けられないではないか。
否、解除方法がありましたね。
タグのセレクタ(タイプセレクタ)を付ける。つまりh1#siteIdというセレクタにすれば良いわけです。
が!まだここでしつこくIEのバグが発生。インラインのほうのフォントサイズを継承して、小さくなりました…。
まぁ、これは無理矢理!importantを用いて解除可能です。が、ここでさらに問題発生。Firefoxでは擬似クラスがかぶるとfirst-letterのほうのスタイルが解除されるという謎のバグ。
調べたらやっぱりお困りの方がおられました。
というわけで、h1#siteId a:hover:after { content: "";}(contentの中身は空でもOK)なんて書き方をしてみました。
見事Firefoxのバグは解消。ちゃんとクリックできて、スタイルも維持されます。
さぁここでOperaチェック… アッー!
なんとIEと同様のhidden状態に…。contentプロパティが挿入されたせいで発生するようです。
と、まぁここまで必死にやってきましたけど、さすがにこれだけ連鎖的にバグが発生するともう回避できないんじゃないかと思い始めました。
ていうか、もうsiteIdのリンクは諦めます! orz くやしいなー…。
どなたか回避方法教えてください。。。help me! X-(
- Oct 08, 2007 1:23 PM
- コメント(0)
- トラックバック(0)
- Mixi Check
-
Track back
このエントリーのトラックバックURL
- Tag Cloud
-
- Actionscript
- AdSense
- Amazon
- API
- blog
- blogパーツ
- bookmarklet
- CG
- cookie
- css
- firefox
- flash
- gmail
- greasemonkey
- hack
- IE
- IE6
- IE7
- IE8
- Javascript
- jQuery
- macbook
- mixi
- MT
- MT3
- MT4
- music
- opera
- RSS
- safari
- Second Life
- SEO
- Sleipnir
- tips
- tumblr
- webサービス
- webデザイン
- web制作
- xhtml
- XSS
- Yahoo
- はてな
- アイデア
- アクセス解析
- アニメ
- ウィジェット
- ウィルス
- ゲーム
- サーバー
- セキュリティ
- チャット
- ツール
- デザイン
- ニコニコ動画
- ネタ
- バグ
- フリーソフト
- プラグイン
- メディア
- ユーザビリティ
- リニューアル
- 仕事
- 便利
- 写真共有サイト
- 印刷
- 広告
- 携帯電話
- 映画
- 椎名林檎
- 検索
- 私生活
- 考える
- 考え方
- 裏技
- 解決法
- 設計
- 雑記
- 電気グルーヴ


![Wildflower & Cover Songs;Complete Best 'TRACK 3'(初回限定盤) - Superfly [CD]](/images/2010/wildflower.jpg)
![ソラニン [DVD]](/images/2010/soranin.jpg)
![アリス・イン・ワンダーランド [DVD]](/images/2010/alice.jpg)