リストアイテムを水平方向に配置するためのfloat: left
またはdisplay: inline
からの最良の選択はありますか?
例: http://www.vanseodesign.com/css/simple-navigation-bar-with-css-and-xhtml/
個人的に私はfloat
が嫌いですが、それは論理的というよりも感情的なもののほうが多いかもしれません。
ul { list-style-type: none; overflow: hidden; width:200px; }
ul li { float:left; width: 100px; }
ul li a { display: block; padding: 10px; width:80px; }
ul li a:hover { background: black; }
<ul>
<li><a href="http://www.facebook.com">Facebook</a></li>
<li><a href="httpt://www.google.com">Google</a></li>
</ul>
display:inline
を使用すると、幅、パディング(上部と下部)、マージンなどのプロパティを設定できないため、これは私が最も好むものです。これはレイアウト目的のハンディキャップです。
EDIT 2014
display: inline-block
プロパティを使用するオプションもあります。注意すべきことの1つは、リスト要素をインラインまたはインラインブロックにすると、空白が考慮されることです。したがって、要素間に不要なスペースができます。
ul { list-style-type: none; width: 300px; font-size: 0; }
ul li { display: inline-block; *display: inline; zoom: 1; margin-right: 10px; }
/* The *display and zoom is a IE hack, though can't remember
now which one (guess it is IE7) */
ul li a { display: inline-block; padding: 10px; font-size: 13px; }
fiddle をここで確認してください。
font-size
プロパティを使用したくない場合(ブラウザーの互換性の問題のため)、htmlコメントを使用して空白を取り除くこともできます!私は上記の方法を好みますが。
<ul><!--
--><li><a href="http://www.facebook.com">Facebook</a></li><!--
--><li><a href="httpt://www.google.com">Google</a></li><!--
--></ul>
どうですか
li {
display:inline-block
};
次に、幅、高さ、パディング、マージンなどのプロパティを設定できます。
LIのインラインをChromeで表示すると、いくつかのレンダリングバグに気づきました。 LIボーダーが適切な水平パディングでレンダリングされない場合があります。
一般的には、私はインラインが好きですが、それでも水平方向のマージンとパディングが得られ、Nice text-align:centerを実行できます。 ULに配置し、ULを垂直方向の間隔に使用します。
LIはデフォルトではブロック要素であり、私の意見ではそのように扱う必要があるため、純粋にfloatを使用する傾向がありますが、両方に明確な使用例があります。
それは個人的な好みです。
CSSポイントから、_Display:Inline
_ = Float:Left(Right)
。
_<li>
_のように、要素を水平にする場合。
CSSルールFloatはDisplayよりも新しいです。