.calculator-container {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 20px auto;
border: 1px solid #ccc;
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.calculator-form h2 {
text-align: center;
margin-bottom: 15px;
color: #333;
}
.calculator-form p {
text-align: center;
margin-bottom: 20px;
color: #555;
font-size: 0.9em;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #444;
}
.form-group input[type="number"],
.form-group select {
width: calc(100% – 10px);
padding: 8px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1em;
}
.form-group select {
appearance: none; /* Remove default arrow */
background-image: url('data:image/svg+xml;charset=US-ASCII,');
background-repeat: no-repeat;
background-position: right 8px top 50%;
background-size: 12px 7px;
}
button {
width: 100%;
padding: 10px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 1.1em;
transition: background-color 0.3s ease;
}
button:hover {
background-color: #45a049;
}
.calculator-result {
margin-top: 20px;
padding: 15px;
background-color: #f9f9f9;
border: 1px solid #eee;
border-radius: 4px;
text-align: center;
font-size: 1.1em;
color: #333;
}
function calculateBodyFat() {
var neck = parseFloat(document.getElementById("neckCircumference").value);
var waist = parseFloat(document.getElementById("waistCircumference").value);
var hip = parseFloat(document.getElementById("hipCircumference").value);
var height = parseFloat(document.getElementById("height").value);
var gender = document.getElementById("gender").value;
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = ""; // Clear previous results
if (isNaN(neck) || isNaN(waist) || isNaN(hip) || isNaN(height)) {
resultDiv.innerHTML = "Please enter valid numbers for all fields.";
return;
}
var bodyFatPercentage = 0;
if (gender === "male") {
// Navy method formula for men
if (hip > 0) { // Hip circumference is used for men
bodyFatPercentage = 495 / (1.0324 – (0.19077 * Math.log10(waist – neck)) + (0.15457 * Math.log10(height))) – 450;
} else {
resultDiv.innerHTML = "Please enter a valid hip circumference for males.";
return;
}
} else if (gender === "female") {
// Navy method formula for women
bodyFatPercentage = 495 / (1.29579 – (0.35004 * Math.log10(waist + hip – neck)) + (0.22100 * Math.log10(height))) – 450;
} else {
resultDiv.innerHTML = "Please select a gender.";
return;
}
// Basic validation for realistic results
if (bodyFatPercentage 60) {
resultDiv.innerHTML = "Calculated body fat percentage is outside typical realistic ranges. Please double-check your measurements.";
} else {
resultDiv.innerHTML = "Your estimated Body Fat Percentage:
" + bodyFatPercentage.toFixed(2) + "%";
}
}