【问题标题】:Twitter bootstrap: nav tabs and pills not contained within hero example 'container' elementTwitter引导程序:英雄示例“容器”元素中不包含导航选项卡和药丸
【发布时间】:2012-11-14 04:20:21
【问题描述】:

我最近下载了 TB 2,并开始熟悉它。我正在根据英雄示例创建一个页面。

我正在根据英雄示例创建一个页面。页面内容区域是我的标记中具有“容器”类的元素。我正在创建的布局如下(在“容器”元素内),创建两列:

  • 左侧栏(页面面积的 66.66%)
  • 右侧栏(页面面积的 33.33%)

左侧列将包含两行,顶行包含导航药丸,底行包含导航选项卡。

这是“容器”元素中的 HTML:

<div class="row">
    <div id="page-left-column" class="span8">
        <div class="row">
            <ul class="nav nav-pills pull-right">  
                <li class="active"><a href="#">Pill 1</a></li>     
                <li><a href="#">Pill 2</a></li>  
                <li><a href="#">Pill 3</a></li>   
                <li><a href="#">Pill 4</a></li>   
                <li><a href="#">Pill 5</a></li>   
            </ul> 
        </div>

        <div class="row">
            <ul class="nav nav-tabs">  
                <li class="active"><a href="#">Tab 1</a></li>
                <li><a href="#">Tab 2</a></li>  
                <li><a href="#">Tab 3</a></li>   
            </ul>
        </div>

    </div>

    <div id="page-right-column" class="span4">
        <div class="row">
        </div>

        <div class="row">
        </div>        
    </div>
</div>

使用 Firebug,我发现选项卡和药丸都溢出了它们的包含元素,所以在导航选项卡的情况下,内容在页面上,文本不再排列在左侧列 - 即文本显示在列之外。

上面的标记有问题吗?

【问题讨论】:

标签: html css twitter-bootstrap


【解决方案1】:

解决方案:

  • inputdivtableul 等每个标签都应该有一个 span* 类。不是必需的,但建议使用。
  • 为了在值上实现% 而不是px:应该应用row-fluidcontainer-fluid。子 span* 将跟随其容器。
  • 推荐的模式是:容器、跨度、容器、跨度、容器、跨度等。
  • 容器可以是(容器或行(流体或非流体))。 Span 可以是容器内的任何元素/标签。

CSS:

        .border {
            border: 1px solid #afafaf;
        }
        #page-right-column {
            margin:0;
        }

HTML:

    <div class="container border">
        <div class="span12">
            <div class="row-fluid">
                <div id="page-left-column" class="span8">
                    <div class="row">
                        <div class="span12">
                            <ul class="nav nav-pills pull-right">  
                                <li class="active"><a href="#">Pill 1</a></li>     
                                <li><a href="#">Pill 2</a></li>  
                                <li><a href="#">Pill 3</a></li>   
                                <li><a href="#">Pill 4</a></li>   
                                <li><a href="#">Pill 5</a></li>   
                            </ul> 
                        </div>
                    </div>
                    <div class="row">
                        <div class="span12">
                            <ul class="nav nav-tabs">  
                                <li class="active"><a href="#">Tab 1</a></li>
                                <li><a href="#">Tab 2</a></li>  
                                <li><a href="#">Tab 3</a></li>   
                            </ul>
                        </div>
                    </div>
                </div><!-- End of #page-left-column -->
                <div id="page-right-column" class="span4">
                    <div class="row-fluid border">
                        <div class="span12">
                            First row of right column. 
                        </div>
                        <div class="span12">
                            Second row of right column
                        </div>
                    </div>
                </div><!-- End of #page-right-column -->
            </div><!-- End of .container-fluid -->
        </div>
    </div><!-- End of .container -->

【讨论】:

  • +1 代码。它现在工作得很好(尽管我不完全理解为什么)。您能否再解释一下我做错了什么以及您的标记如何解决问题?谢谢
  • 在宽度上使用百分比值时,您应该使用.row-fluid 而不是.row。在您的第一个容器.row 上,应该是.row-fluid。这将使用百分比值计算子宽度。意思是,而不是 width:200px; ,它已更改为 width:20%;。另一件事是,您的子标签的模式是.row > .span8 > .row > ul。其中ul 应位于div.span* 内或具有.span* 的附加属性。跨度宽度将始终取决于父容器。在这种情况下,.row.
  • 简而言之,您需要决定内容的宽度是百分比还是像素。要么是.row 要么是.row-fluid
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 2016-10-13
  • 2014-03-19
  • 1970-01-01
  • 2019-10-26
相关资源
最近更新 更多