表格悬停时填充div

时间:2014-08-12 21:02:22

标签: javascript jquery html css

所以,我正在尝试制作一个简单的互动日历。最初我想要显示几个月,但当鼠标悬停一个月以上时,我希望所有的个人日子都出现。最后,我希望能够每天点击查看当天的内容。

以下是我目前的情况:http://jsfiddle.net/r8orrebk/

HTML:

<div id = "calendar">
<div class="month">
    January
    <table class="days">
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
        </tr>
        <tr>
            <td>5</td>
            <td>6</td>
            <td>7</td>
            <td>8</td>
            <td>9</td>
            <td>10</td>
            <td>11</td>
        </tr>
        <tr>
            <td>12</td>
            <td>13</td>
            <td>14</td>
            <td>15</td>
            <td>16</td>
            <td>17</td>
            <td>18</td>
        </tr>
        <tr>
            <td>19</td>
            <td>20</td>
            <td>21</td>
            <td>22</td>
            <td>23</td>
            <td>24</td>
            <td>25</td>
        </tr>
        <tr>
            <td>26</td>
            <td>27</td>
            <td>28</td>
            <td>29</td>
            <td>30</td>
            <td>31</td>
            <td></td>
        </tr>
    </table>
</div>
<div class="month">February</div>
<div class="month">March</div>
<div class="month">April</div>
<div class="month">May</div>
<div class="month">June</div>
<div class="month">July</div>
<div class="month">August</div>

的CSS:

.days {
    display: none;
    border: 1px solid;
}
.month {
    width: 24%;
    height: 150px;
    float: left;
    border: 1px solid;
    margin: -1px 0 0 -1px;
}
.month:hover > .days {
    display: block;
}

实现这一目标的最佳方法是什么?我刚开始使用HTML和CSS,所以我甚至不知道使用表格是不是一个好主意。与我现在的情况不同,我希望这些日子可以填满整个月份。

我应该使用javascript / jquery而不是在CSS中悬停吗?

另外,有没有办法让我可以赚一个月的日子,每个月只使用它,或者我需要像现在一样每天制作div或td?

谢谢。

1 个答案:

答案 0 :(得分:0)

.days激活且display:block时,默认为100%宽。这就是块显示的工作原理。

您可以通过将显示设置为表而不是块来修复它:

.month:hover > .days {
    display: table;
}