我正在使用一个使用Bootstrap 3和Jasny的应用程序。我的应用程序有一个用Jasny构建的滑出式面板。在应用程序的主要区域,我有一个"添加"按钮。当用户单击添加按钮时,我想使用Jasny显示一些表单元素。为了做到这一点,我有以下JSFiddle。其中包括以下代码:
<header>
<nav class="navbar" style="background-color:#2e2e2e; border-radius:0rem;">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#menu">
<span class="sr-only">Toggle navigation</span>
</button>
<a class="navbar-brand hidden-xs" href="/" style="color:white;">Welcome</a>
</div>
</div>
</nav>
</header>
<main>
<nav class="navbar" style="background-color:#5e5e5e; border-radius:0rem; position:relative; top:-20px;">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#menu">
<span class="sr-only">Toggle navigation</span>
</button>
<a class="navbar-brand hidden-xs" href="/" style="color:white;">Subnav</a>
</div>
</div>
</nav>
<div class="container-fluid">
<div class="container">
<button class="btn btn-primary" data-toggle="offcanvas" data-target="#mySlideout">Add Item</button>
<nav id="mySlideout" class="navmenu navmenu-default navmenu-fixed-right offcanvas" role="navigation" style="width:400px; margin-top:50px;">
<div class="row">
<div class="col-sm-11">
<h3>
Add New Item
</h3>
</div>
<div class="col-sm-1" style="background-color:red;">
<button type="button" class="close pull-right" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
</div>
<form id="addForm" action="/add" method="post" role="form">
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label class="control-label" for="Name">Name</label>
<input class="form-control" id="Name" name="Name" type="text" value="" autocomplete="off">
</div>
</div>
</div>
<div class="row">
<div class="col-sm-5">
<button class="btn btn-default">Cancel</button>
<button class="btn btn-primary">Save</button>
</div>
</div>
</form>
</nav>
</div>
</div>
</main>
我的问题是我似乎无法正确使用行/列。您可以看到我为一个单元格将背景颜色指定为红色。但是,它只显示一条线。此外,该列不会出现在与另一列相同的行上。我错过了什么?
答案 0 :(得分:0)
您的小提琴适用于屏幕尺寸为small
的设备,与您指定的一样
(使用col-sm-xx
内的nav#mySlideout
类。如果你在jsFiddle上增加'result'框架的宽度,你会发现在某个宽度(768px
in Bootstrap 3)你的设置确实会适用。
构建Bootstrap网格,以便在没有为任何可能的屏幕尺寸(xs
,sm
,md
,lg
)指定列大小时,它会自动使用下一个较低的可用尺寸设置。但是,由于您没有为超小型设备(col-xs-xx
)指定任何内容,因此Bootstrap将使相应的列(在您的情况下为所有这些列)全宽。
如果分别用col-sm-11
和col-sm-1
替换col-xs-11
和col-xs-1
,则可以达到预期的效果。
由于您的幻灯片未覆盖整个页面,因此当您为不同的屏幕尺寸为同一列指定不同的列大小时,它所包含的网格可能会出现奇怪的行为(例如col-xs-12 col-sm-6 col-lg-3
)。这是因为网格仍然响应整个页面的大小而不是幻灯片的大小。因此,如果您想在这种条件下实现类似网格的效果,CSS3' flexboxes值得一看。
我不会首先使用网格来处理该特定用例。在我看来,使用h3
和float: left;
与button
进行样式设置并使用clearfix包围它们会更好(like in this fork)。< / p>