文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

3 行 CSS 代码实现日历界面

2024-12-03 15:53

关注

[[358245]]

日历组件大家应该很熟悉了,但你想过如何实现日历的界面布局吗?最容易想到的方法是用 table布局,毕竟它在视觉上跟表格类似。但是从现代 CSS 的角度来说,table多用来展示列表数据,而不是用作布局方案。因为它需要很多额外的 DOM 元素,而且样式控制上也不够灵活。另一种方法是用 flex布局,这也算是 CSS3 给我们带来的福利,让界面布局工作简化了许多。

本文打算介绍一种更简单的方法,只需要 3 行核心 CSS 代码即可实现日历界面!你可能猜到了,它就是 Grid布局。

先看 HTML 部分:

  1. "calendar-wrapper"
  2.    
  3.   "calendar"
  4.     "weekday">一
  5.  
  6.     "weekday">二
  7.  
  8.     "weekday">三
  9.  
  10.     "weekday">四
  11.  
  12.     "weekday">五
  13.  
  14.     "weekday">六
  15.  
  16.     "weekday">日
  17.  
  18.  
  19.     "first-day">1
  20.  
  21.     
  22. 2
  23.  
  24.     
  25. 3
  26.  
  27.     -- ... --> 
  28.     
  29. 29
  30.  
  31.     
  32. 30
  33.  
  34.     
  35. 31
  36.  
  37.    
 

为简单起见,这里把一周七天和日期全都放进一个列表里了。CSS 代码更简单了:

  1. .calendar { 
  2.   display: grid; // 1 
  3.   grid-template-columns: repeat(7, 1fr);  // 2 
  4. .first-day { 
  5.   grid-column-start: 2; // 3 

稍微解释下,第一行就是将列表声明为grid容器。第二行的属性 grid-template-columns用来设置每列的宽度。一周有 7 天,因此需要 7 列。也可以这样写:

  1. grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; 

或者

  1. grid-template-columns: 40px 40px 40px 40px 40px 40px 40px; 

是不是显得重复啰嗦?所以有了 repeat()简写方法,用于定义多个等宽的列就方便多了。这里的1fr 是新的 CSS 弹性长度单位,具体用法可以参考 [https://www.w3.org/TR/css3-grid-layout/#fr-unit]。

最后,由于大部分月份的 1 号并不是周一,所以要用grid-column-start属性设置1号这个单元格的位置。

Bingo!一个极简日历就完成了!

极简日历

当然了,头部的背景色还是需要额外代码的,但这不是关键所在。想要了解更多关于强大的 CSS Grid 布局的知识,推荐参考 MDN 文档 [https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout]

 本文转载自微信公众号「1024译站」,可以通过以下二维码关注。转载本文请联系1024译站公众号。

 

来源: 1024译站内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯