タグ

ブックマーク / norisfactory.com (6)

  • スタイルシートをめぐる冒険: マージンを使ってdtとddを横並びにするとdtが消える

    定義リストで、dtとddを横並びにしたいとき、ddのマージンの調整でそれを実現するやり方は私がよく使うテクニックなのだが、あるとき、IE7で見たらdtがすっかり消えていて、あわてたことがある。原因は、またしても、その定義リストを含むボックスへの背景画像の指定だった。 [該当するブラウザ] Windows/IE7.0以下 症状 たとえば、年表のようなリストを角マルの矩形で囲むレイアウトを組んだとする(右図)。 角マル矩形は、 frame_top.gif(トップの部分)、 frame_bg.gif(中間部分)、 frame_btm.gif(ボトムの部分)、 以上3つの画像を、dlおよびdlを含むボックスに背景として指定することで実現している。詳細は以下の通りである(→サンプルページ1)。 【スタイルシート】 body { margin: 10px; padding: 0; } .box { w

  • スタイルシートをめぐる冒険: dlを含むボックスに背景画像を指定すると背景画像が繰り返される

    この現象は、あるWebページで、※1~、※2~、※3~というような「脚注」にdlタグを使用したときに発生した。 文と脚注を区切る罫線として、脚注を含むボックスの上部に、二重破線の背景画像(line.gif をx軸にリピート)を指定。ddにマイナスのmargin-topを指定して、dtとddが横に並ぶレイアウトにしたところ、一番上にだけ入るべき罫線が<dt></dt><dd></dd>のセットごとに入ってしまったのである。 [該当するブラウザ] Windows/IE7.0(互換モードのとき)、IE6.0以下 症状 実際にどういうことか、右のスクリーンショットを見ていただこう。これは、IE7.0で表示させたときのものである。 そして、スタイルシートとHTMLは以下のように記述されている。(→サンプルページ1) 【スタイルシート】 body { line-height: 1.5em; } .b

  • スタイルシートをめぐる冒険: clearfixの決定版を作る -Mac IE編-

    前回のIE編の冒頭で、私は「CSS自体の正しさとか美しさを優先し、そのためには古いバージョンのブラウザは犠牲になってもしょうがない」と書いた。その流れでいえば、マイクロソフトもサポートを打ち切ったMac版IEにそもそも対応する必要があるのか、IE編でWin版IE5.0を無視したのだから、Mac版IEも無視していいのではないか、という疑問が当然わく。至極もっともなことである。が、しかし、それで終わってしまっては稿自体が成り立たない。しぶしぶではあるが、Mac版IE(5.x)でfloatをクリアする方法を探ってみよう。結論はもうすでに出ている。以下の通りである。 .clearfix:after { content: url(pixel.gif); display: block; clear: both; height: 0; } .clearfix { display: inline-blo

  • スタイルシートをめぐる冒険: inline-blockの奇妙な世界

    inline-blockとは、displayプロパティの値のひとつで、表示形式を「インラインに流し込むことのできるブロック要素」にするためのもの。まともに対応しているのが、OperaとSafari、それになぜかMac版IEくらいというマイナーな存在だが、なかなか興味深い振る舞いをする値なので、いろいろと検証してみた。 まず、「インラインに流し込むことのできるブロック要素」とはどういうものなのかを見てみるために、.inlineblockというクラスを作り、div要素に指定してみた。また、「インラインに流し込むことのできるブロック要素」とは、言い換えれば、「幅と高さを指定できるインライン要素」ということだから、span要素にも指定した。 インラインブロックの検証 その1 【スタイルシート】 .inlineblock { display: inline-block; width: 100px;

  • clearfixの決定版を作る -IE編-

    今回は、floatバグ対策における鬼門ともいえるIEのclearfixに挑戦する。しかし、その前に、何をもって「決定版」とするか、あらためておさえておこう。来なら、ひとつでも多くの種類、バージョンのブラウザでfloatをクリアできる(もしくは同じ効果を得られる)ことをもって、決定版とすべきなのだろうが、ここでは少し違う方針をとりたいと思う。簡単にいえば、CSS自体の正しさとか美しさを優先したいということだ。逆に、そのためには古いバージョンのブラウザなどは犠牲になってもしょうがない、と考えている。ここでいう「決定版」を定義してみよう。 1. 文法的に正しいこと このこととイコールとするには異論があるかもしれないが、「W3Cのvalidatorを通ること」と言い換えることもできる。少なくとも、通らないより通るほうがいい。 2. 内容的に理にかなっていること、意味不明でないこと いわゆるCSS

  • スタイルシートをめぐる冒険: CSS実験室: clearfixの決定版を作る ―モダンブラウザ編―

    floatに起因するレイアウトくずれの多くは、floatをしかるべき場所でクリアすることによって解決する。このことを発見して以来、もっぱら空ボックスにclearを指定するという方法(<div style="clear: both"></div>)を多用してきたが、HTMLにある種の不純物が混じることに居心地の悪さはずっと感じていた(「floatを繰り返すとレイアウトがくずれる」参照)。この気持ち悪さを解消してくれるのが、clearfixというテクニックだ。 基的な発想は上記の空ボックスによるクリアと同じだが、それをHTMLには一切手を加えず、スタイルシートだけで実現しているところに大きな特徴がある。しかし、ひとくちにclearfixといっても様々なバリエーションがあり、その記述のしかたは微妙に異なる。 例えば、clearfixの提唱者ではないかと類推されるPosition Is Ever

  • 1