【发布时间】:2015-02-02 02:32:27
【问题描述】:
我正在创建一个日历,其中所有事件都显示在一个 div 中。根据top 和height 的值,应该将事件放置在确定的位置。让我给你看看。
在这张图片中,早上 6 点的两个事件都处于相同的垂直对齐方式。我可以使用float: left(jsfiddle) 解决这种行为。
如果事件没有vertical alignment 冲突(高度和顶部不冲突),那么我可以使用absolute position(jsfiddle) 而不是float 来模拟这种行为。
问题
真正的问题是当我尝试将事件安排在上午 9 点和 9:40 并让它们看起来像上图时。假设以下属性:
-
9:00高度:50px,顶部:200px -
9:40高度:50px,顶部:230px -
9:00 event的底部:200px + 50px = 250px -
9:30 event的顶部:230px - 然后,他们垂直分享
20px(250px - 230px)。
这就是为什么我尝试做这样的事情:
<div class="container">
<div class="event" style="height: 50px; top: 200px; float:left;">9 AM</div>
<div class="event" style="height: 50px; top: 230px; float:left;">9:40 AM</div>
</div>
...但是 float 属性在具有绝对位置的元素中不起作用。
概述
我的想法是将top 值视为根据时间将事件垂直放置在日历中的指南。例如,
- 上午 6 点 -> 顶部:100 像素
- 上午 7 点 -> 顶部:150 像素
- 晚上 8 点 -> 顶部:200 像素
实现方式
我尝试使用纯 ccs 自己解决这个问题,但我不介意应用 javascript。但是,我无法向您展示我对 javascript 的尝试,因为我什至无法做出相当大的 css 结果。正如我之前所说,我使用 top 属性是因为我认为它可以很容易地进行位置操作,但如果有必要我可以使用另一种方法。提前谢谢你。
【问题讨论】:
标签: javascript html css css-float absolute