【问题标题】:Bootstrap form control in navigation menu does not seems to resize correclty导航菜单中的引导表单控件似乎无法正确调整大小
【发布时间】:2017-06-11 17:38:00
【问题描述】:

我用 Bootstrap 制作了一个导航菜单,在这个导航中,我将搜索表单放在了菜单的中间。然后我将桌面设备的宽度调整为 500 像素,平板设备的宽度调整为 300 像素。

这是 CSS 代码:

    @media (min-width: 768px) {
    .navbar-nav.navbar-center {
        position: absolute;
        left: 50%;
        transform: translatex(-50%);
    }
    .form-group input{
        width:500px !important;
    }
}
@media (min-width: 499px) {
    .form-group input{
        width:300px !important;
    }
}
@media (min-width: 399px) {
    .form-group input{
        width:200px !important;
    }
}

这是导航的 HTML 代码:

<nav class="navbar navbar-default navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#">Brand</a>
            </div>

            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav navbar-center">
                    <form class="navbar-form">
                        <button type="submit" class="btn btn-default">Submit</button>
                        <div class="form-group">
                            <input type="text" class="form-control" placeholder="Search">
                        </div>
                    </form>
                </ul>
                <ul class="nav navbar-nav navbar-right">
                    <li><a href="#">Link</a></li>
                    <li class="log"><button type="button" class="btn btn-default sign">Default</button></li>
                </ul>
            </div>
        </div>
    </nav>

问题是桌面设备中搜索表单输入的大小仍然以某种方式存储在 200 像素!

所以如果你知道如何处理这个问题,请告诉我。基本上我想要的只是避免在较小的设备中可能发生的这类问题(如您在这张图片中看到的那样)......

【问题讨论】:

    标签: css twitter-bootstrap menu responsive-design search-form


    【解决方案1】:

    每个 CSS 媒体查询都会覆盖前一个,因此对于任何大于 398 像素的宽度,input 的宽度将为200px。要解决此问题,您只需颠倒查询的顺序:

    @media (min-width: 399px) {
        .form-group input{
            width:200px !important;
        }
    }
    @media (min-width: 499px) {
        .form-group input{
            width:300px !important;
        }
    }
    @media (min-width: 768px) {
        .navbar-nav.navbar-center {
            position: absolute;
            left: 50%;
            transform: translatex(-50%);
        }
        .form-group input{
            width:500px !important;
        }
    }
    

    但是,如果您只是想避免输入太宽,则最好使用 calc() 之类的内容。

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 1970-01-01
      • 2013-06-02
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多