0

我用 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 像素!

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

打印屏幕

4

1 回答 1

0

每个 CSS 媒体查询都会覆盖前一个,因此对于任何大于 398px 的宽度,其宽度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().

于 2017-06-11T23:18:52.403 回答