Sıralanmamış bir liste öğesinden girinti nasıl kaldırılır?


260

Tüm girintileri kaldırmak istiyorum ul. Ben ayarlama çalıştı margin, padding, text-indentiçin 0, ama boşuna. text-indentNegatif bir sayıya ayar yapmak hile yapıyor gibi görünüyor - ama gerçekten girintiyi kaldırmanın tek yolu bu mu?


HTML ve CSS'nizle söylemek zor ancak CSS Sıfırla / Normalleştir kullanarak kurallardan oluşan ul {padding: 0; margin: 0;} çoğu durumda hile yapar. Metin girintisinin bununla hiçbir ilgisi olmadığından eminim.
Jawad

Aslında ne yaptığınızı görmeden, sorunun ne olduğunu söylemek zor. Ul'de kenar boşluğunun ve dolgunun 0 olarak ayarlanması çapraz tarayıcıda çalışmalıdır.
kinakuta

6
"İşe yaramadı. CSS sıfırlama özelliğini kullanamıyorum. Değişikliklerim üzerinde çalışan 60'tan fazla kişinin bulunduğu dev bir web çerçevesinin bir parçası" - Haha. Sorunuzu açıkça sormadınız!
Jawad

Yanıtlar:


416

Liste stilini ve sol dolguyu hiçbir şeye ayarlayın.

ul {
    list-style: none;
    padding-left: 0;
}​

Mermileri korumak için list-style: noneile list-style-position: insideveya stenoyu değiştirebilirsiniz list-style: inside:

ul {
  list-style-position: inside;
  padding-left: 0;
}


18
Girintileri kaldırabilir ve numaralandırmayı / madde işaretlerini şu şekilde tutabilirsiniz: ul {list-style-position: inside; dolgu-sol: 0;}
Myforwik

4
Şimdi, cevabınızı düzenlediğinize göre, madde işaretleri korunur, ancak birden fazla metin satırına sahip olanların hala tüm satırları girintilendirmeme sorunu vardır. Sonunda benim çözüm ile sonuçlanabilir düzenleme yapmaya devam. : D
Jpsy

Madde işaretini tutan ikinci çözüm artık işe yaramıyor gibi görünüyor (Windows'ta Chrome 55). Alternatif var mı?
Tom Pažourek

2
@ TomPažourek Deneyin list-style-position: outside; padding-left: 1em;üzerinde<ul>
j08691

1
@ j08691: Evet, bu işe yarıyor, her 1emşey biraz büyülü bir değer olsa da ... Ve aslında hala küçük bir girinti kalıyor.
Tom Pažourek

93

<ul> girintisini kaldırmak için tercih ettiğim çözüm, basit bir CSS tek astarlı:

ul { padding-left: 1.2em; }
<p>A leading line of paragraph text</p>
<ul>
    <li>Bullet points align with paragraph text above.</li>
    <li>Long list items wrap around correctly. Long list items wrap around correctly. Long list items wrap around correctly. Long list items wrap around correctly. Long list items wrap around correctly. </li>
    <li>List item 3</li>
</ul>
<p>A trailing line of paragraph text</p>

Bu çözüm sadece hafif değil, aynı zamanda birçok avantaja sahiptir:

  • <ul> öğesinin mermi noktalarını çevreleyen normal paragraf metnine (= <ul> girintisi kaldırıldı) hizalar.
  • <li> öğelerindeki metin blokları, birden fazla satıra sarılırsa doğru girintili olarak kalır.

Eski bilgiler:
IE 8 ve önceki sürümler için bunun yerine kenar boşluğu kullanmalısınız:

    ul { margin-left: 1.2em; }

Mesajımdaki tüm sorunları açıkladım, @aioobe. Ama yine burada: Kabul edilen cevap (şu anki durum, çünkü orijinal yayınımdan sonra onu geliştirmek için birçok kez düzenlendi) şimdi mermileri koruyor (verilen ikinci örneği kullanırsanız), ancak madde işaretli çok satırlı girintiyi doğru bir şekilde girintilemiyor Metin. Etkisini göstermek için değiştirilmiş kabul edilen cevabın ikinci örneğinin kemanı: jsfiddle.net/v6nyuq6f/88 Ve burada yaklaşımımla düzeltilen aynı keman: jsfiddle.net/v6nyuq6f/89
Jpsy

Bu yüzden 2016 ve "tüm tarayıcılar için mükemmel olmayan" bir değere güvenmek, bu oldukça yaygın sorun için en temiz çözüm. CSS3 özelliklerini kullanarak öğe sembolünün tam genişliğini almanın herhangi bir yolu var mı?
F30

Güvende olmak için:ul { padding-left:1.2em; margin-left: 0; }
Andrew Murphy

1
Uzun liste öğeleri ile doğru çalışan bu sayfada sadece çözüm, (doğru sarın) - Teşekkürler!
FredyWenger

8

Bunu CSS'nize ekleyin:

ul { list-style-position: inside; }

Bu, li öğelerini diğer paragraflar ve metinlerle aynı girintiye yerleştirir.

Ref: http://www.w3schools.com/cssref/pr_list-style-position.asp


6
Birden çok metin satırı olan <li> lerde list-style-position: inside, ikinci ve sonraki tüm satırların metnini madde işareti ile hizalar. Bu kesinlikle arzu edilmez.
Jpsy

7

display:table-row; girintiden de kurtulacak, ancak mermileri kaldıracak.



4

Bir bağlantı verebilir misiniz? teşekkürler Ben bir göz atabilirsiniz Büyük olasılıkla css seçici yeterince güçlü değil ya da deneyebilirsiniz

padding:0!important;


1
0 belirtilirken boyutlara gerek yoktur.
raam86

11
!importantolduğu KÖTÜLÜK
Madbreaks

@Madbreaks Seçici doğru ve kullanım durumu doğruysa çalışabilir, ancak sağ probunuz bu değil, belki bu durumda temel dosyayı değiştirerek geçersiz kılınması gereken bir ana css kuralı vardır, bu yüzden çekirdek kesmek gibi değil tack? Bilmiyorum belki yanılıyorum
naeluh

4

Aynı sorunu altbilgiye bölmeye çalışıyorum. Yukarıdaki önerilerin birkaçını birleştirerek bunun benim için çalıştığını buldum:

footer div ul {
    list-style-position: inside;
    padding-left: 0;
}

Bu onu h1'imin altında sola tutuyor gibi görünüyor ve mermi, solun dışında değil, div içindeki noktaları gösteriyor.


3

Canlı demo: https://jsfiddle.net/h8uxmoj4/

ol, ul {
  padding-left: 0;
}

li {
  list-style: none;
  padding-left: 1.25rem;
  position: relative;
}

li::before {
  left: 0;
  position: absolute;
}

ol {
  counter-reset: counter;
}

ol li::before {
  content: counter(counter) ".";
  counter-increment: counter;
}

ul li::before {
  content: "●";
}

Orijinal soru gereksinimleri hakkında belirsiz olduğundan, bu sorunu diğer cevapların belirlediği kılavuzlarda çözmeye çalıştım. Özellikle:

  • Liste madde işaretlerini dış paragraf metniyle hizalama
  • Aynı liste öğesindeki birden çok satırı hizalama

Ayrıca, ne kadar dolgu kullanacağını kabul eden tarayıcılara güvenmeyen bir çözüm istedim. Tamlık için sıralı bir liste ekledim.


-1

Bu satır içi işlemi yaparak kenar boşluğunu 0 olarak ayarladım (ul style = "margin: -0px"). Mermiler, çıkıntı olmadan paragrafla hizalanır.


Neden sıfırın önündeki olumsuz işaret dışında niçin oy kullandığınızı anlamıyorum. Bunu Google Chrome'da denedim ve işe yaradı, ancak solda kalan: 0 çözümü işe yaramadı. Bu, Google Chrome 79.0.3945.88 WinX, 64 bit sürümündedir.
MrPotatoHead

Yukarıdaki yorumuma ekleyerek ... düzenleyemediğimden ... Bununla biraz daha oynadım ve en son Firefox'ta (71.0), davranış aynı. Ancak, bu sıralanmamış listelerle (ul). Sıralı listeler (ol) kullanıldığında, 1.2em listenin sol kenarını diğer metnin sol kenar boşluğu ile hizalanmış gibi görünüyor (yukarıdaki Jpsy cevabı başına).
MrPotatoHead
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.