Hey There!
Let's create a simple Age Calculator project using HTML, CSS, and JavaScript. I'll explain everything step-by-step in a friendly way so you can understand and build it easily.
What is the Age Calculator?
The Age Calculator is a fun little tool where you can input your birthdate, and it will calculate your age in years, months, and days. It’s a great way to practice your web development skills!
Step 1: Set Up the HTML Structure
HTML is like the skeleton of our project. It defines the structure of the page.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Age Calculator</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="container"> <h1>Age Calculator</h1> <label for="birthdate">Enter your birthdate:</label> <input type="date" id="birthdate" name="birthdate"> <button onclick="calculateAge()">Calculate Age</button> <div id="result" class="result"> <p id="years"></p> <p id="months"></p> <p id="days"></p> </div> </div> <script src="script.js"></script> </body> </html>
Explanation:
<input type="date">
: This creates a date picker where users can select their birthdate.<button>
: When clicked, it triggers thecalculateAge()
function.<p id="result">
: This is where the calculated age will be displayed.
Step 2: Style the Page with CSS
CSS is like the makeup of our project. It makes everything look pretty!
<style> body { font-family: 'Arial', sans-serif; background: linear-gradient(135deg, #6a11cb, #2575fc); display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; color: #fff; } .container { background: rgba(255, 255, 255, 0.1); padding: 30px; border-radius: 15px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); backdrop-filter: blur(10px); text-align: center; max-width: 400px; width: 100%; } h1 { font-size: 2.5rem; margin-bottom: 20px; } label { font-size: 1.2rem; display: block; margin-bottom: 10px; } input[type="date"] { width: 100%; padding: 10px; margin: 10px 0; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 5px; font-size: 1rem; background: rgba(255, 255, 255, 0.1); color: #fff; } button { width: 100%; padding: 12px; background: #ff6f61; color: white; border: none; border-radius: 5px; font-size: 1.2rem; cursor: pointer; transition: background 0.3s ease; } button:hover { background: #ff3b2f; } .result { margin-top: 20px; font-size: 1.2rem; text-align: left; } .result p { margin: 10px 0; padding: 10px; background: rgba(255, 255, 255, 0.1); border-radius: 5px; } /* Mobile-friendly adjustments */ @media (max-width: 480px) { h1 { font-size: 2rem; } .container { padding: 20px; } input[type="date"], button { font-size: 1rem; } } </style>
Explanation:
- Centering the content: We use
flexbox
to center the calculator on the page. - Styling the button: It changes color when you hover over it.
- Responsive design: The page looks good on all screen sizes.
Step 3: Add JavaScript for Functionality
JavaScript is the brain of our project. It does the calculations and updates the result.
<script> function calculateAge() { const birthdate = document.getElementById('birthdate').value; if (!birthdate) { alert("Please enter your birthdate!"); return; } const today = new Date(); const birthDate = new Date(birthdate); let years = today.getFullYear() - birthDate.getFullYear(); let months = today.getMonth() - birthDate.getMonth(); let days = today.getDate() - birthDate.getDate(); // Adjust for negative months or days if (months < 0 || (months === 0 && days < 0)) { years--; months += 12; } if (days < 0) { const lastMonth = new Date(today.getFullYear(), today.getMonth() - 1, 0); days += lastMonth.getDate(); months--; } // Display the result document.getElementById('years').textContent = `Years: ${years}`; document.getElementById('months').textContent = `Months: ${months}`; document.getElementById('days').textContent = `Days: ${days}`; } </script>
Explanation:
- Get the birthdate: We retrieve the date selected by the user.
- Calculate the age:
- Subtract the birth year from the current year.
- Adjust the age if the user hasn’t had their birthday yet this year.
- Display the result: Update the
<p>
element with the calculated age.
How It Works:
- The user selects their birthdate using the date picker.
- When they click the "Calculate Age" button, the
calculateAge()
function runs. - The function calculates the age and displays it on the page.
Try It Out!
- Copy the HTML, CSS, and JavaScript code into their respective files (
index.html
,styles.css
,script.js
). - Open the
index.html
file in your browser. - Enter your birthdate and see your age magically appear!