【问题标题】:make clndr.js calendar responsive使 clndr.js 日历响应
【发布时间】:2018-08-09 00:15:20
【问题描述】:
我有一个由 CLNDR 插件制作的日历,非常好,使用 underscore.js,moment.js。日历运行良好,但问题是如何让它响应更大的屏幕和更小的屏幕。我已经尝试过,但只有日期标题有响应,相应的日期没有,并且它带来了不准确的信息。
See the fiddle here.
我让它响应的方法(这会带来上述详细错误):
#mini-clndr .clndr .days-container .days .headers .day-header {
width: 14%;
display: inline-block;
text-align: center;
color: white;
}
感谢您的帮助
【问题讨论】:
标签:
javascript
underscore.js
clndr.js
【解决方案1】:
我的建议是使用 Bootstrap。
查看此链接:https://getbootstrap.com/docs/3.3/css/
它将允许您创建灵活的日历。
这是另一个运行示例
https://www.w3schools.com/howto/howto_css_calendar.asp
(将其设为整页以查看调整屏幕大小时的行为)
/**
* Author: w3schools.com
* URL: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_calendar
*/
/**
* Author: w3schools.com
* URL: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_calendar
*/
* {box-sizing: border-box;}
ul {list-style-type: none;}
body {font-family: Verdana, sans-serif;}
.month {
padding: 70px 25px;
width: 100%;
background: #1abc9c;
text-align: center;
}
.month ul {
margin: 0;
padding: 0;
}
.month ul li {
color: white;
font-size: 20px;
text-transform: uppercase;
letter-spacing: 3px;
}
.month .prev {
float: left;
padding-top: 10px;
}
.month .next {
float: right;
padding-top: 10px;
}
.weekdays {
margin: 0;
padding: 10px 0;
background-color: #ddd;
}
.weekdays li {
display: inline-block;
width: 13.6%;
color: #666;
text-align: center;
}
.days {
padding: 10px 0;
background: #eee;
margin: 0;
}
.days li {
list-style-type: none;
display: inline-block;
width: 13.6%;
text-align: center;
margin-bottom: 5px;
font-size:12px;
color: #777;
}
.days li .active {
padding: 5px;
background: #1abc9c;
color: white !important
}
/* Add media queries for smaller screens */
@media screen and (max-width:720px) {
.weekdays li, .days li {width: 13.1%;}
}
@media screen and (max-width: 420px) {
.weekdays li, .days li {width: 12.5%;}
.days li .active {padding: 2px;}
}
@media screen and (max-width: 290px) {
.weekdays li, .days li {width: 12.2%;}
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<!--
/**
* Author: w3schools.com
* URL: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_calendar
*/
-->
<h1>CSS Calendar</h1>
<div class="month">
<ul>
<li class="prev">❮</li>
<li class="next">❯</li>
<li>
August<br>
<span style="font-size:18px">2017</span>
</li>
</ul>
</div>
<ul class="weekdays">
<li>Mo</li>
<li>Tu</li>
<li>We</li>
<li>Th</li>
<li>Fr</li>
<li>Sa</li>
<li>Su</li>
</ul>
<ul class="days">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li><span class="active">10</span></li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
<li>20</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>24</li>
<li>25</li>
<li>26</li>
<li>27</li>
<li>28</li>
<li>29</li>
<li>30</li>
<li>31</li>
</ul>
</body>
</html>
因此,我们的想法是首先使用 bootstrap + CSS 或纯 CSS 构建您的日历。
请记住,您还可以对屏幕尺寸使用媒体查询:
@media (max-width: 768px) { ... }
@media (min-width: 768px)) and (max-width: 992px) { ... }
例如:
/* Small devices (tablets, 768px and up) */
@media (min-width: 768px) { ... }
/* Medium devices (desktops, 992px and up) */
@media (min-width: 992px) { ... }
/* Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) { ... }