用伸缩布局实现日历展示
来源:互联网 发布:我想开淘宝网店怎么开 编辑:程序博客网 时间:2024/05/16 11:48
前言:flex布局方式使网页的布局定位更加简单,大量的减少了css代码,使用起来非常方便,在之前的博客也有写过关于flex布局的内容,今天附上一个小例子,github展示地址:https://spiritliftedhigh.github.io/demo/canlendar.html
具体内容如下:
<!DOCTYPE html><html><head> <title>日历</title> <style type="text/css"> html, body, ul, li, div{ margin: 0; padding: 0; background: #ccc; font-family: "PingFang SC","Helvetica Neue",Helvetica,"Hiragino Sans GB",Arial,"Microsoft YaHei","微软雅黑",sans-serif,"Segoe UI Emoji","Segoe UI Symbol"; } .week-header{ background: #1C0C59; } .list-container{ display: flex; flex-direction: row; justify-content: space-around; text-align: center; width: 100%; height:50px; background: #362391; } .list-item{ background: #362391; list-style: none; width: 10%; padding: 10px; color: #fff; font-size: 18px; font-weight: bold; } /*日历行*/ .date-row{ display: flex; /*指定布局为伸缩布局*/ flex-direction: row; /*水平显示*/ justify-content: space-around; /*列平均分布在行中*/ text-align: center; width: 100%; background:#5853BC; color: #4f4f4f; font-size: 22px; height: 80px; } /*日历列*/ .date-col{ padding-top: 20px; background: #fff; width:10%; margin:10px; border-radius: 5px; text-align: center; } .year-month{ text-align: center; font-size:30px; color: #fff; background: #F0AE2C; height:50px; padding-top:15px; } </style></head><body onload="showDate()"><div class="canlendar-container"> <div class="year-month"></div> <div class="week-header"> <ul class="list-container"> <li class="list-item">日</li> <li class="list-item">一</li> <li class="list-item">二</li> <li class="list-item">三</li> <li class="list-item">四</li> <li class="list-item">五</li> <li class="list-item">六</li> </ul> </div> <div class="date-body" id="date-content"> </div></div><script type="text/javascript"> var date = new Date(); var year = new Object(); year = {}; /*获得年份*/ year.value = date.getFullYear(); /*判断该年是否为闰年*/ year.isLeapyear = function(){ if ((this.value % 4 == 0 && this.value % 100 != 0) || (this.value % 400 == 0)) return true; else return false; } var month = new Object() month = {}; /*获得月份*/ month.value = date.getMonth() + 1; /*获得该月的总天数*/ month.totalDay = function(){ var totalDay; if (this.value == 1 || this.value == 3 || this.value == 5 || this.value == 7 || this.value == 8 || this.value == 10 || this.value == 12) totalDay = 31; if (this.value == 2){ if (year.isLeapyear()) totalDay = 29; else totalDay = 28; } return totalDay; } /*获得今天的日期*/ var day = date.getDate(); /*获得今天是星期几*/ var week = date.getDay();function showDate(){ var totaldaynum = month.totalDay(); var prvday = day - week - 1; /*今天之前日期的行数*/ var prv_row; if (prvday % 7 != 0) prv_row = parseInt(prvday / 7) + 1; else prv_row = parseInt(prvday / 7); console.log(prv_row +""); var nextday = totaldaynum - prvday; /*今天之后日期的行数*/ if (nextday % 7 != 0) next_row = parseInt(nextday / 7) + 1; else next_row = parseInt(nextday / 7); console.log(next_row +""); /*总行数*/ var total_row = prv_row + next_row; /*该月第一天是星期几*/ var first_week = 7 - (prvday % 7); var count = 0; var date_num = 1; console.info(total_row+""); var date_body = document.getElementById("date-content"); for (var i = 0; i < total_row; i++){ var div_row = document.createElement("div"); for (var j = 0; j < 7; j++){ var div_col = document.createElement("div"); /*该月第一天之前为空*/ if (count < first_week) div_col.innerHTML = ""; /*该月最后一天之后为空*/ else if (totaldaynum < date_num) div_col.innerHTML = ""; /*该月所有的天数*/ else { div_col.innerHTML = date_num + ""; /*如果正是今天,用颜色区分*/ if (date_num == day) div_col.style.background = "yellow" date_num++; } count++; div_col.className = "date-col"; div_row.appendChild(div_col); } div_row.className = "date-row"; date_body.appendChild(div_row); } var year_month = document.querySelector(".year-month"); year_month.innerHTML = year.value+"年"+month.value+"月"+day+"日"+" "+"星期"+week;}</script></body></html>
效果如图:
总结:在这个小练习中,用flex布局很容易就实现了如同Bootstrap中的栅格布局,对js也有一点小练习,觉得哪里不好请多多指教了。
0 0
- 用伸缩布局实现日历展示
- android 实现伸缩布局效果
- css3伸缩布局实现三列固定
- swing使用布局实现伸缩面板
- 伸缩布局
- 伸缩布局
- css实现日历的布局
- 实现书架展示排列布局
- iOS- 快速实现展示布局
- 伸缩布局的伸缩比例
- CSS布局 — 根据内容是否自动伸缩展示区域的那些元素
- Outlook 日历时间块布局 html5实现
- 下拉ScrollView伸缩头布局,实现ScrollView回弹效果
- CollapsingToolbarLayout配合CoordinatorLayout、viewpage实现伸缩式布局
- CollapsingToolbarLayout配合CoordinatorLayout、AppBarLayout,RecyclerView实现伸缩布局
- 可伸缩展示的ListView
- 简单实现动态展示view布局元素
- 自动伸缩布局
- 树莓派3 centos7 1611 扩容内存卡。
- Android 应用适配 Android 7.0 权限要求
- ibatis 返回list<string> 集合 (有效)
- java如何读取1千万级别的数据
- java8系列之Optional
- 用伸缩布局实现日历展示
- JavaScript Demo---最简单的菜单切换效果
- oj2410: 求n以内奇数的平方和【简单循环】
- 查看linux中某个端口(port)是否被占用
- (13)稀疏矩阵的压缩-三元组表(转置)
- 【MFC】非模态对话框
- 学习D3 ——创建一个完整的柱形图
- Linux下JDK的安装和配置
- 高性能网站架构之缓存篇—Redis集群增删节点