Table of Contents
Creating a responsive hotel booking page is essential for providing a seamless user experience across all devices. Using CSS Flexbox simplifies the layout process and ensures your page adapts to different screen sizes. In this article, we will build a flexible and responsive layout for a hotel booking page featuring various room types.
Understanding Flexbox Basics
Flexbox is a CSS layout module designed to arrange elements efficiently within a container. It allows for easy alignment, spacing, and responsiveness. Key properties include display: flex, flex-direction, justify-content, and align-items.
Setting Up the Layout Structure
First, create a container for the room types using a <div> element with the class room-container. Inside, each room type will be a separate <div> with the class room-card.
Example HTML structure:
<div class="room-container">
<div class="room-card">Room Type 1</div>
<div class="room-card">Room Type 2</div>
<div class="room-card">Room Type 3</div>
</div>
Applying Flexbox Styles
Use CSS to style the container and cards for responsiveness. The container will be a flex container with wrapping enabled, allowing room cards to stack on smaller screens.
Sample CSS:
.room-container {
display: flex;
flex-wrap: wrap;
gap: 20px;
}
.room-card {
flex: 1 1 300px;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
}
Adding Content to Room Cards
Each room card can include an image, room name, description, and price. Use nested blocks to add images and text for clarity.
Example:
<div class=”room-card”>
<img src=”room1.jpg” alt=”Deluxe Room” />
<h3>Deluxe Room</h3>
<p>Spacious room with sea view, king-sized bed, and modern amenities.</p>
<p>Price: $200/night</p>
</div>
Making the Layout Responsive
Flexbox’s flexible nature ensures the layout adapts to different screen sizes. The flex: 1 1 300px; property allows each card to grow and shrink, maintaining a minimum width of 300px. On smaller screens, the cards will stack vertically, providing a user-friendly experience.
Additional media queries can further refine the layout for very small devices, ensuring readability and accessibility.
Conclusion
Using CSS Flexbox for a hotel booking page provides a clean, responsive, and adaptable layout. By structuring your HTML with container and card elements and applying flexible CSS styles, you can create an engaging user experience that works across all devices.