How To Make Accordion Css

CSS Programming

Today, I want to share with you my personal journey of creating an accordion using CSS. Accordion menus are a great way to organize content and make it more user-friendly. I was inspired to create my own accordion after seeing it on a website and thought it would be a fun challenge to tackle.

To start, I did some research to understand the underlying principles of how an accordion works. An accordion is essentially a vertical list of collapsible panels, where only one panel is visible at a time. When a panel is clicked, it expands to display its content, while the other panels collapse simultaneously.

I began by setting up the basic structure of the accordion using HTML. I created an unordered list with list items for each panel. Inside each list item, I added a heading and a div for the content. The heading serves as the panel’s clickable element, and the content div holds the content to be displayed when the panel is expanded.

Next, it was time to dive into the CSS. I started by giving each list item a specific height and width to create the desired accordion effect. I used the display: flex; property to align the elements horizontally within the list item and added padding to create some spacing between them.

Then, I used the :target selector to target the clicked panel. When a panel is clicked, its :target pseudo-class is activated, allowing us to style the panel accordingly. I set the height of the clicked panel to 100% to expand it, while the other panels remained collapsed by default. I also added a smooth transition property to create a smooth animation effect when the panel expands or collapses.

To make the accordion interactive, I added a little JavaScript to toggle the active state of the clicked panel. This way, when a panel is clicked again, it collapses back to its initial state.

Throughout the process, I encountered various challenges, such as making the accordion responsive and ensuring that it worked well across different browsers. I had to adjust the CSS and make use of media queries to ensure a seamless user experience on both desktop and mobile devices.

Overall, creating my own accordion using CSS was a rewarding experience. It allowed me to dive deep into CSS techniques and learn how to manipulate elements to achieve the desired effect. If you’re interested in trying it out yourself, I encourage you to experiment and add your own personal touches to make it unique. Happy coding!


Building an accordion using CSS can be a fun and challenging project. It requires a solid understanding of HTML, CSS, and some basic JavaScript. By following the steps outlined in this article, you can create your own accordion and customize it to fit your needs. Remember to experiment and add your personal touches to make it truly unique. So why not give it a try and see what you can create? Happy coding!