Bootstrap 4 - 如何在导航栏中进行 100% 宽度的搜索输入? [英] Bootstrap 4 - how to make 100% width search input in Navbar?

查看:18
本文介绍了Bootstrap 4 - 如何在导航栏中进行 100% 宽度的搜索输入?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使导航栏中搜索输入的宽度为 100%?

该字段的宽度有限:

这是小提琴:

https://jsfiddle.net/Dieselnick/tdoz2o4d/

解决方案

2019 年更新

Bootstrap 4 开始,Navbar 是 flexbox,因此创建全角搜索输入更容易.您可以简单地使用 w-100d-inline 实用程序类:

<div class="input-group"><input type="text" class="form-control" placeholder="..."><span class="input-group-append"><button class="btn btn-outline-secondary" type="button">GO</button></span>

</表单>

http://www.codeply.com/go/sbfCXYgqoO

这是另一个示例,搜索输入 outside 位于折叠导航栏:

<nav class="navbar navbar-expand-md navbar-dark bg-dark"><div class="d-flex flex-grow-1"><a href="/" class="navbar-brand">Codeply</a><form class="mr-2 my-auto w-100 d-inline-block order-1"><div class="input-group"><input type="text" class="form-control border border-right-0" placeholder="搜索..."><span class="input-group-append"><button class="btn btn-outline-light border border-left-0" type="button"><i class="fa fa-search"></i></span>

</表单>

<button class="navbar-toggler order-0" type="button" data-toggle="collapse" data-target="#navbar7"><span class="navbar-toggler-icon"></span><div class="navbar-collapse collapse flex-shrink-1 flex-grow-0 order-last" id="navbar7"><ul class="navbar-nav">..

</nav>

http://www.codeply.com/go/sbfCXYgqoO

而且,最后另一个示例改变了桌面/移动设备上的搜索宽度(只有全宽在移动设备上)来自我的在这里回答


引导程序 3(原始答案)

您可以像这样在最后一个导航栏 li 上使用 text-truncate hack..

  • <form class="input-group"><input class="form-control" name="search" placeholder="Search Here" autocomplete="off" autofocus="autofocus" type="text"><div class="input-group-btn"><button class="btn btn-outline-success" type="submit">搜索</button>
  • </表单>

    在 Bootstrap 4 中,将设置 text-truncate:

     溢出:隐藏;空白:nowrap;

    这使搜索表单能够填充剩余的宽度而不是换行.

    演示 http://www.codeply.com/go/22naSu3c0E

    另一种选择是使用table-cell:

    <div class="table-cell">&nbsp;

    <div class="table-cell fill-width"><input class="form-control" name="search" placeholder="Search Here" autocomplete="off" autofocus="autofocus" type="text">

    <div class="table-cell"><button class="btn btn-outline-success" type="submit">搜索</button>

    </表单>

    http://www.codeply.com/go/JdbPvotSXg

    How to make 100% width of the search input in navbar?

    The field is limited in width:

    <nav class="navbar navbar-light navbar-dark bg-inverse">
      <a class="navbar-brand" href="#">Navbar</a>
      <ul class="nav navbar-nav">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Features</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Pricing</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">About</a>
        </li>
      </ul>
    
      <ul class="nav navbar-nav pull-xs-right">
        <li class="nav-item">
          <form class="form-inline ">
            <input class="form-control" type="text" placeholder="Search">
            <button class="btn btn-outline-success" type="submit">Search</button>
          </form>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">User Name</a>
        </li>
      </ul>
    </nav>
    

    Here is the fiddle:

    https://jsfiddle.net/Dieselnick/tdoz2o4d/

    解决方案

    Updated 2019

    As of Bootstrap 4 the Navbar is flexbox so creating a full-width search input is easier. You can simply use w-100 and d-inline utility classes:

    <form class="mx-2 my-auto d-inline w-100">
       <div class="input-group">
          <input type="text" class="form-control" placeholder="...">
           <span class="input-group-append">
           <button class="btn btn-outline-secondary" type="button">GO</button>
           </span>
        </div>
    </form>
    

    http://www.codeply.com/go/sbfCXYgqoO

    Here's another example with the search input outside of the collapsing navbar:

    <!-- search input not in navbar collapse -->
    <nav class="navbar navbar-expand-md navbar-dark bg-dark">
        <div class="d-flex flex-grow-1">
            <a href="/" class="navbar-brand">Codeply</a>
            <form class="mr-2 my-auto w-100 d-inline-block order-1">
                <div class="input-group">
                    <input type="text" class="form-control border border-right-0" placeholder="Search...">
                    <span class="input-group-append">
                        <button class="btn btn-outline-light border border-left-0" type="button">
                            <i class="fa fa-search"></i>
                        </button>
                    </span>
                </div>
            </form>
        </div>
        <button class="navbar-toggler order-0" type="button" data-toggle="collapse" data-target="#navbar7">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="navbar-collapse collapse flex-shrink-1 flex-grow-0 order-last" id="navbar7">
            <ul class="navbar-nav">
                ..
            </ul>
        </div>
    </nav>
    

    http://www.codeply.com/go/sbfCXYgqoO

    And, finally another example that varies the width of the search on desktop/mobile (only full width on mobile) from my answer here


    Bootstrap 3 (original answer)

    You can use the text-truncate hack on the last navbar li like this..

    <li class="text-truncate">
            <form class="input-group">
                <input class="form-control" name="search" placeholder="Search Here" autocomplete="off" autofocus="autofocus" type="text">
                <div class="input-group-btn">
                    <button class="btn btn-outline-success" type="submit">Search</button>
                </div>
            </form>
    </li>    
    

    In Bootstrap 4, text-truncate will set:

       overflow: hidden;
       white-space: nowrap;
    

    This enables the search form to fill the remaining width and not wrap.

    Demo http://www.codeply.com/go/22naSu3c0E

    Another option is to use table-cell:

    <form>
            <div class="table-cell"> &nbsp; </div>
            <div class="table-cell fill-width">
                <input class="form-control" name="search" placeholder="Search Here" autocomplete="off" autofocus="autofocus" type="text">
            </div>
            <div class="table-cell">
                <button class="btn btn-outline-success" type="submit">Search</button> 
            </div>
    </form>
    

    http://www.codeply.com/go/JdbPvotSXg

    这篇关于Bootstrap 4 - 如何在导航栏中进行 100% 宽度的搜索输入?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    相关文章
    前端开发最新文章
    热门教程
    热门工具
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆