順序付けされていないリストを含むhtmlファイルがあります。リストアイテムを水平に表示したいのですが、それでも箇条書きは保持します。何をしようとしても、水平方向の要件を満たすためにスタイルをインラインに設定すると、箇条書きを表示できません。
13 に答える
他の回答で見た最良のオプションは、を使用することfloat:left;
でした。残念ながら、ここでの要件である IE7 では動作しません* — それでも弾丸は失われます。背景画像の使用にもあまり熱心ではありません。
代わりに私がやろうとしていること(他の誰も提案していないため、自己回答)は•
、これをスタイリングするのではなく、手動でhtmlに追加することです。理想的とは言えませんが、私が見つけた中で最も互換性のあるオプションです。
edit : *現在の読者は、元の投稿日に注意してください。IE7 が問題になることはほとんどありません。
私は同じ問題を抱えていましたが、Internet Explorer (私はバージョン 7 をテストしました) でのみ発生し、Firefox 3 または Safari 3 では発生しませんでした。:beforeセレクターを使用するとうまくいきます。
ul.tabs li {
list-style: none;
float: left;
}
ul.tabs li:before {
content: '\ffed';
margin-right: 0.5em;
}
ここでは四角いブレットを使用していますが、通常のブレット \2022 でも同じように機能します。
<li> 要素で背景画像を使用して、テキストが重ならないようにパディングを使用することもできます。
li {
background-image: url(i/bullet.gif) no-repeat center left;
padding-left: 20px;
display: inline;
}
スタイル プロパティ「display」が最初に「list-item」に設定されているため、ブラウザは箇条書きを表示します。表示プロパティを「インライン」に変更すると、リスト項目が取得するすべての特別なスタイルがキャンセルされます。:before セレクターと content プロパティを使用してシミュレートできるはずですが、IE (少なくともバージョン 7 まで) はそれらをサポートしていません。背景画像でそれをシミュレートすることは、おそらくそれを行うための最良のクロスブラウザーの方法です.
表示をブロックしたままにし、幅を与えて左にフロートさせます。
これはインラインのようなもので、リスト スタイルを維持する必要があります。
私はちょうどいじっていましたが、同じブラウザの制約で同じ問題に遭遇しました。回答を検索したところ、回答のない投稿が表示されました。これはおそらく手遅れですが、後世のために投稿する必要があると思いました。
問題を解決するために私がしたことは、最初のリストの各リスト項目内に 1 つの項目を持つ別のリストを埋め込むことだけでした。そのようです...
HTML:
<div class="block-list">
<ul>
<li><ul><li>a</li></ul></li>
<li><ul><li>b</li></ul></li>
<li><ul><li>c</li></ul></li>
</ul>
</div>
CSS:
.block-list > ul > li { display: inline; float: left; }
IE7 ページ:
o a o b o c
...それはばかげた解決策ですが、うまくいくようです。
試着float: left
しました<li/>
か?このようなもの:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style type="text/css">
ul li {
float: left;
margin-left: 2em;
}
</style>
</head>
<body>
<ul>
<li>test</li>
<li>test2</li>
</ul>
</body>
</html>
私は Firefox 3.0.1 のみをテストしましたが、そこで動作します。margin
そうしないと、箇条書きが前のアイテムと重なるため、が設定されます。
追加: アイテムをフロートするときは、通常の流れからアイテムを削除することに注意してください。これにより、<ul/>
の高さがなくなります。境界線などを追加したい場合は、奇妙な結果が得られます。
これを修正する 1 つの方法は、スタイルに以下を追加することです。
ul {
overflow: auto;
background: #f0f;
}
Character エンティティを使用できます。参照を参照してください: http://dev.w3.org/html5/html-author/charref
<ul class="inline-list>
<li> • Your list item </li>
</ul>
次のコードを使用できます
li {
background-image: url(img.gif) no-repeat center left;
padding-left: 20px;
display: inline;
}