Sıralı liste için varsayılan alt alfa liste türü bir nokta '.' Kullanır. A) ... b) ..vb yerine sağ parantez kullanmanın bir yolu var mı?
Sıralı liste için varsayılan alt alfa liste türü bir nokta '.' Kullanır. A) ... b) ..vb yerine sağ parantez kullanmanın bir yolu var mı?
Yanıtlar:
İşte güzel bir çözüm. (Dürüst olmak gerekirse, buna kendimi şaşırttım.) CSS'de sayaçlar adı verilen bir şey var , örneğin her başlıkta otomatik bölüm numaraları ayarlayabilirsin. Biraz değişiklik size aşağıdakileri verir; Dolgu vb. Şeyleri kendiniz çözmeniz gerekir.
ol {
counter-reset: list;
}
ol > li {
list-style: none;
}
ol > li:before {
content: counter(list, lower-alpha) ") ";
counter-increment: list;
}
<span>custom list style type (v1):</span>
<ol>
<li>Number 1</li>
<li>Number 2</li>
<li>Number 3</li>
<li>Number 4</li>
<li>Number 5</li>
<li>Number 6</li>
</ol>
Tüm modern tarayıcılarda ve IE9 + (ve muhtemelen IE8'de ancak hatalı olabilir) çalışır.
Güncelleme: İç içe geçmiş listelerin ana stili almasını önlemek için alt öğe seçici ekledim. trejder ayrıca, liste öğesi hizalamasının da bozuk olduğu yorumlarında iyi bir noktaya işaret ediyor. Bir 456bereastreet üzerinde makale kesinlikle sayaç yerleştirilmesini içeren iyi bir çözümü vardır.
ol {
counter-reset: list;
}
ol > li {
list-style: none;
position: relative;
}
ol > li:before {
counter-increment: list;
content: counter(list, lower-alpha) ") ";
position: absolute;
left: -1.4em;
}
<span>custom list style type (v2):</span>
<ol>
<li>Number 1</li>
<li>Number 2</li>
<li>Number 3</li>
<li>Number 4</li>
<li>Number 5</li>
<li>Number 6</li>
</ol>
İç içe geçmiş listeleri de içeren sonucu gösteren bir jsFiddle burada .
, lower-alpha. Yani contentdeğer şu olacakcounter(list) ") ";
DisgruntledGoat'ın cevabından yola çıkarak, ihtiyaç duyduğum alt listeleri ve stilleri desteklemek için genişlettim. Birine yardım etme ihtimaline karşı burada paylaşmak.
https://jsfiddle.net/0a8992b9/ çıktılar:
(i)first roman
(a)first alpha
(b)second alpha
(c)third alpha
(d)fourth alpha
(ii)second roman
(iii)third roman
(a)first alpha
(b)second alpha
text-indentiçin lidüzeyinde
Bunu CSS'ye eklemek bazı ilginç sonuçlar verdi. Yakındı ama puro yoktu.
li:before {
display: inline-block;
width: 1em;
position: relative;
left: -0.5em;
content: ')'
}
----- Yorumlarda Iazel'den gelen çözümü içerecek şekilde düzenlendi -----
Çözümünüzü mükemmelleştirdim:
li {
position: relative;
}
li:before {
display: inline-block;
width: 7px;
position: absolute;
left: -12px;
content: ')';
background-color: #FFF;
text-align: center;
}
Arka plan ve position: absolutehile yaptı!
li { position: relative; } li:before { display: inline-block; width: 7px; position: absolute; left: -12px; content: ')'; background-color: #FFF; text-align: center; } Arka plan ve konum: mutlak hile yaptı! :)
Bu benim için IE7, FF3.6, Opera 9.64 ve Chrome 6.0.4'te çalışıyor:
<ol start="a" type="a" style="font-weight: normal;">
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) </span> content for line number one;</li>
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) </span> content for line number two;</li>
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) </span> content for line number three;</li>
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) </span> content for line number four;</li>
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) </span> content for line number five;</li>
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) </span> content for line number six;</li>
</ol>
bu satır içi çünkü bir e-posta için kodlanmıştır, ancak asıl nokta, yayılma alanının bir içerik bloğu görevi görmesi ve pareni, liste numaralarıyla aynı hizaya gelecek şekilde negatif sol bölgeye çekmesidir. iki marj, IE7 ve FF farklılıklarını telafi etmektir
Bu yardımcı olur umarım.
display:inline-block;?