我有一个块,它会根据用户决定放入多少内容而采取不同的高度。在左侧的块内,我想放置一个垂直进度/计量条,它从包含块的顶部到底部运行全长,无论其大小如何,并显示一些值。
我目前的方法是使用一个元素并使用 transform 属性旋转它(根据这里的答案:Is It possible to Create a Vertical Meter With HTML5?)。这是我的 JS 小提琴:http: //jsfiddle.net/zt98w/2/
然而,当我这样做时,我将“高度”设置为 100%,它仍然认为自己是一个水平元素,并且等于父元素的宽度,而不是高度。
此外,容器元素的宽度似乎被仪表栏的高度拉伸,因此也会在仪表栏的右侧创建所有这些“额外填充”。似乎旋转变换似乎从它的中心作用在仪表条上,并且它包含的 div 在确定它自己的边界时似乎没有使其新位置生效。考虑仪表条的红色边界和父容器的绿色……红色仪表条只有一半在里面!我想我需要将它的位置设置为相对,然后调整它的“顶部”和“左侧”属性以“假”它看起来“内部”容器,
我想要一些兼容跨浏览器并且严格涉及 css 和 html(不是 JavaScript)的东西,所以这里提出的解决方案不起作用:CSS Vertical Progress Bar)
有什么想法吗?
HTML:
<form>
<meter min="1" max="5" value="2"></meter>
<label> Task 1</label>
<br>
<label> Task 2</label>
<br>
<label> Task 3</label>
<br>
<label> Task 4</label>
<br>
<label> Task 5</label>
<br>
<label> Task 6</label>
<br>
<label> Task 7</label>
<br>
<label> Task 8</label>
<br>
<label> Task ...</label>
</form>
CSS:
form {
position:absolute;
margin: 10px;
border:1px dashed green;
}
meter{
border:1px dashed red;
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
width:100%; /* This "width" still assumes that the meter is horizontal and takes on the width of the form, not the height which is intended */
}