CSS打星星評分是一種在網(wǎng)頁設(shè)計中常見的用戶反饋機(jī)制,用于展示用戶對某個產(chǎn)品或服務(wù)的評分,這種評分方式通常使用CSS樣式來美化顯示效果,使得網(wǎng)頁更加直觀和友好。
要實(shí)現(xiàn)CSS打星星評分,我們需要先準(zhǔn)備一些HTML代碼來構(gòu)建評分表單,然后使用CSS樣式來美化這些代碼,我們可以使用CSS中的偽元素(pseudo-elements)來創(chuàng)建星星圖標(biāo),并使用JavaScript來處理用戶提交的評分?jǐn)?shù)據(jù)。
在HTML代碼中,我們可以使用一個簡單的表單來接收用戶的評分輸入,
<form id="rating-form"> <input type="number" id="rating" name="rating" min="1" max="5" /> <button type="submit">提交評分</button> </form>
我們可以使用CSS樣式來美化這個表單和星星圖標(biāo)。
#rating-form { display: flex; align-items: center; } #rating { width: 30px; height: 30px; border-radius: 50%; background-color: #f0f0f0; position: relative; } #rating::before, #rating::after { content: "★"; position: absolute; top: 0; left: 0; width: 30px; height: 30px; font-size: 24px; color: #f0f0f0; } #rating::after { left: 30px; }
在這個CSS樣式中,我們使用了偽元素::before
和::after
來創(chuàng)建兩個星星圖標(biāo),并分別將它們定位在評分的左側(cè)和右側(cè),我們可以使用JavaScript來處理用戶提交的評分?jǐn)?shù)據(jù),并根據(jù)評分結(jié)果來更新星星圖標(biāo)的樣式。
document.getElementById('rating-form').addEventListener('submit', function(event) { event.preventDefault(); var rating = document.getElementById('rating').value; var stars = document.getElementById('rating'); for (var i = 1; i <= 5; i++) { if (i <= rating) { stars.style.setProperty('--star-color', 'gold'); } else { stars.style.setProperty('--star-color', 'gray'); } var star = stars.children[i - 1]; star.style.backgroundColor = getComputedStyle(star).getPropertyValue('--star-color'); } });
在這個JavaScript代碼中,我們根據(jù)用戶提交的評分?jǐn)?shù)據(jù)來更新星星圖標(biāo)的樣式,我們將評分范圍內(nèi)的星星圖標(biāo)設(shè)置為金色,并將其他星星圖標(biāo)設(shè)置為灰色,我們使用CSS的backgroundColor
屬性來更新每個星星圖標(biāo)的背景顏色。