我正在尝试创建过滤器,其布局应与下面的屏幕截图相匹配。
到目前为止,我能够实现类似于下面给出的屏幕截图的效果。
问题是我无法按空间均匀分布元素,如第一个屏幕截图所示。使用表格创建这种布局也是一种好方法吗?
请帮助我理解和创建此布局。
下面是我的代码
<div class="panel panel-default">
<div class="panel-heading" style="padding: 20px;">
<div class="panel-title pull-left text-label-emphasize" style="margin-top: -8px;"><b>Filter</b></div>
<div class="panel-title pull-right text-label" style="margin-top: -8px;">Reset</div>
</div>
<div class="panel-body">
<table width="100%">
<tr>
<td colspan="1">
<div class="dropdown" ng-show="!loadinga" style="text-align: left;" width="100%">
<button class="btn btn-custom dropdown-toggle" type="button" style="text-align: left; background-color: #fff; border-color: #C3C3C3; " ng-disabled="loading">
{{dropDownTitle}}
<span class="caret"></span>
</button>
<ul class="dropdown-menu scroll-menu nav" role="menu">
<li ng-repeat="agent in agentListData">
<a role="menuitem" href="#" ng-click="">{{agent}}</a>
</li>
</ul>
</div>
</td>
<td align="left" colspan="1">
<div class="dropdown" ng-show="!loadinga" style="text-align: left;" width="100%">
<button class="btn btn-custom dropdown-toggle" type="button" style="text-align: left; background-color: #fff; border-color: #C3C3C3; " ng-disabled="loading">
{{dropDownAllTaskStatusTitle}}
<span class="caret"></span>
</button>
<ul class="dropdown-menu scroll-menu nav" role="menu">
<li ng-repeat="task in taskStatusListData">
<a role="menuitem" href="#" ng-click="">{{task.title}}</a>
</li>
</ul>
</div>
</td>
<td align="left" colspan="1">
<div ng-show="!loadinga">
<input id="autoComplete" type="text" ng-model="selected" typeahead="task.name for task in taskList | filter:$viewValue | limitTo:20" class="form-control" typeahead-on-select='' placeholder="Search Tasks here" typeahead-focus-first="true" ng-disabled="loading" />
</div>
</td>
<td colspan="1" style="padding-right: 200px"></td>
</tr>
<tr ng-show="isAdvancedFilterAvailable" style="padding:2px">
<td colspan="4">
<hr/>
</td>
</tr>
<tr ng-show="isAdvancedFilterAvailable" class="fadein fadeout">
<td align="left" colspan="1">
<div style="margin-right: 5px;margin-left: 5px; margin-top:2px" ng-show="!loadinga">
<input type="checkbox" ng-model="isChecked" ng-click="checkboxClicked(isChecked)" ng-disabled="loading" />
<label for="excludeMinutesStep">Exclude tasks running < </label>
<input id="excludeMinutesStep" type="number" min="0" max="10" ng-disabled="!isChecked || loading" ng-model="excludeValue" ng-change="" size="2" style="width:40px" /> <b>minutes</b>
</div>
</td>
<td align="left" colspan="1">
<div style="margin-right: 5px; margin-top:2px" ng-show="!loadinga">
<input id="datalabels" type="checkbox" ng-model="isLabelShowChecked" ng-click="" ng-disabled="loading" />
<label for="datalabels">Show Labels</label>
</div>
</td>
<td colspan="1" style="padding-right: 200px"></td>
<td colspan="1" style="padding-right: 200px"></td>
</tr>
<tr style="padding:2px">
<td colspan="4">
<hr/>
</td>
</tr>
<tr>
<td colspan="4">
<a ng-show="!isAdvancedFilterAvailable" ng-click="isAdvancedFilterAvailable=true">Show Advanced Filters</a>
<a ng-show="isAdvancedFilterAvailable" ng-click="isAdvancedFilterAvailable=false">Hide Advanced Filters</a>
</td>
</tr>
</table>
</div>
</div>
CSS
.text-label {
color: #aab2bd;
font: 8pt;
}
.text-label-emphasize {
color: #575F64;
}
最佳答案
Bootstrap 有很多周的时间致力于将所有“样式元素”放入类中,并使用它们。尽管直言不讳,请阅读 documentation当卡住时,它确实可以帮助您。
除此之外,让我们陷入您的问题。
如果您真的需要在面板中使用 table
,那么 best practice是将它放在 .panel-body
的下方或之前,但由于我们希望为我们所有 future 的元素保持响应式移动优先技术,因此请尽量避免使用它,除非您真的想要一个数据表。 Nested columns是保持这一点的最佳实践。
如何嵌套任何列的示例是使用 .row
后跟您希望嵌套的列大小,如下例所示。
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-4"></div>
</div>
这将创建良好的断点并允许您为您的应用程序维护良好的 UI/UX。
了解 bootstrap 并不能提供所有答案很重要,但它是一个很好的扩展样式框架,因此我们进行了覆盖 css 更改。
I added a few css overrides to make the borders square, and tried to maintain your angular.js (you may need to review that)
在 bootply 上托管的带有预览的完整代码
对于样式复选框,请查看 Awesome Bootstrap Checkboxes ,他们的完整文档可以在他们的 github 上找到。
编辑(全宽下拉菜单)-- 要使下拉菜单与按钮的宽度相匹配,请将以下 CSS 代码添加到您的覆盖样式表中。
.open>.dropdown-menu {
min-width: 100%;
}
希望我能帮上忙 ;)
关于angularjs - 如何在网格布局中将 bootstrap 下拉菜单和其他菜单对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30480324/