添加引用按钮以引导导航栏并使其永久保留?

时间:2014-07-22 21:05:43

标签: html css twitter-bootstrap

我想:

1. The Free Quote Button to be forced right
2. At small screensizes I would like free quote button to remain to the right of the (icon bar button [mobile menu])
3. I don't want the navigation bar to take up an extra line when at smaller screen size

小提琴:

http://jsfiddle.net/z7V4F/

HTML:

<!-- Nav bar -->
<nav class="navbar navbar-inverse navbar-fixed-top navi-style" role="navigation">
    <!-- quote button-->
    <!--<a href="#" class="btn btn-default navbar-right">Free Quote</a>-->
    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">  <span class="sr-only"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>

        </button>   <a class="navbar-brand menulogo" href="#">
                My Site + Logo Makes This Long
            </a>

    </div>
    <div class="navbar-collapse collapse">
        <ul class="nav navbar-nav">
            <!--<li class="active"><a href="/index">Home</a></li>-->
            <li class="dropdown">   <a href="#" class="dropdown-toggle" data-toggle="dropdown">Info Tab<b class="caret"></b></a>

                <ul class="dropdown-menu">
                    <li><a href="#">Overview</a>

                    </li>
                </ul>
            </li>
            <li class="dropdown">   <a href="#" class="dropdown-toggle" data-toggle="dropdown">contact Tab<b class="caret"></b></a>

                <ul class="dropdown-menu">
                    <li><a href="#">Overview</a>

                    </li>
                </ul>
            </li>
            <li class="dropdown">   <a href="#" class="dropdown-toggle" data-toggle="dropdown">about Tab<b class="caret"></b></a>

                <ul class="dropdown-menu">
                    <li><a href="#">Overview</a>

                    </li>
                </ul>
            </li>
            <li class="dropdown">   <a href="#" class="dropdown-toggle" data-toggle="dropdown">More Tab<b class="caret"></b></a>

                <ul class="dropdown-menu">
                    <li><a href="#">Overview</a>

                    </li>
                </ul>
            </li>
            <div class="navbar-right">  <a href="#" class="btn btn-default">Free Quote</a>

            </div>
        </ul>
    </div>
</nav>

4 个答案:

答案 0 :(得分:2)

<强> 1。免费报价按钮被强制

我会使用position:absolute;这里是为了避免过多的利润和填充物。这样它将始终保持在同一条线上。如果您的导航栏标题和导航项目比您的小提琴更宽,则会更糟糕。

.navbar-right {
    position: absolute;
    right: 0;
}

<强> 2。在小屏幕上我希望免费引用按钮保持在(图标栏按钮[移动菜单])的右侧

将另一个<button>放在带有pull-rightvisible-xs类的导航栏切换之上。这会将按钮放在导航栏切换的右侧,并使其仅在XS屏幕尺寸上可见。

    <div class="pull-right visible-xs free-quote"><a href="#" class="btn btn-default">Free Quote</a></div>
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
        <span class="sr-only"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
    </button> 
    <a class="navbar-brand menulogo" href="#">
        My Site + Logo Makes This Long
    </a>

将hidden-xs类提供给另一个按钮,以便它不会以XS屏幕大小显示。 (回答3号的例子)

第3。我不希望导航栏在较小的屏幕尺寸时占用额外的行

你可以在SM屏幕尺寸上显示较小的按钮,以避免需要导航栏在这两行上展开(需要我的意思是否则导航项和按钮更有可能重叠彼此):

<div class="navbar-right hidden-xs free-quote"> 
  <a href="#" class="btn btn-xs btn-default visible-sm">Free Quote</a>
  <a href="#" class="btn btn-default hidden-sm">Free Quote</a>
</div>

我建议您仅在XS屏幕尺寸的导航栏品牌中显示徽标或文字,这样当屏幕尺寸仅为例如时,它们就不会跳转到自己的行。 320px宽。

<强> 4。额外:让它看起来不错

为这些按钮添加一些填充和边距,以便很好地对齐它们。

.free-quote {
    padding: 9px 5px 9px 0
}
.free-quote > .btn-xs {
    margin-top: 4px;
}

这是小提琴:http://jsfiddle.net/z7V4F/3/

答案 1 :(得分:1)

您需要有两个按钮。

一个在navbar-header内,一个在外面。

button中的navbar-header只应在超小屏幕上显示,因为 navbar-header以内的所有内容都隐藏在xs navbar-collapse内的所有内容都将以超小尺寸隐藏(成为移动菜单)。

<强> HTML

 <div class="menuquote navbar-right hidden-xs"> <a href="#" class="btn btn-default navbar-right centre-block gr-btn">Free Quote</a>

    </div>
    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">  <span class="sr-only"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>

        </button>   <a class="navbar-brand menulogo" href="#">
                My Site + Logo Makes This Long
            </a>

        <div class="menuquote navbar-right pull-right hidden-sm hidden-md hidden-lg">   <a href="#" class="btn btn-default navbar-right">Free Quote</a>

        </div>
    </div>

http://jsfiddle.net/4nmzh/

答案 2 :(得分:0)

要将按钮强制向左移动并显示在移动菜单切换的右侧,请设置此div:

 <div class="navbar-right">  
   <a href="#" class="btn btn-default">Free Quote</a>
 </div>

navbar-header之前,将navbar-right更改为pull-right

这会使按钮退出导航栏格式并强制按钮向右,因为pull-right是bootstrap的float: right类。

要停止导航栏以非常小的屏幕尺寸进入两行,您的选项是:

  1. min-width

    上设置<nav class="navbar">
    .navbar { 
       min-width: 470px; 
    }
    

    (见demo

  2. 使用媒体查询以小屏幕尺寸缩小<a class="navbar-brand">中徽标/文字的大小,例如:

    @media (max-width: 500px) {
        navbar-brand {
            ...
        }
    }
    
  3. 当你的导航栏较大时,我减少了列表项的填充,使它们保持在一行:

    ul.nav li a {
        padding-left: 8px;
        padding-right: 8px;
    }
    

    Demo至少应该为您提供一个起点。

答案 3 :(得分:0)

您好,您可以在标签外移动免费报价,并为其添加绝对位置 看看小提琴:http://jsfiddle.net/z7V4F/4/

正如我所说,我移动包含navbar-collapse之外的免费引号的div并添加了下一个css。

.custum-free-quotes{
    position:absolute;
    right:0;
    top: 0;
}
.navbar{
    position relative;
}