CSS實(shí)現(xiàn)半星,通常是用于評(píng)分系統(tǒng)中。這可能看起來(lái)像一個(gè)巨大的挑戰(zhàn),因?yàn)楝F(xiàn)有的星星是由頂部五個(gè)三角形組成。但是,我們可以通過(guò)偽元素的使用以及一些細(xì)微的操作,讓它變得容易。下面是一個(gè)簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)半星:
.star { display: inline-block; font-size: 24px; /* 星星圖標(biāo)的寬度和高度 */ width: 120px; height: 24px; position: relative; overflow: hidden; } .star::before, .star::after { content: "★★★★★"; position: absolute; top: 0; left: 0; color: #fde16d; } .star::before { z-index: 1; width: 50%; overflow: hidden; } .star::after { z-index: 0; } /* 為了顯示半星,把兩個(gè)五角星連起來(lái) */ .star.half::before { width: 30%; } /* 刪除超過(guò)五個(gè)星星后的剩余部分的空白 */ .star.full:before { display: none; }
如上所示,我們首先為“ star”類設(shè)置樣式,并定義星星圖標(biāo)的寬度和高度。然后,我們使用偽元素來(lái)插入兩個(gè)五角星,并定義它們的樣式:星星的顏色為黃色,寬度為50%的星星上面需要覆蓋一層半透明蒙板。最后,我們使用類來(lái)表示星星的狀態(tài),如“ full”表示完整的五星級(jí)評(píng)分,而“ half”表示半個(gè)星星。
這里的關(guān)鍵在于使用“:before”偽元素并設(shè)置“ z-index”,確保半星可以顯示在完整星星的上面。此外,通過(guò)設(shè)置星星元素的“ overflow”屬性為“ hidden”,在星星超過(guò)其寬度時(shí),我們可以在不改變星星大小的情況下刪除多余部分。
最后,我們只需要添加適當(dāng)?shù)念悾涂梢酝昝赖仫@示星星的狀態(tài)。這個(gè)實(shí)現(xiàn)半星的方法可以為你的項(xiàng)目帶來(lái)更好的體驗(yàn)!