【问题标题】:Bootstrap 3 push-pull classes create a gap in my layoutBootstrap 3 推拉类在我的布局中创建了一个空白
【发布时间】:2015-03-19 23:46:53
【问题描述】:

我正在使用 Twitter Bootstrap 3.1.1。我有一个布局,我希望在较大的屏幕上将二级菜单拉到左侧。但是,使用推/拉类会在布局中留下空隙。

移动视图正常工作,如下所示:

------------
|  Banner   |
------------
|  Menu     |
------------
|  Heading  |
------------
|  Content  |
------------

但是,在桌面视图中,会发生这种情况:

--------   ------------
| Menu |   | Banner   |
| Menu |  ------------
| Menu |
| Menu | 
--------
          ------------
          | Heading   |
          ------------
          | Content   |
          ------------

这个结果基本上是正确的,除了横幅和标题之间的差距很大。标题(以及随后的内容)应位于菜单旁边和横幅下方。菜单下方应保留空白(我不想包装任何块)。

我尝试过简单地使用向右拉和向左拉,但这弄乱了我的移动视图。

标记(简化):

<section id="banner-content" class="col-md-9 col-md-push-3">
    <h1>Banner Content</h1>
</section>
<section id="menu" class="col-md-3 col-md-pull-9">
    <h3>Menu Title</h3>
    <ul role="navigation">
        <li>Menu Item with Link</li>
        <li>Menu Item With Link</li>
        <li>Menu Item With Link</li>
    </ul>
</section>
<section id="heading" class="col-md-9 col-md-push-3">
     <h2>Secondary Page Title</h2>
</section>
<section id="contentwrapper" class="col-md-9 col-md-push-3">
     <p>Content here</p>
</section>

还有一个小提琴:http://jsfiddle.net/c52jxde8/

【问题讨论】:

    标签: html css layout twitter-bootstrap-3


    【解决方案1】:

    您不需要推拉网格样式。当导航到达某个点时,您只需将三个项目拉到导航右侧即可。

    FIDDLE

    HTML

    <div id="Banner" class="col-xs-12 col-sm-8 pull-right">
         Banner Content
    </div>
    <div id="Navigation" class="col-xs-12 col-sm-4">
         Menu Title
    
        <ul role="navigation">
            <li>Menu Item with Link</li>
            <li>Menu Item With Link</li>
            <li>Menu Item With Link</li>
            <li>Menu Item With Link</li>
            <li>Menu Item With Link</li>
        </ul>
    </div>
    <div id="Title" class="col-xs-12 col-sm-8 pull-right">
         Secondary Page Title
    </div>
    <div id="Content" class="col-xs-12 col-sm-8 pull-right">
        Content here
    </div>
    

    CSS

    div {
        color:white;
    }
    #Banner {
        background:red;
        height:50px;
    }
    #Navigation {
        background:green;
        height:150px;
    }
    #Title {
        background:blue;
        height:50px;
    }
    #Content {
        background:orange;
        height:50px;
    }
    

    如您所见,当您点击移动宽度时,横幅会出现在导航上方,其余内容在下方,但在小屏幕和更大屏幕上,它会将它们全部拉到导航 div 的右侧。 CSS 仅用于样式设置,您可以对其进行调整以满足您的需求。

    【讨论】:

    • 谢谢,我不知道为什么当我的移动视图在使用拉动时被弄脏时我没有想到使用 -xs 类。你的答案很完美。
    • 只是出于好奇,如果在标记中,我将菜单放在标题下方,以便语义上 H2 标题出现在菜单上的 H3 之前,我将如何将菜单放置在左栏的顶部?如果我保持课程不变,菜单会在标题旁边,但在横幅旁边的顶部有一个空隙。只是想知道是否可能。谢谢。
    • 不完全确定,在我的脑海中无法将其可视化,但这里认为最好的做法是自己修补事物,并提出新问题而不是像现有问题上的 cmet 那样提出不同的问题。 ;)
    • 抱歉,感谢您的提示。无论如何,您的答案都很好;我以它为起点。
    猜你喜欢
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    相关资源
    最近更新 更多