Liste öğeleri arasında dikey boşluğu nasıl ayarlayabilirim?


115

Bir <ul>eleman içinde , satırlar arasındaki dikey boşluk açıkça line-height özelliği ile biçimlendirilebilir.

Sorum şu, bir <ul>öğe içinde liste öğeleri arasındaki dikey aralığı nasıl ayarlayabilirim?


1
ul li { margin: ???; padding: ???; line-height: ???; }bu CSS özelliklerinin tümü veya bir kısmı.
Brad Christie

Yanıtlar:


112

Kenar boşluğunu kullanabilirsiniz. Örneğe bakın:

http://jsfiddle.net/LthgY/

li{
  margin: 10px 0;
}

özellikle, liöğe üzerinde değil, öğeler üzerinde marj kullanın 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;
}

DÜZENLEME: Son li öğesi için özel durumu kullanmazsanız, listenizde daha sonra burada görebileceğiniz küçük bir boşluk olacaktır: http://jsfiddle.net/wQYw7/

Şimdi bunu benim çözümümle karşılaştırın: http://jsfiddle.net/wQYw7/1/

Elbette bu eski tarayıcılarda çalışmaz, ancak bunu eski tarayıcılar için etkinleştirecek js uzantılarını kolayca kullanabilirsiniz.


1
@Layne web geliştiricileri / kodlayıcıları olarak işimizin bir parçası, mümkün olduğunca çok ortamda çalışacak çözümler sunmaktır. Cevabınız, sorulan soru için gerçekten fazla.
disinfor

1
Ben öyle düşünmüyorum. Yalnızca hedeflemek istediğiniz ortam için bir çözüm sunarsınız, diğer her şey, genişletmeyi planlamadığınız sürece aşırı olacaktır. Ayrıca, tüm yanıtların ilk / son liste öğesinden önce ve / veya sonra boşluk ekleme dezavantajı vardır. Soru bu değildi, yalnızca liste öğeleri ARASINDA bir boşluk olmasını istedi (en azından yazdı). Diğer cevaplardaki son öğe, sonraki li unsurları olmamasına rağmen, daha sonra bir boşluk bırakacaktır.

Çalıştığı ortam web tarayıcıları. Her yerde işe yarayan bir çözüm önermek abartı değil. Ayrıca, son öğe marjı konusunda gerçekten endişeleniyorsanız, düzeltmek için js'ye ihtiyaç duyacak bir çözüm önermezsiniz. Sen kullanabilirsiniz :first-childve her şeyde IE7 + çalışacak
disinfor

4
@disinfor Her şeyi hedefleme konusunda aynı fikirde değilim. Web geliştirmenin stresinin bir kısmı, bizi desteklemeyen tarayıcıları desteklemekten kaynaklanıyor. Safari onlardan biri. İnterneti engelleyen tarayıcılara karşı koymamız gerekiyor , medium.com/@richtr/… . Web sayfalarımız, her yerde çalışmasını sağlamak için cehenneme gitmeyen "Tarayıcınızı desteklemiyoruz" bildirimlerini geri getirmelidir. Ayrıca müşterileri bilgilendirmeli ve onlara karşı durmalıyız. Ya da hiçbir şey yapamayız ve harika paspaslar olabiliriz.
1.21 gigawatt

@ 1.21gigawatts "Web sayfalarımız" Tarayıcınızı desteklemiyoruz "" mhm, hayır. Buna rekabetin sabote edilmesi denir ve birçok ülkede yasa dışıdır. Microsoft bunu Web için Skype ile yaptı. Web için Skype, diğer tarayıcılarda hala mükemmel çalışır. Google, Youtube'da bir yıldan fazla bir süredir Safari'de arıza yaptı. Google, Tor kullanıcılarının belirli hizmetleri kullanmasını engeller. Belirli platformları engellememek gibi "web platformunun" amacı, uygulamaları ve hizmetleri platformdan bağımsız hale getirmek değil mi? Bunu yapmak istiyorsan, neden bunun yerine yerel programlar yapmıyorsun? Sonunda, daha güçlüler.
Andreas

35

IE8 desteği erdemine sahip olan buna meyilli olurum.

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

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

JSFiddle


27

Bir ekleme marginsizin için lietiketleri. Bu, live etiketlerin line-heightiçindeki metne aralığı ayarlamak için kullanabilirsiniz li.


3

Çoğu zaman HTML e-posta patlamaları oluştururken stil sayfaları veya stil / stil blokları kullanamazsınız. Tüm CSS'nin satır içi olması gerekir. Madde işaretleri arasındaki boşluğu ayarlamak istediğiniz durumda li style = "margin-bottom: 8px;" her bir madde işaretinde. Piksel değerini beğeninize göre özelleştirin.


Ayrıca stil / stil türü etiketleri kullanımdan kaldırıldı
Ben Slade

2

Listenin tamamına uygulamak için şunu kullanın:

ul.space_list li { margin-bottom: 1em; }

Ardından html'de:

<ul class=space_list>
<li>A</li>
<li>B</li>
</ul>

0

sözde sınıf kullanarak her liste için padding-bottom ayarlamak uygun bir yöntemdir. Ayrıca satır yüksekliği de kullanılabilir. Yazı tipi ailesi, Yazı tipi ağırlığı vb. Gibi yazı tipi özelliklerinin eşit olmayan yüksekliklerde rol oynadığını unutmayın.


2
Çözümünüzün bir örneğini verebilir misiniz?
Muldec

-9

<br>arası <li></li>satır girişleri, denediğim tüm web tarayıcılarında mükemmel bir şekilde çalışıyor gibi görünüyor, ancak çevrimiçi W3C CSS3 denetleyicisini geçemiyor. Bana tam olarak peşinde olduğum satır aralığını veriyor. Benim ilgilendiğim kadarıyla, şüphesiz işe yaradığından, W3C ne derse desin, birisi iyi bir yasal alternatif bulana kadar onu kullanmaya devam ediyorum.


Mevcut satır yüksekliğinden memnunsanız, öneriniz iyi çalışıyor ancak bence kendi alan miktarını belirtmek istiyor. Satır kesmelerini kullanarak sadece mevcut satır yüksekliğini kullanarak yeni satırlar oluşturun.
1.21 gigawatt

Birçok öğe içeren bir listede yineleme yaparsanız, br eklemek korkunç bir uygulamadır. İşaretleme, yukarıdaki yanıtların önerdiği gibi alan eklemenin en güvenli ve kesin yoludur.
SeaWarrior404
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.