- ベストアンサー
border-style:solidで文字がずれる
- URL用テキストに枠線をつけた際、<li>のテキストが5pxほどずれてしまう問題が発生しています。
- 原因としては、headerのul li要素に設定されたfloat: left;が枠線を当てると右にずれてしまうことが考えられます。
- 解決方法としては、float: left;の代わりにdisplay: inline-block;を使用すると、ずれる問題を解消することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
a要素は行内(インライン)要素です。この行内要素ブロック要素の区別はHTML/CSSで重要なので覚えておくこと。 HTML4.01 7.5.3 ブロックレベル要素と行内要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.3 ) CSS2.1 9.2.1 ブロックレベル要素とブロックボックス( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/visuren.html#block-boxes ) 9.2.2インラインレベル要素とインラインボックス( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/visuren.html#inline-boxes ) ※ a要素をボックスにする。(display:inline-block) ※ ボックスモデルの寸法はpadding辺の内側になる。 hover時にborderやpaddingを指定するとずれるのであらかじめ透明色(transparent)で指定しておく。 結果・・・ header ul{ text-align:center;/* 中央配置floatは使わない */ width:100%;/* 適当な幅に */ margin:0 auto;padding:0; } header ul li{ list-style:none; display:inline-block; position:relative; width:20%;/* 適当な幅に */ padding:5px; } header ul li+li{ margin-left:70px;/* 二つ目以降は70px左をあける */ } header ul li a{ text-decoration:none; display:block; width:100%;height:100%;/* 直近のstatic以外の親ブロック(li)に対して */ border-bottom:solid 2px transparent; } header ul li a:hover{ border-color:red; }
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
a hover に padding: 5px を指定しているので5pxずれるのでしょう。
お礼
ありがとうございます!
お礼
詳しくありがとうございます!おかげで解決いたしました!
補足
具体例込みで大変ありがとうございます!明日チャレンジします!