-
Notifications
You must be signed in to change notification settings - Fork 842
Open
Description
<title>HealthMate BMI Calculator | Calculate Your Body Mass Index</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%);
color: #333;
line-height: 1.6;
min-height: 100vh;
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
}
.container {
max-width: 1200px;
width: 100%;
display: grid;
grid-template-columns: 1fr 300px;
gap: 20px;
margin-top: 20px;
}
@media (max-width: 900px) {
.container {
grid-template-columns: 1fr;
}
}
header {
text-align: center;
margin-bottom: 30px;
width: 100%;
color: white;
}
h1 {
font-size: 2.8rem;
margin-bottom: 10px;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}
.tagline {
font-size: 1.2rem;
opacity: 0.9;
}
.calculator-card {
background: white;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
padding: 30px;
margin-bottom: 20px;
}
.form-group {
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: #444;
}
input, select {
width: 100%;
padding: 14px;
border: 2px solid #ddd;
border-radius: 8px;
font-size: 16px;
transition: border-color 0.3s;
}
input:focus, select:focus {
border-color: #2575fc;
outline: none;
}
.gender-selection {
display: flex;
gap: 15px;
margin-bottom: 20px;
}
.gender-option {
flex: 1;
text-align: center;
padding: 15px;
border: 2px solid #ddd;
border-radius: 8px;
cursor: pointer;
transition: all 0.3s;
}
.gender-option.selected {
border-color: #2575fc;
background-color: #f0f7ff;
}
.gender-option i {
font-size: 24px;
margin-bottom: 8px;
display: block;
}
.unit-toggle {
display: flex;
align-items: center;
margin-bottom: 15px;
gap: 10px;
}
.toggle-switch {
position: relative;
display: inline-block;
width: 60px;
height: 30px;
}
.toggle-switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
transition: .4s;
border-radius: 34px;
}
.slider:before {
position: absolute;
content: "";
height: 22px;
width: 22px;
left: 4px;
bottom: 4px;
background-color: white;
transition: .4s;
border-radius: 50%;
}
input:checked + .slider {
background-color: #2575fc;
}
input:checked + .slider:before {
transform: translateX(30px);
}
.unit-label {
font-weight: 600;
color: #444;
}
.height-input {
display: none;
}
.height-input.active {
display: block;
}
button {
width: 100%;
padding: 16px;
background: linear-gradient(to right, #2575fc, #6a11cb);
color: white;
border: none;
border-radius: 8px;
font-size: 18px;
font-weight: 600;
cursor: pointer;
transition: transform 0.2s, box-shadow 0.2s;
margin-top: 10px;
}
button:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.result-container {
text-align: center;
padding: 20px;
margin-top: 30px;
border-radius: 10px;
background: #f8f9fa;
display: none;
}
.bmi-value {
font-size: 3rem;
font-weight: 700;
margin: 15px 0;
}
.bmi-category {
font-size: 1.5rem;
font-weight: 600;
margin-bottom: 15px;
padding: 8px 15px;
border-radius: 30px;
display: inline-block;
}
.underweight { background: #ffc107; color: #333; }
.normal { background: #28a745; color: white; }
.overweight { background: #fd7e14; color: white; }
.obese { background: #dc3545; color: white; }
.recommendations {
margin-top: 20px;
text-align: left;
padding: 15px;
background: white;
border-radius: 8px;
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
}
.ads-container {
background: white;
border-radius: 15px;
padding: 20px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
height: fit-content;
}
.ad-placeholder {
background: #f8f9fa;
border: 2px dashed #ddd;
border-radius: 8px;
padding: 30px;
text-align: center;
margin-bottom: 20px;
color: #777;
}
.ad-title {
font-size: 1.2rem;
margin-bottom: 15px;
color: #444;
font-weight: 600;
}
footer {
margin-top: 40px;
text-align: center;
color: white;
opacity: 0.8;
font-size: 0.9rem;
width: 100%;
padding: 20px;
}
.disclaimer {
max-width: 800px;
margin: 20px auto;
background: rgba(255, 255, 255, 0.1);
padding: 15px;
border-radius: 8px;
font-size: 0.9rem;
}
</style>
HealthMate BMI Calculator
Calculate your Body Mass Index based on age and gender
<div class="container">
<div class="main-content">
<div class="calculator-card">
<div class="form-group">
<label for="age">Age (1-100 years)</label>
<input type="number" id="age" min="1" max="100" value="25" required>
</div>
<label>Gender</label>
<div class="gender-selection">
<div class="gender-option selected" id="male">
<i class="fas fa-mars"></i>
<span>Male</span>
</div>
<div class="gender-option" id="female">
<i class="fas fa-venus"></i>
<span>Female</span>
</div>
</div>
<div class="form-group">
<label>Height Unit</label>
<div class="unit-toggle">
<span class="unit-label">cm</span>
<label class="toggle-switch">
<input type="checkbox" id="heightUnitToggle">
<span class="slider"></span>
</label>
<span class="unit-label">in</span>
</div>
<div class="height-input active" id="heightCm">
<label for="heightCmInput">Height (cm)</label>
<input type="number" id="heightCmInput" placeholder="Enter height in centimeters" required>
</div>
<div class="height-input" id="heightIn">
<label for="heightInInput">Height (inches)</label>
<input type="number" id="heightInInput" placeholder="Enter height in inches" required>
</div>
</div>
<div class="form-group">
<label for="weight">Weight (kg)</label>
<input type="number" id="weight" placeholder="Enter weight in kg" required>
</div>
<button id="calculate-btn">Calculate BMI</button>
<div class="result-container" id="result">
<h2>Your BMI Result</h2>
<div class="bmi-value" id="bmi-value">23.4</div>
<div class="bmi-category normal" id="bmi-category">Normal Weight</div>
<div class="recommendations">
<h3>Health Recommendations</h3>
<p id="recommendation-text">Maintain your current weight with a balanced diet and regular exercise.</p>
</div>
</div>
</div>
<div class="calculator-card">
<h2>Understanding BMI</h2>
<p>Body Mass Index (BMI) is a measure of body fat based on height and weight that applies to adult men and women.</p>
<h3>BMI Categories:</h3>
<ul>
<li><strong>Underweight:</strong> BMI less than 18.5</li>
<li><strong>Normal weight:</strong> BMI 18.5 to 24.9</li>
<li><strong>Overweight:</strong> BMI 25 to 29.9</li>
<li><strong>Obesity:</strong> BMI 30 or greater</li>
</ul>
<p>Note: BMI is a screening tool and does not directly measure body fat. Healthcare professionals use additional tools for diagnosis.</p>
</div>
</div>
<div class="ads-container">
<div class="ad-title">Advertisement</div>
<div class="ad-placeholder">
<!-- Google AdSense Ad Unit -->
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-YOUR_ADSENSE_ID" crossorigin="anonymous"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-YOUR_ADSENSE_ID"
data-ad-slot="YOUR_AD_SLOT"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>Ad will be displayed here</p>
</div>
<div class="ad-placeholder">
<div class="ad-title">Sponsored Content</div>
<p>Advertisement space (300x250)</p>
<!-- Additional AdSense code can be placed here -->
</div>
</div>
</div>
<footer>
<div class="disclaimer">
<p><strong>Disclaimer:</strong> This BMI calculator provides approximate values and should not be used as a sole indicator of health. Consult a healthcare professional for advice on weight and health.</p>
</div>
<p>© 2023 HealthMate BMI Calculator | Privacy Policy | Terms of Use</p>
</footer>
<script>
// Gender selection
const maleOption = document.getElementById('male');
const femaleOption = document.getElementById('female');
let selectedGender = 'male';
maleOption.addEventListener('click', () => {
maleOption.classList.add('selected');
femaleOption.classList.remove('selected');
selectedGender = 'male';
});
femaleOption.addEventListener('click', () => {
femaleOption.classList.add('selected');
maleOption.classList.remove('selected');
selectedGender = 'female';
});
// Height unit toggle
const heightUnitToggle = document.getElementById('heightUnitToggle');
const heightCmInput = document.getElementById('heightCm');
const heightInInput = document.getElementById('heightIn');
heightUnitToggle.addEventListener('change', function() {
if (this.checked) {
heightCmInput.classList.remove('active');
heightInInput.classList.add('active');
} else {
heightInInput.classList.remove('active');
heightCmInput.classList.add('active');
}
});
// BMI Calculation
document.getElementById('calculate-btn').addEventListener('click', () => {
const age = parseInt(document.getElementById('age').value);
const weight = parseFloat(document.getElementById('weight').value);
let height;
if (heightUnitToggle.checked) {
// Convert inches to cm for calculation
const heightIn = parseFloat(document.getElementById('heightInInput').value);
if (!heightIn || heightIn < 20 || heightIn > 100) {
alert('Please enter a valid height between 20 and 100 inches');
return;
}
height = heightIn * 2.54; // Convert inches to cm
} else {
height = parseFloat(document.getElementById('heightCmInput').value);
if (!height || height < 50 || height > 250) {
alert('Please enter a valid height between 50cm and 250cm');
return;
}
}
if (!age || age < 1 || age > 100) {
alert('Please enter a valid age between 1 and 100');
return;
}
if (!weight || weight < 2 || weight > 300) {
alert('Please enter a valid weight between 2kg and 300kg');
return;
}
// Calculate BMI: weight (kg) / (height (m) * height (m))
const heightInMeters = height / 100;
const bmi = weight / (heightInMeters * heightInMeters);
const roundedBMI = bmi.toFixed(1);
// Display result
document.getElementById('bmi-value').textContent = roundedBMI;
const resultElement = document.getElementById('result');
resultElement.style.display = 'block';
// Determine category and recommendations
const categoryElement = document.getElementById('bmi-category');
const recommendationElement = document.getElementById('recommendation-text');
let category = '';
let recommendation = '';
if (bmi < 18.5) {
category = 'Underweight';
categoryElement.className = 'bmi-category underweight';
recommendation = `For your age and gender, a BMI below 18.5 is considered underweight. Consider consulting with a healthcare provider about healthy weight gain strategies.`;
} else if (bmi >= 18.5 && bmi < 25) {
category = 'Normal Weight';
categoryElement.className = 'bmi-category normal';
recommendation = `For your age and gender, your BMI is in the healthy range. Maintain your weight with a balanced diet and regular physical activity.`;
} else if (bmi >= 25 && bmi < 30) {
category = 'Overweight';
categoryElement.className = 'bmi-category overweight';
recommendation = `For your age and gender, a BMI between 25 and 29.9 is considered overweight. Consider incorporating more physical activity and healthier food choices.`;
} else {
category = 'Obese';
categoryElement.className = 'bmi-category obese';
recommendation = `For your age and gender, a BMI of 30 or higher is considered obese. It's recommended to consult with a healthcare provider about weight management strategies.`;
}
categoryElement.textContent = category;
recommendationElement.textContent = recommendation;
// Scroll to results
resultElement.scrollIntoView({ behavior: 'smooth' });
});
</script>
Metadata
Metadata
Assignees
Labels
No labels