
You can learn more about the <meter> element here.
There is a method to tilt an element using CSS. So, I going to apply that method to the <meter> element. Check this out.
<!DOCTYPE html>
<html>
<head>
<title>HTML Meter element example</title>
<style>
meter {
/* for Firefox: Change default appearance */
-moz-appearance: none;
width: 170px;
height: 120px;
margin: 40px 0;
/* tilt the meter to display vertically */
transform: rotate(-90deg);
-ms-transform: rotate(-90*0deg); /* for IE */
}
/* add style to change the look and feel */
meter::-webkit-meter-bar {
background: #eeeeee;
border-radius: 2px;
}
/* show dynamic content (a text) next to the meter element */
meter::after {
content: attr(power);
}
</style>
</head>
<body>
<p><label for='battery'>Select a value: </label>
<select id='battery' name='nwords'>
<option value="">-- power --</option>
<option value="10">10%</option>
<option value="15">15%</option>
<option value="25">25%</option>
<option value="30">30%</option>
<option value="40">40%</option>
<option value="50">50%</option>
<option value="80">80%</option>
</select>
</p>
<p>
/* the meter tag with attributes */
<meter id='battery-power' min='0' low='20' high='50'
max='100' optimum='60'
value='40' power='40% power left'>
40% power left
</meter>
</p>
</body>
<script>
let power = document.getElementById('battery');
power.addEventListener ('change', function () {
let mt = document.getElementById('battery-power');
mt.value = this.value;
// show how much power is left
mt.setAttribute('power', + this.value + '% power left');
});
</script>
</html>So, that’s how you display the <meter> element vertically on your web page. It’s a simple CSS trick. Simply rotate the element according to you requirement.
Now, if you want to change the transform property dynamically using JS, check this post.
