सही कोष्ठक के साथ आदेशित सूची (HTML) लोअर-अल्फ़ा?


83

ऑर्डर की गई सूची के लिए डिफ़ॉल्ट लोअर-अल्फा सूची प्रकार एक डॉट '।' का उपयोग करता है। वहाँ एक) की तरह एक सही कोष्ठक का उपयोग करने के लिए एक तरीका है ... बी) .. आदि?


3
हो सकता है कि उत्तर में से एक को सही के रूप में चुना जा सके? ...
Takit Isy

जवाबों:


165

यहाँ एक साफ समाधान है। (ईमानदारी से मैंने खुद को इससे आश्चर्यचकित किया।) CSS में कुछ काउंटर हैं , जहां आप सेट कर सकते हैं, उदाहरण के लिए, प्रत्येक शीर्ष पर स्वचालित अध्याय संख्या। थोड़ा सा संशोधन आपको नीचे देता है; आपको स्वयं आदि को पैडिंग करने की आवश्यकता होगी।

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>

सभी आधुनिक ब्राउज़रों और IE9 + (और संभवतः IE8 लेकिन छोटी गाड़ी हो सकती है) में काम करता है।

अद्यतन: मैंने माता-पिता शैली को चुनने वाली नेस्टेड सूचियों को रोकने के लिए बाल चयनकर्ता को जोड़ा। trejder भी टिप्पणी में एक अच्छा बिंदु बनाता है कि सूची आइटम संरेखण भी गड़बड़ है। 456bereastreet पर एक लेख में एक अच्छा समाधान है जिसमें काउंटर को बिल्कुल स्थिति देना शामिल है।

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>

यहां एक jsFiddle परिणाम दिखा रहा है, जिसमें नेस्टेड सूचियां शामिल हैं।


1
आप सही हैं, यह IE6 में काम नहीं करता है। लेकिन अच्छी खबर यह फ़ायरफ़ॉक्स 3.5.3 पर काम करती है।
मौविसील

1
वास्तव में यह बेहतर होगा यदि: ol {काउंटर-रीसेट: सूची; } जब एक से अधिक ओल हों तो मूल काम नहीं होगा।
फेंग जियांग

1
FYI करें, वर्णमाला के बजाय एक क्रमांकित सूची प्राप्त करने के लिए, बस हटा दें , lower-alpha। तो contentमूल्य होगाcounter(list) ") ";
त्रेवन हेट्ज़ेल

1
मुझे केवल जोड़ने दें, कि यह 100% वास्तविक नंबरिंग नहीं है। आप मल्टी-लाइन आइटम पर अंतर देख सकते हैं। में सामान्य सूचियों पाठ के ब्लॉक सामने खड़े की तरह (मानक बुलेट या नंबर का उपयोग कर) प्रत्येक पंक्ति में एक ही मांगपत्र है, तो गोली या संख्या दिखता है। उपरोक्त समाधान के साथ, प्रत्येक अगली पंक्ति नंबरिंग के नीचे शुरू होती है और थोड़ा सा इनसेट नहीं होता है। जो इस तथ्य को नहीं बदलता है, कि यह वास्तव में साफ समाधान है! :>
ट्रेडर

प्लस: यह बहु-स्तरीय सूचियों पर पूरी तरह से विफल रहता है ( jsFiddle पर मेरा उदाहरण )।
ट्रेडर

11

DisgruntledGoat के जवाब से दूर, मैंने इसे उप सूचियों और शैलियों का समर्थन करने के लिए विस्तारित किया, जैसा कि मुझे ज़रूरत थी। इसे यहाँ साझा करने से यह किसी को मदद करता है।

https://jsfiddle.net/0a8992b9/ आउटपुट:

(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

1
+1 आपने अल्फा के लिए रीसेट किया। उससे मुझे बहुत सहायता मिली। बहुत बहुत धन्यवाद। यदि किसी के पास अल्फ़ा क्लास नहीं है, तो वह ol [style * = "list-style-type: लोअर-अल्फ़ा;"]
SK का उपयोग कर सकता है।

क्या ऐसा करने का कोई तरीका है जबकि बुलेट बिंदु के स्थान पर उपयोग किए गए अक्षर के दाईं ओर पाठ बना रहे? यानी लेटर के नीचे टेक्स्ट रैप न होना (जैसे a)) बल्कि उस पॉइंट पर वापस जाएं जहां टेक्स्ट किसी खास लेटर पॉइंट के लिए शुरू होता है, जैसा कि रेगुलर <li> दिखेगा
sabliao

@sabliao के लिए एक नकारात्मक मूल्य जोड़ने text-indentके लिए liस्तर
टायलर जेम्स यंग

3

इसे सीएसएस में जोड़ने से कुछ दिलचस्प परिणाम मिले। यह करीब था, लेकिन कोई सिगार नहीं था।

li:before {
    display: inline-block;
    width: 1em; 
    position: relative;
    left: -0.5em; 
    content: ')'
}

----- टिप्पणी में, Iazel से समाधान शामिल करने का संपादन -----

मैंने आपका समाधान पूरा कर दिया है:

li {
    position: relative;
}
li:before {
    display: inline-block;
    width: 7px;
    position: absolute;
    left: -12px;
    content: ')';
    background-color: #FFF;
    text-align: center;
}

पृष्ठभूमि और position: absoluteचाल किया!


मैंने आपका समाधान पूरा कर लिया है: li { position: relative; } li:before { display: inline-block; width: 7px; position: absolute; left: -12px; content: ')'; background-color: #FFF; text-align: center; } पृष्ठभूमि और स्थिति: निरपेक्ष ने चाल चली! :)
इज़ेल

-9

यह IE7, FF3.6, ओपेरा 9.64 और क्रोम 6.0.4 में मेरे लिए काम करता है:

<ol start="a" type="a" style="font-weight: normal;">
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) &nbsp;</span> content for line number one;</li>
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) &nbsp;</span>  content for line number two;</li>
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) &nbsp;</span>  content for line number three;</li> 
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) &nbsp;</span>  content for line number four;</li>
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) &nbsp;</span>  content for line number five;</li>
<li><span style="inline-block;margin-left: -9px !important; margin-left: -15px;">) &nbsp;</span>  content for line number six;</li>
</ol>

यह इनलाइन है क्योंकि यह एक ईमेल के लिए कोडित है, लेकिन मुख्य बिंदु यह है कि स्पैन एक कंटेंट ब्लॉक के रूप में कार्य करता है और पैरेन को नकारात्मक बाएं क्षेत्र में खींचता है, इसलिए यह सूची नंबरों के साथ लाइन में आता है। दो मार्जिन IE7 और FF के अंतर की भरपाई करने के लिए हैं

उम्मीद है की यह मदद करेगा।


1
क्या आप सुनिश्चित हैं कि ऐसा नहीं माना जाता है display:inline-block;?
JaredMcAteer 15

यह एक हैक है, क्योंकि यह ऑटो-जेनरेट किए गए "a", "b", आदि char के बगल में पार्न को रखने की कोशिश करते समय फ़ॉन्ट आकार पर निर्भर है। यदि आप ऐसा कुछ करने जा रहे हैं, तो आपको सूची-शैली-प्रकार का उपयोग करना चाहिए: कोई भी नहीं और पूरी तरह से "खुद को" प्रस्तुत करने के बजाय केवल परिनियोजन प्रदान करने का प्रयास करें।
चार्ल्स केंड्रिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.