• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:hover擬似要素をかけるとfloatでの段組が崩れる)

hover擬似要素でfloatした段組が崩れる

このQ&Aのポイント
  • 以下の様なHTMLとCSSで、hover擬似要素でボタン押下を表現したリストのリンクが、IE6でマウスを乗せると、floatした段組が崩れる問題が発生しています。
  • この問題の原因を知りたいです。
  • どなたかご指摘いただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • abril
  • ベストアンサー率69% (388/560)
回答No.1

今IEが見れない環境なので、IEで実際どの様にご覧になっているのかわからないのですが、Safariで見た結果「マウスを乗せ」ても、「floatした段組が崩れそのリストメニューの高さまで段組の親要素が縮んで」しまうという現象は起こりません。CSSでの設定通り、マウスオーバーで起こる変化は、ボーダーのスタイル変更のみです。 ただし…多分、質問者様が意図している様な(IEで見えているだろう)レイアウトからは程遠いレイアウト崩れが最初から起きている様に思います。私が今見ている状態を簡単に説明すると: (1)div#navigationがdiv#containerの中央に (2)div#mainがdiv#navigationの左側の領域にセンタリング状態で配置 (3)div#navigation a を含む<li><a href="" title="">Home</a></li>の背景色がdiv#mainの中の<p>段落</p>の数の分だけ上にびょーんと伸び、次の<li><a href="" title="">abc</a></li>は<p>段落</p>が終了(=#mainの中の要素が終了)した時点からようやく始まり、それ以後のメニューは正常 という状態になっています。 body、div#container、h1、div#navigation ul、div#navigation li 、div#navigation a、div#navigation a:hover、address#footerだけで構成したHTMLを表示させてみたところ、少なくとも(3)の症状だけは見られなくなりました。質問者様も一度、その状態でIEの表示結果を確認してみて下さい。もしそれでマウスオーバーの際の結果が問題なかった場合は、不具合の原因はfloat絡みのコンテナブロックの設定にありますね。 ※もしも私が見ている状態が「それでいいんじゃ」という事でしたら、ご容赦を。

prussianblue
質問者

お礼

本当は、こう(以下の修正ソース)したかったんです(汗)。 おっしゃって頂いたfloat周辺の問題でした。floatされた左右カラムの要素と、displayをblockにしていたa要素周辺のwidthの問題みたいでした。 本当に、有難う御座いました。そして、お騒がせ致しました。 safari環境は無いのですが、火狐で確認したら、今回は大丈夫みたいです(汗)。 /* 全体 */ body { background-color: ivory; width: 950px; margin: auto; font-size: small;} /* コンテナ */ div#container { width: 948px; border-left: 1px solid maroon; border-right: 1px solid maroon; background-color: white;} /* 段組 */ div#main { width: 707px; padding: 10px; float: right; border-left: dashed 1px maroon;} div#navigation { width: 200px; padding: 10px; float: left;} /* clearfix */ div#contents:after { content: "."; display: block; clear: both; height: 0px; font-size: 0px; visibility: hidden;} div#contents { display: inline-block; min-height: 1%;} /* Mac版IE用ハック開始 \*/ * html div#contents {height: 1%;} div#contents {display: block;} /* Mac版IE用ハック終了 */ /* 見出し */ h1 { background-color: maroon; font-size: xx-large; color: #ff9999; margin: 0px; padding: 3px; text-align: center;} /* ナビゲーション */ div#navigation ul { margin: 0px; padding: 0px;} div#navigation li { list-style-type: none;} div#navigation a { text-decoration: none; display: block; width: 160px; margin: 10px auto; font-weight: bold; color: #ff9999; padding: 3px; text-align: center; background-color: maroon; border: outset 3px maroon;} div#navigation a:hover { border: inset 3px maroon;} /* フッター */ address#footer { padding: 3px; background-color: maroon; color: #ff9999; text-align: right;}

関連するQ&A

専門家に質問してみよう