Simple Star Rating

Star rating implementation using HTML and vanilla CSS, perfect for adding interactive rating functionality to your website without external dependencies.

Discover how to implement a star rating system using only HTML and vanilla CSS, providing a lightweight and efficient solution for adding rating functionality to your website. Star ratings offer users a familiar and intuitive way to express their opinions and preferences, enhancing user engagement and feedback.

With HTML and vanilla CSS, you can create interactive star rating components with customizable styles and responsive layouts. Define the star rating structure in HTML, style it with CSS to match your website's design language, and add basic functionality to enable rating selection and display.

Implementing star ratings with HTML and vanilla CSS ensures compatibility across different browsers and devices, without relying on external libraries or frameworks. By leveraging vanilla CSS for styling, you have full control over the appearance and behavior of the star rating component, allowing for seamless integration with your website's design.

Integrating star ratings into your website using HTML and vanilla CSS is straightforward and accessible to developers of all levels. Whether you're building a product review system, a rating-based recommendation engine, or a feedback form, star ratings provide users with a visual and interactive way to express their opinions.

Enhance user engagement and feedback on your website by incorporating interactive and customizable star ratings using HTML and vanilla CSS. Provide users with a familiar and intuitive rating interface that encourages participation and improves overall user experience.

Steps to Copy the Code

Creating a customized Star Rating with HTML and Vanilla CSS is straightforward with our comprehensive guide. Follow these steps to copy the code and personalize it to match your website's design:

  1. Copy the Code: Start by copying the HTML and CSS code for the Star Rating component from the above code snippet.
  2. Paste into Your Project: Open your project files in a code editor and paste the copied HTML and CSS code into the appropriate files. Paste the HTML code into your HTML file at the desired location where you want the Star Rating to appear. Paste the CSS code into your CSS file.
  3. Customize as Needed: HTML and Vanilla CSS provide flexibility for customizing the appearance and behavior of your Star Rating. Modify the code to match your design preferences, such as adjusting colors, sizes, and styles for the star icons and their containers.
  4. Test and Refine: After making modifications, thoroughly test the Star Rating in various browsers and screen sizes to ensure it displays correctly and functions as expected. Make any necessary adjustments to refine its appearance and behavior.
  5. Enhance with Interactivity (Optional): While Vanilla CSS is limited in interactivity, you can still enhance the Star Rating's functionality using HTML attributes or JavaScript. Consider adding features such as hover effects or click events to allow users to rate items.

By following these steps, you'll be able to effectively customize a Star Rating component using HTML and Vanilla CSS, allowing you to create an engaging and visually appealing rating system for your website visitors.

Code Explanation


<div class="rating">...</div>
  • This div element serves as a container for the star rating system.
  • It has the class "rating", which can be used for styling or targeting the container in CSS or JavaScript.
  • This span element represents an empty star.
  • The ☆ HTML entity corresponds to a Unicode character for an empty star symbol (☆).

The span element is repeated five times within the div container, resulting in a total of five empty stars.

CSS Code

.rating: This is a class selector targeting elements with the class name "rating".

  • unicode-bidi: bidi-override;: This property sets the inline directionality of the text. In this case, it's set to "bidi-override", which means the directionality of the text is overridden to right-to-left (RTL).
  • direction: rtl;: This property sets the direction of the text. It's set to "rtl", indicating a right-to-left direction.
  • text-align: center;: This property aligns the text content in the center horizontally within its container.

.rating > span: This selector targets <span> elements that are direct children of elements with the class "rating".

  • display: inline-block;: This property specifies that the elements should be displayed as inline-block elements, allowing for the setting of width and height while remaining in-line with surrounding content.
  • position: relative;: This property specifies the positioning context for the elements as relative to their normal position in the document flow.
  • width: 1.1em;: This property sets the width of the elements to 1.1 times the font size of the parent element. This ensures that each star has a consistent size relative to the font size.
  • font-size: 24px;: This property sets the font size of the elements to 24 pixels, making them relatively large compared to the surrounding text.

.rating > span:hover:before and .rating > span:hover ~ span:before: These selectors target pseudo-elements ::before of <span> elements that are being hovered over, as well as the subsequent sibling <span> elements.

  • content: "\2605";: This property inserts a Unicode character (a star symbol) as content before each <span> element that is being hovered over or any subsequent sibling <span> elements.
  • position: absolute;: This property positions the pseudo-elements absolutely within their containing element.
  • color: gold;: This property sets the color of the star symbols to gold, giving them a golden appearance.

.rating > span:hover:before: This selector specifically targets the pseudo-element ::before of <span> elements that are being hovered over.

  • It has the same properties as the previous selectors, ensuring that the star symbol appears before the hovered <span> element.