css - 如何创建带有嵌套列表的水平日历?

标签 css html-lists nested-lists

我想创建一个像这样的日期选择器:

| 1 2 3 4 5 6 7 8 9 .. 29 30 31 | 1 2 3 4 ..
| January                       | February

我认为最好的结构是:

 <div class="outer">
   <ol>
     <li class="month">
     January
       <ol>
         <li class="day">1</li>
         <li class="day">2</li>
         <li class="day">3</li>
         ...
        </ol>
      </li>
      <li class="month">
        February
        <ol>
          <li class="day">1</li>
          <li class="day">2</li>
          <li class="day">3</li>
          ...
        </ol>
      </li>
    </ol>
 </div>

现在我希望外部 div (.month) 扩展到内部 div (.day),它们的宽度都相同。然后将其放在一个大的水平 div (.outer) 中,这样我就可以滚动内部结构。 我只用了一个月就可以使用它,但是当我再添加几个月时,它就不再起作用了。

我显然无法为几个月设定固定的时间,因为它们没有相同的天数。

我设置了a Fiddle here 使用一些CSS,但它不起作用,我不知道如何去做。

最佳答案

我已经完全重写了你的CSS,因为很难确定你想要什么外观。我选择使用最新的CSS3 flexbox specification — 只是因为它允许我相对于日期重新定位月份,而无需使用 position ,这会非常困惑。您可能希望使用供应商前缀来确保对 CSS3 Flexbox 的最大跨浏览器支持。

请参阅概念验证 fiddle :http://jsfiddle.net/teddyrised/g6u52vhn/4/ 。我对您的标记所做的唯一更改是将月份包装在 <span> 中标签;)

我冒昧地添加了边框,以便您可以清楚地区分不同的元素。

.dates {
    display: block;
    position: absolute;
    left: 5%;
    width: 90%;
    height: 200px;
    overflow: auto;
}

/* General list styles */
.dates ol {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    white-space: nowrap;
}
.dates li {
    display: flex;
    flex-flow: row wrap;
    flex-shrink: 0;
    flex-grow: 1;
}

/* Specific styles */
.dates > ol > li {
    border: 1px solid #000;
}
.dates .month span {
    border: 1px solid #999;
    display: block;
    order: 2;
    width: 100%;
}
.dates .month ol {
    order: 1;
}
.dates .month ol li {
    border: 1px solid #999;
}

但是,如果您需要支持较旧的浏览器,您可能需要回退到旧的 <table>元素,我认为这是足够和有效的。

关于css - 如何创建带有嵌套列表的水平日历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092797/

相关文章:

html - 在 Chrome 中鼠标悬停时出现额外像素。双滚动条

iphone - 如何在 safari、chrome 或 firefox 等桌面浏览器上测试适用于 iPhone 的条件 CSS?

html - 对齐 HTML 有序列表中的数字

html - 使用 · 而不是 <ul> 的元素符号

android嵌套的recyclerview

html - 如何创建两个 div 形状以相互叠加

css - 使用媒体打印时如何在纸张中设置主体高度 [css]

html - CSS 列表样式类型不起作用

python - 在列表中查找子列表的索引

python - 如何使用Python解析/提取嵌套的JSON数据?