如何更改引导内联日期选择器以适应全宽
Posted
技术标签:
【中文标题】如何更改引导内联日期选择器以适应全宽【英文标题】:How to change bootstrap inline datepicker to fit full width 【发布时间】:2015-04-22 01:29:17 【问题描述】:我从这里使用引导日期选择器:https://github.com/eternicode/bootstrap-datepicker
现在我想将它的宽度与父容器相匹配,但目前它只填充固定大小,我不知道在哪里通过 CSS 更改它。也许您之前遇到过类似的问题并想帮助我?
我附上了问题的图片: http://i.stack.imgur.com/ShZTU.png
这是通过 javascript 添加日期选择器功能之前的代码:
<div class="col-sm-4">';
<div class="panel panel-success panel-dark widget-profile ">
<div class="panel-heading">
<div class="widget-profile-bg-icon">
<i class="fa fa-flask"></i>
</div>
<img src="assets/demo/avatars/2.jpg" class="widget-profile-avatar">
<div class="widget-profile-header">
<span>Robert Jang</span>
<br>
email@example.com
</div>
</div>
<!-- / .panel-heading -->
<div id="bs-datepicker-inline"></div>
</div>
</div>
然后我用这段 JavaScript 代码添加日期选择器功能:
jQuery('#bs-datepicker-inline').datepicker();
在此之后,我的最终源代码如下所示:
<div class="col-sm-4">
<div class="panel panel-success panel-dark widget-profile ">
<div class="panel-heading">
<div class="widget-profile-bg-icon">
<i class="fa fa-flask"></i>
</div>
<img src="assets/demo/avatars/2.jpg" class="widget-profile-avatar">
<div class="widget-profile-header">
<span>Robert Jang</span>
<br>
email@example.com
</div>
</div>
<!-- / .panel-heading -->
<div id="bs-datepicker-inline">
<div class="datepicker datepicker-inline">
<div class="datepicker-days" style="display: block;">
<table class=" table-condensed">
<thead>
<tr>
<th class="prev" style="visibility: visible;">«</th>
<th colspan="5" class="datepicker-switch">February 2015</th>
<th class="next" style="visibility: visible;">»</th>
</tr>
<tr>
<th class="dow">Su</th>
<th class="dow">Mo</th>
<th class="dow">Tu</th>
<th class="dow">We</th>
<th class="dow">Th</th>
<th class="dow">Fr</th>
<th class="dow">Sa</th>
</tr>
</thead>
<tbody>
<tr>
<td class="day old">25</td>
<td class="day old">26</td>
<td class="day old">27</td>
<td class="day old">28</td>
<td class="day old">29</td>
<td class="day old">30</td>
<td class="day old">31</td>
</tr>
<tr>
<td class="day">1</td>
<td class="day">2</td>
<td class="day">3</td>
<td class="day">4</td>
<td class="day">5</td>
<td class="day">6</td>
<td class="day">7</td>
</tr>
<tr>
<td class="day">8</td>
<td class="day">9</td>
<td class="day">10</td>
<td class="day">11</td>
<td class="day">12</td>
<td class="day">13</td>
<td class="day">14</td>
</tr>
<tr>
<td class="day">15</td>
<td class="day">16</td>
<td class="day">17</td>
<td class="day">18</td>
<td class="day">19</td>
<td class="day">20</td>
<td class="day">21</td>
</tr>
<tr>
<td class="day">22</td>
<td class="day">23</td>
<td class="day">24</td>
<td class="day">25</td>
<td class="day">26</td>
<td class="day">27</td>
<td class="day">28</td>
</tr>
<tr>
<td class="day new">1</td>
<td class="day new">2</td>
<td class="day new">3</td>
<td class="day new">4</td>
<td class="day new">5</td>
<td class="day new">6</td>
<td class="day new">7</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="7" class="today" style="display: none;">Today</th>
</tr>
<tr>
<th colspan="7" class="clear" style="display: none;">Clear</th>
</tr>
</tfoot>
</table>
</div>
<div class="datepicker-months" style="display: none;">
<table class="table-condensed">
<thead>
<tr>
<th class="prev" style="visibility: visible;">«</th>
<th colspan="5" class="datepicker-switch">2015</th>
<th class="next" style="visibility: visible;">»</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="7">
<span class="month">Jan</span>
<span class="month">Feb</span>
<span class="month">Mar</span>
<span class="month">Apr</span>
<span class="month">May</span>
<span class="month">Jun</span>
<span class="month">Jul</span>
<span class="month">Aug</span>
<span class="month">Sep</span>
<span class="month">Oct</span>
<span class="month">Nov</span>
<span class="month">Dec</span>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="7" class="today" style="display: none;">Today</th>
</tr>
<tr>
<th colspan="7" class="clear" style="display: none;">Clear</th>
</tr>
</tfoot>
</table>
</div>
<div class="datepicker-years" style="display: none;">
<table class="table-condensed">
<thead>
<tr>
<th class="prev" style="visibility: visible;">«</th>
<th colspan="5" class="datepicker-switch">2010-2019</th>
<th class="next" style="visibility: visible;">»</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="7">
<span class="year old">2009</span>
<span class="year">2010</span>
<span class="year">2011</span>
<span class="year">2012</span>
<span class="year">2013</span>
<span class="year">2014</span>
<span class="year">2015</span>
<span class="year">2016</span>
<span class="year">2017</span>
<span class="year">2018</span>
<span class="year">2019</span>
<span class="year new">2020</span>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="7" class="today" style="display: none;">Today</th>
</tr>
<tr>
<th colspan="7" class="clear" style="display: none;">Clear</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</div>
我希望有人可以帮助我。如果您需要更多信息,请告诉我。
非常感谢。
编辑 1:
这是 Datepicker 的 CSS 代码
.datepicker
direction: ltr;
padding: 0;
width: auto !important;
.datepicker.datepicker-inline
border: 1px solid #eee;
display: inline-block;
position: relative;
.datepicker > div
display: none;
.datepicker.days div.datepicker-days,
.datepicker.months div.datepicker-months,
.datepicker.years div.datepicker-years
display: block;
.datepicker div.datepicker-months td,
.datepicker div.datepicker-years td
width: 210px !important;
.datepicker table
margin: 0;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
.datepicker td
line-height: 32px;
padding: 0 !important;
text-align: center;
width: 30px;
.table-striped .datepicker table tr td,
.table-striped .datepicker table tr th
background-color: transparent;
.datepicker table tr td
border-bottom: 1px solid #eee;
border-right: 1px solid #eee;
.datepicker table tr td:last-child
border-right: none;
.datepicker table tr td.day:hover
background: #f3f3f3;
cursor: pointer;
position: relative;
.datepicker table tr td.old,
.datepicker table tr td.new
color: #bbb;
.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover
background: none;
color: #eee;
cursor: default;
.datepicker table tr td.today,
.datepicker table tr td.today:hover,
.datepicker table tr td.today.disabled,
.datepicker table tr td.today.disabled:hover
background: #f3f3f3;
font-weight: 700 !important;
.datepicker table tr td.today:hover:hover
color: #555555;
.datepicker table tr td.today.active:hover
color: #fff;
.datepicker table tr td.range,
.datepicker table tr td.range:hover,
.datepicker table tr td.range.disabled,
.datepicker table tr td.range.disabled:hover
background: #f3f3f3;
.datepicker table tr td.range.today,
.datepicker table tr td.range.today:hover,
.datepicker table tr td.range.today.disabled,
.datepicker table tr td.range.today.disabled:hover
background: #f3f3f3;
font-weight: 700;
.datepicker table tr td.selected,
.datepicker table tr td.selected:hover,
.datepicker table tr td.selected.disabled,
.datepicker table tr td.selected.disabled:hover
color: #fff !important;
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active.disabled,
.datepicker table tr td.active.disabled:hover
color: #fff !important;
.datepicker table tr td span
border-radius: 2px;
cursor: pointer;
display: block;
float: left;
line-height: 54px;
margin: 1%;
width: 23%;
.datepicker table tr td span:hover
background: #eee;
.datepicker table tr td span.disabled,
.datepicker table tr td span.disabled:hover
background: none;
color: #eee;
cursor: default;
.datepicker table tr td span.active,
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active.disabled:hover
color: #fff !important;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
.datepicker table tr td span.old,
.datepicker table tr td span.new
color: #eee;
.datepicker thead tr:first-child th,
.datepicker tfoot tr th
cursor: pointer;
.datepicker th,
.datepicker td,
.datepicker tr
border-top: none !important;
text-align: center !important;
.datepicker thead th,
.datepicker tfoot th
font-weight: 600;
padding: 0 !important;
.datepicker thead th
border-bottom: none !important;
color: #fff;
font-weight: 600;
line-height: 35px !important;
height: 35px !important;
padding: 0 !important;
text-align: center;
.datepicker thead tr:first-child
border-bottom: 1px solid !important;
.datepicker thead tr:first-child th:hover
background: rgba(255, 255, 255, 0.2);
.datepicker thead tr:last-child
border-bottom: none !important;
.datepicker thead th.prev,
.datepicker thead th.next
color: rgba(0, 0, 0, 0);
display: block;
font-size: 0;
line-height: 0;
position: absolute;
width: 36px !important;
.datepicker thead th.prev:after,
.datepicker thead th.next:after
bottom: 0;
color: #fff;
display: block;
font-family: FontAwesome;
font-size: 14px;
font-weight: normal;
left: 0;
line-height: 35px;
position: absolute;
right: 0;
text-align: center;
top: 0;
width: 36px;
.datepicker thead th.prev
left: 0;
border-right: 1px solid;
.datepicker thead th.prev:after
content: "\f053";
.datepicker thead th.next
border-left: 1px solid;
right: 0;
.datepicker thead th.next:after
content: "\f054";
.datepicker tfoot th:hover
background: #eee;
.datepicker tbody td,
.datepicker tfoot th
line-height: 32px !important;
.datepicker > .datepicker-days tbody .cw
background: #f8f8f8 !important;
color: #aaa;
font-size: 8px;
font-weight: 600;
.datepicker > .datepicker-days thead tr:first-child th.cw
background-color: transparent;
cursor: default;
.datepicker > .datepicker-days thead tr:first-child th.cw + .prev
left: 30px;
border-left: 1px solid;
.datepicker > .datepicker-days thead tr:last-child th.cw + th
border-left: 1px solid;
【问题讨论】:
【参考方案1】:这对我有用:
.datepicker-inline
width: 100%;
.datepicker table
width: 100%;
【讨论】:
我需要使用节点包“boostrap-sass-datepicker”将 .datepicker-inline 更改为 .datepicker.datepicker-inline。【参考方案2】:这对我有用:
<style>
.datetimepicker
width: 100%;
</style>
【讨论】:
【参考方案3】:尝试在日期选择器的 css 中找到行 Width:;
并将其设置为继承 width = inherit;
应该给它父 div 的 with。如果这不起作用,请为日期选择器发布您的 css 代码。
【讨论】:
嘿 EntangledQuantum,谢谢您的回复。我已经尝试在 css 代码中编辑宽度。所以我将 .datepicker 类编辑为 width: inherit 但它不起作用。我在帖子中添加了完整的 CSS 代码。 在.datepicker table tr td span
中将宽度设置为width= 100%;
如果这不起作用然后删除所有宽度参数并查看它是否改变了任何东西,如果它改变了则分别删除每个宽度参数以找出哪个保留您的日期选择器不会占用全宽。
嘿EntangledQuantum,再次非常感谢您的回答。我试过了,但没有效果,宽度仍然小于面板允许的内容..您还有其他想法吗?
那么它可能硬编码到 datepicker.js 文件中,但我不知道 js,所以我无法帮助您,抱歉。【参考方案4】:
在初始化脚本中改变容器和方向:
$('#pay_date').datepicker(
format: 'mm-dd-yyyy',
container: '#pay_date1-group',
orientation: "auto top"
);
容器必须是其直接父元素(它将是您指定的任何父元素的宽度)
【讨论】:
以上是关于如何更改引导内联日期选择器以适应全宽的主要内容,如果未能解决你的问题,请参考以下文章