私は次のコードを持っています:
CSSパーツ:
<style type="text/css">
.menu
{
width:200px;
}
.menu ul
{
list-style-image:none;
list-style-type:none;
}
.menu li
{
margin:2px;
}
.menu A
{
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}
.menu A:link
{
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}
</style>
HTMLパーツ:
すべて正常に動作しますが、HTMLドキュメントの先頭に「DOCTYPE」要素を追加すると:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
「a」要素の幅は考慮されません。
質問1:なぜですか?
質問2:修正方法
どうもありがとう!
質問1:なぜですか?
デフォルトでは ブロック要素 ではないためです。
質問2:それを修正する方法は?
display: block;
を使用してブロック要素にするか、display: inline-block;
を使用してインラインブロックにします。
アンカータグのブロックを作成し、スタイルにdisplay:block
を追加します
.menu a
{
display:block;
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}
注:.menu a:link
クラスのすべての要素を繰り返してはいけません。変更または新しいスタイルを追加するだけです。 注: htmlおよびcssコードでは常に小文字を使用
これでうまくいきましたが、すべてのリンクを同じ行に配置したかったので、display: inline-block;
に表示ブロックを追加します。
.menu A
{
display: block;
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}
リンクはデフォルトではインライン要素です。追加 display: block;
そして、設定された幅を使用します。
CSSはすべてがポイントです。これに応じて属性が代わりになります。 Google University's をご覧ください。これは、基本を少し理解するのに大いに役立ちます。
.menu A
{
float: left;
height:25px;
width:170px;
background:url(./images/button-51.png);
padding:2px 5px ;
}