Bootstrap - Jasny Offcanvas尺寸

时间:2016-05-06 12:46:25

标签: css twitter-bootstrap jasny-bootstrap

我正在使用一个使用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">&times;</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>

我的问题是我似乎无法正确使用行/列。您可以看到我为一个单元格将背景颜色指定为红色。但是,它只显示一条线。此外,该列不会出现在与另一列相同的行上。我错过了什么?

1 个答案:

答案 0 :(得分:0)

您的小提琴适用于屏幕尺寸为small的设备,与您指定的一样 (使用col-sm-xx内的nav#mySlideout类。如果你在jsFiddle上增加'result'框架的宽度,你会发现在某个宽度(768px in Bootstrap 3)你的设置确实会适用。

构建Bootstrap网格,以便在没有为任何可能的屏幕尺寸(xssmmdlg)指定列大小时,它会自动使用下一个较低的可用尺寸设置。但是,由于您没有为超小型设备(col-xs-xx)指定任何内容,因此Bootstrap将使相应的列(在您的情况下为所有这些列)全宽。

长话短说:

如果分别用col-sm-11col-sm-1替换col-xs-11col-xs-1,则可以达到预期的效果。

你可能想要考虑什么

由于您的幻灯片未覆盖整个页面,因此当您为不同的屏幕尺寸为同一列指定不同的列大小时,它所包含的网格可能会出现奇怪的行为(例如col-xs-12 col-sm-6 col-lg-3)。这是因为网格仍然响应整个页面的大小而不是幻灯片的大小。因此,如果您想在这种条件下实现类似网格的效果,CSS3' flexboxes值得一看。

替代解决方案

我不会首先使用网格来处理该特定用例。在我看来,使用h3float: left;button进行样式设置并使用clearfix包围它们会更好(like in this fork)。< / p>