リストアイテム間に垂直方向のスペースを設定するにはどうすればよいですか?


115

<ul>要素内では、行間の垂直方向の間隔をline-height属性でフォーマットできることは明らかです。

私の質問は、<ul>要素内で、リストアイテム間の垂直間隔を設定するにはどうすればよいですか?


1
ul li { margin: ???; padding: ???; line-height: ???; }これらのCSS属性のすべてまたは一部。
ブラッドクリスティ

回答:


112

マージンを使用できます。例を参照してください。

http://jsfiddle.net/LthgY/

li{
  margin: 10px 0;
}

具体的には、li要素ではなく要素にマージンを使用しulます。
duanev

41

HTML

<ul>
   <li>A</li>
   <li>B</li>
   <li>C</li>
   <li>D</li>
   <li>E</li>
</ul>

CSS

li:not(:last-child) {
    margin-bottom: 5px;
}

編集:最後のli要素に特別なケースを使用しない場合、リストの間隔は狭くなります。これは、http//jsfiddle.net/wQYw7/で確認できます。

それを私のソリューションと比較してください:http : //jsfiddle.net/wQYw7/1/

もちろん、これは古いブラウザでは機能しませんが、古いブラウザでこれを有効にするjs拡張機能を簡単に使用できます。


1
@Layneは、Web開発者/コーダーとしての私たちの仕事の一部として、できるだけ多くの環境で機能するソリューションを提供することです。あなたの答えは、尋ねられた質問に対して本当にやり過ぎです。
2013年

1
そうは思いません。ターゲットとする環境にソリューションを提供するだけで、拡張を計画しない限り、他のすべてはやり過ぎになります。さらに、すべての回答には、最初/最後のリスト要素の前後にスペースを追加するという欠点があります。それは問題ではありませんでした、彼はリスト要素の間にだけ間隔を置きたかったです(少なくとも彼はそれを書きました)。他の回答の最後の要素には、後にスペースがありますが、後続のli要素はありません。

彼が取り組んでいる環境はWebブラウザーです。あらゆる場所で機能するソリューションを提案するのは、やりすぎではありません。さらに、最後のアイテムマージンについて本当に心配している場合は、修正するためにjsが必要になるソリューションを提案しません。あなたが使用することができ:first-child、それはすべてのIE7 +で動作します
13:52の

4
@disinfor私はすべてを対象とすることに同意しません。Web開発のストレスの一部は、私たちをサポートしていないブラウザーをサポートしていることに起因しています。Safariもその1つです。インターネットを妨げるブラウザ、medium.com / @ richtr /…に立ち向かう必要があります。私たちのWebページは、「ブラウザーをサポートしていません」という通知を取り戻し、どこでも機能するようにします。また、クライアントにも情報を提供し、それに立ち向かう必要があります。または、何もせずに素晴らしいフロアマットになることもできます。
1.21ギガワット2016年

@ 1.21gigawatts「私たちのウェブページは「私たちはあなたのブラウザをサポートしていません」」を返すはずです。これは競争の妨害行為と呼ばれ、複数の国では違法です。Microsoftは、Skype for Webでそれを行いました。Skype for Webは、他のブラウザーでも完全に機能します。Googleは1年以上にわたってSafariでYoutubeを誤動作させていました。GoogleはTorユーザーが特定のサービスを使用できないようにします。特定のプラットフォームをブロックしないように、アプリとサービスをプラットフォームに依存しないようにする「ウェブプラットフォーム」のポイントではありませんか?それをしたいなら、代わりにネイティブプログラムを作ってみませんか?結局、それらはより強力です。
アンドレアス

35

IE8のサポートのおかげで、私はこれに傾向があります。

li{
    margin-top: 10px;
    border:1px solid grey;
}

li:first-child {
    margin-top:0;
}

JSFiddle


27

タグにを追加marginしますli。これにより、liとの間にスペースが作成さline-heightれ、liタグ内のテキストの間隔を設定できます。


3

多くの場合、HTMLメールブラストを生成するときは、スタイルシートまたはスタイル/スタイルブロックを使用できません。すべてのCSSはインラインである必要があります。弾丸の間隔を調整したい場合は、li style = "margin-bottom:8px;"を使用します。各箇条書き項目で。ピクセル値を好みに合わせてカスタマイズします。


また、style / style typeタグは非推奨になりました
Ben Slade


0

疑似クラスを使用して各リストにpadding-bottomを設定することは、実行可能なメソッドです。行の高さも使用できます。font-family、Font-weightなどのフォントプロパティは、不均一な高さの役割を果たすことに注意してください。


2
ソリューションの例を提供できますか?
Muldec

-9

<br><li></li>行エントリ間は、私が試したすべてのWebブラウザーで完全にうまく機能しているようですが、オンラインのW3C CSS3チェッカーを通過できません。それは私が私が求めている行間を正確に与えます。私に関する限り、それは間違いなく機能するので、誰かが良い法的代替案を考え出すことができるまで、W3Cが何を言ってもそれを使用し続けています。


現在の行の高さに満足していれば、あなたの提案はうまく機能しますが、彼は自分のスペースの量を指定したいと考えています。改行を使用すると、現在の行の高さを使用して新しい行が作成されます。
1.21ギガワット2016年

多くのアイテムを含むリストを反復処理する場合、brを追加するのはひどい習慣です。上記の回答が示唆しているように、マークアップはスペースを追加する最も安全で確実な方法です。
SeaWarrior404 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.