【发布时间】:2014-05-09 20:29:12
【问题描述】:
请参阅 JSfiddle: http://jsfiddle.net/76yKL/
有没有办法将 "ruler-mark-short" 和 "ruler-mark-high" div 对齐到它们父母的底部 和 中心(“ruler-mark-container”)?
由于“ruler-mark-short”和“ruler-mark-high”的宽度可以通过 JavaScript 动态更改,我不能使用 'margin' 或 'left' 以像素为单位。 所以,我必须使用“margin: 0 auto”或“text-align: center”之类的东西,但这些都不起作用。
我在不使用额外的包装容器的情况下将标尺标记与底部和中心对齐。
感谢您的帮助。
来自上述 JSfiddle 的代码:
HTML:
<div class="container">
<div class="ruler">
<div class="ruler-mark-container">
<div class="ruler-mark-high"></div>
</div>
<div class="ruler-mark-container">
<div class="ruler-mark-short"></div>
</div>
<div class="ruler-mark-container">
<div class="ruler-mark-short"></div>
</div>
<div class="ruler-mark-container">
<div class="ruler-mark-short"></div>
</div>
<div class="ruler-mark-container">
<div class="ruler-mark-short"></div>
</div>
<div class="ruler-mark-container">
<div class="ruler-mark-high"></div>
</div>
</div>
</div>
CSS:
.container {
border: 1px solid grey;
position: absolute;
width: 700px;
height: 200px;
}
.ruler {
border: 1px solid orange;
position: absolute;
width: 100%;
height: 100px;
bottom: 0px;
}
.ruler-mark-container {
border: 1px solid blue;
position: relative;
width: 30px;
height: 100%;
/*display: inline-block;*/
float: left;
bottom: 0px;
}
.ruler-mark-high {
position: absolute;
border: 1px solid black;
background-color: grey;
bottom: 0px;
width: 3px;
height: 50px;
}
.ruler-mark-short {
position: absolute;
border: 1px solid black;
background-color: grey;
bottom: 0px;
width: 3px;
height: 25px;
}
【问题讨论】:
-
喜欢这个? jsfiddle.net/76yKL/1
-
不完全是,如果您更改“ruler-mark-high”或“ruler-mark-short”的宽度,它将不再居中。看到这个:jsfiddle.net/76yKL/3 但是谢谢。不错的尝试:)
-
好的,页面加载后宽度可以改变,对吧?
-
是的,没错。页面加载后可以通过 JavaScript 更改宽度。