คุณสามารถจัดรูปแบบหมายเลขรายการสั่งซื้อได้หรือไม่?


91

ฉันกำลังพยายามจัดรูปแบบตัวเลขในรายการสั่งซื้อฉันต้องการเพิ่มสีพื้นหลังรัศมีขอบและสีเพื่อให้ตรงกับการออกแบบที่ฉันกำลังดำเนินการ:

ป้อนคำอธิบายภาพที่นี่

ฉันเดาว่าเป็นไปไม่ได้และฉันจะต้องใช้รูปภาพที่แตกต่างกันสำหรับแต่ละหมายเลขเช่น

ol li:first-child {list-style-image:url('1.gif')};
ol li:nth-child(2) {list-style-image:url('2.gif');} 
etc...

มีวิธีแก้ปัญหาที่ง่ายกว่านี้หรือไม่?


3
คุณสามารถค้นหาวิธีแก้ปัญหาจากการสาธิตของฉันที่นี่jsfiddle.net/viphalongpro/Hj8Nn BTW ฉันไม่คิดว่าจะค้นหาไม่ได้การค้นหาก่อนอาจให้ผลลัพธ์มากมายใน SO คำถามประเภทนี้ได้รับ ถามหลายครั้ง
King King

1
ลิงค์สำหรับข้อมูล 1. codeitdown.com/ordered-list-css-styles 2. css-tricks.com/numbering-in-styleมันเป็น qtn ​​ที่ดี แต่การค้นหาเพียงเล็กน้อยอาจทำให้คุณได้รับคำตอบ
Crafter

1
@KingKing - ฉันขอแนะนำให้ทำเครื่องหมายนี้ว่าซ้ำแล้ว ...
Lee Taylor

คำตอบ:


189

คุณสามารถทำได้โดยใช้ ตัวนับ CSSร่วมกับ:beforeองค์ประกอบหลอก:

 ol {
   list-style: none;
   counter-reset: item;
 }
 li {
   counter-increment: item;
   margin-bottom: 5px;
 }
 li:before {
   margin-right: 10px;
   content: counter(item);
   background: lightblue;
   border-radius: 100%;
   color: white;
   width: 1.2em;
   text-align: center;
   display: inline-block;
 }
<ol>
  <li>item</li>
  <li>item</li>
  <li>item</li>
  <li>item</li>
</ol>


12
counter-reset: item;ควรจะไปในบล็อก OL มิฉะนั้นเคาน์เตอร์จะไม่ถูกรีเซ็ตในซ้อนกัน <ol>
Michael Klöpzig

2
เป็นทางออกที่ดี แต่การแสดงผลจะเป็นอย่างไรเมื่อเนื้อหาของliองค์ประกอบมีมากกว่าหนึ่งบรรทัด
cmhughes

ฉันคิดว่าในstackoverflow.com/questions/13354578/…คุณสามารถใช้ตัวอย่างเช่น margin-left: -2.0em; ความกว้าง: -2.0em; `
cmhughes

ค่า50%สำหรับborder-radius(มากกว่า100%) เพียงพอที่จะทำให้ได้วงกลม (ดูเช่น Lea Verou, " The Curious case of border-radius: 50% ," 30 ตุลาคม 2553)
Jim Ratliff

@cmhughes - หากคุณต้องการทำเช่นนั้นคุณจะให้li position: relative;และจากนั้น:beforeคุณก็จะให้position: absolute;แล้วใช้topและleftวางตำแหน่งให้ตรงตามที่คุณต้องการ
ไมค์

25

ฉันกำลังมองหาสิ่งที่แตกต่างและพบตัวอย่างนี้ที่ CodePen;

ลองสิ่งนี้: http://codepen.io/sawmac/pen/txBhK

body {
  font-size: 1.2em;
  font-family: "Helvetica Neue", Helvetica, sans-serif;
  margin: 50px;
}
.custom-counter {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.custom-counter li {
  counter-increment: step-counter;
  margin-bottom: 5px;
}
.custom-counter li::before {
  content: counter(step-counter);
  margin-right: 20px;
  font-size: 80%;
  background-color: rgb(180, 180, 180);
  color: white;
  font-weight: bold;
  padding: 3px 8px;
  border-radius: 11px;
}
<ol class="custom-counter">
  <li>This is the first item</li>
  <li>This is the second item</li>
  <li>This is the third item</li>
  <li>This is the fourth item</li>
  <li>This is the fifth item</li>
  <li>This is the sixth item</li>
</ol>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.