คุณสามารถใช้องค์ประกอบbefore
หรือafter
หลอกและใช้ CSS กับมันได้ มีหลากหลายวิธี คุณสามารถเพิ่มทั้งสองbefore
และafter
หมุนและวางตำแหน่งของแต่ละแท่งให้เป็นแท่งใดแท่งหนึ่ง วิธีการแก้ปัญหาได้ง่ายขึ้นคือการเพิ่มสองเส้นขอบให้เพียงองค์ประกอบและหมุนได้โดยใช้before
transform: rotate
เลื่อนลงเพื่อดูโซลูชันอื่นที่ใช้องค์ประกอบจริงแทนองค์ประกอบ pseuso
ในกรณีนี้ฉันได้เพิ่มลูกศรเป็นสัญลักษณ์แสดงหัวข้อย่อยในรายการและใช้em
ขนาดเพื่อให้มีขนาดเหมาะสมกับแบบอักษรของรายการ
ul {
list-style: none;
}
ul.big {
list-style: none;
font-size: 300%
}
li::before {
position: relative;
/* top: 3pt; Uncomment this to lower the icons as requested in comments*/
content: "";
display: inline-block;
/* By using an em scale, the arrows will size with the font */
width: 0.4em;
height: 0.4em;
border-right: 0.2em solid black;
border-top: 0.2em solid black;
transform: rotate(45deg);
margin-right: 0.5em;
}
/* Change color */
li:hover {
color: red; /* For the text */
}
li:hover::before {
border-color: red; /* For the arrow (which is a border) */
}
<ul>
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
</ul>
<ul class="big">
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
</ul>
แน่นอนคุณไม่จำเป็นต้องใช้before
หรือafter
คุณสามารถใช้เคล็ดลับเดียวกันกับองค์ประกอบปกติได้เช่นกัน สำหรับรายการด้านบนจะสะดวกเพราะคุณไม่ต้องการมาร์กอัปเพิ่มเติม แต่บางครั้งคุณอาจต้องการ (หรือต้องการ) มาร์กอัปอยู่ดี คุณสามารถใช้ a div
หรือspan
สำหรับสิ่งนั้นและฉันยังเคยเห็นคนรีไซเคิลi
องค์ประกอบสำหรับ "ไอคอน" ด้วยซ้ำ เพื่อให้มาร์กอัปมีลักษณะดังนี้ ไม่ว่าจะใช้<i>
สิ่งนี้ถูกต้องหรือไม่ก็เป็นที่ถกเถียงกันอยู่ แต่คุณสามารถใช้สแปนสำหรับสิ่งนี้ได้เช่นกันเพื่อให้ปลอดภัย
/* Default icon formatting */
i {
display: inline-block;
font-style: normal;
position: relative;
}
/* Additional formatting for arrow icon */
i.arrow {
/* top: 2pt; Uncomment this to lower the icons as requested in comments*/
width: 0.4em;
height: 0.4em;
border-right: 0.2em solid black;
border-top: 0.2em solid black;
transform: rotate(45deg);
}
And so you can have an <i class="arrow" title="arrow icon"></i> in your text.
This arrow is <i class="arrow" title="arrow icon"></i> used to be deliberately lowered slightly on request.
I removed that for the general public <i class="arrow" title="arrow icon"></i> but you can uncomment the line with 'top' <i class="arrow" title="arrow icon"></i> to restore that effect.
ถ้าคุณแสวงหาแรงบันดาลใจมากขึ้นตรวจสอบให้แน่ใจว่าได้ตรวจสอบห้องสมุดนี้น่ากลัวของบริสุทธิ์ไอคอน CSS โดยนิโคลัสกัลลาเกอร์ :)