【问题标题】:Fluid Horizontal NavBar for responsive website用于响应式网站的流体水平导航栏
【发布时间】:2014-04-25 19:28:05
【问题描述】:

我正在尝试制作一个包含水平导航栏的流体响应式网络,我的问题是在浏览器窗口的某个宽度处,栏的元素开始相互重定位,有什么办法可以避免这种情况行为以使导航栏仅伸展到某个媒体查询断点。我需要网站在未激活查询的范围内看起来至少体面。

目前情况如下: http://wearehellyeah.com/test/home_formacio.html

<div class="barra">
            <!--Menu Principal-->
            <nav class="menu-principal">
                <ul class="menu">
                    <li class="item sub"><button type="button" id="menu-lateral" class="sb-toggle-left"><img src="img/iconos/menu.png" alt="search"></button></li>
                    <li class="item"><a href="#">Actualitat</a></li>
                    <li class="item"><a href="#">Activitat de l'oficina</a></li>
                    <li class="item"><a href="#">Vocalies</a></li>
                    <li class="item"><a href="#">Formació</a></li>
                    <li class="item"><a href="#">Serveis</a></li>
                    <li class="item"><a href="#">Actualitat</a></li>
                    <li class="item no-border"><a href="#" class="no-border">El Col-legi</a></li>
                    <li class="item home"><a href="#" class="no-border">Marcar com pàgina d'inici</a></li>
                    <li class="item conectados">Conectados 103</li>
                    <li class="item"><button type="button" id="search"><img src="img/iconos/search.png"></button></li>
                </ul>
            </nav>
            <!--Fin Menu Principal-->
            <!--Input buscador-->
            <div class="buscador">
                <form action="">
                    <input type="text" id="ip-search">
                </form>
            </div>
            <!--Fin de Input Buscador-->
</div>

CSS:

.barra {
background: #00b1da;
width: 100%;
padding: 0;
}

.menu-principal {
height: 36px;
line-height: 35px;
margin: 0 auto;
max-width: 1024px;
position: relative;
width: 100%;
}

.menu {
padding: 0;
margin: 0;
}

.menu .item {
float: left;
list-style: none;
}

.menu .item a {
border-right: 1px solid #008ba9;
color: #fff;
font-size: 13px;
padding: 0 .98em;
text-decoration: none;
white-space: nowrap;
}

.menu .sub {
background: #008ba9;
padding: 0 .4em;
height: 35px;
display: block;
}

.conectados {
background: #fff;
color: #4b585b;
font-size: 13px;
padding: .1em 1em 0 2.3em;
position: relative;
}

.menu .home {
background: url("../img/iconos/home.png") no-repeat 2% #00a9a1;
border-left: 1px solid #40c2d3;
padding: 0 0 0 1em;
}

【问题讨论】:

    标签: responsive-design media-queries navbar fluid-layout


    【解决方案1】:

    你可以添加一个最小宽度:

    .menu-principal {
        min-width:883px;
    }
    

    这样就不会互相叠加了。但是导航栏上的选项太多了,当它进入移动媒体查询范围时,您可能希望将其设置为下拉框。 例如http://vagish.com(当你缩小浏览器宽度时,它会改变导航栏)

    您可以在 768px 和 880px 之间进行媒体查询,并减少菜单项之间的间距,这应该能够使它看起来很好,直到您点击 768px 媒体查询。

    这会起作用(连同上面的 CSS):

    @media all and (max-width: 768px) and (min-width: 880px) {
        .menu-principal {
            padding:0px;
        }
        .menu-med .item a {
            padding:0 .69em;
        }
    }
    

    【讨论】:

    • 非常感谢@Vagish,我会尝试的,问题是我只有两种响应式设计:一种用于移动设备(320px),我有另一个导航栏,只有标签按钮,另一个用于表格(768px)但我试图做的是让导航栏保持不变,直到它达到 768px 中断,我激活我的媒体查询并将导航栏更改为更小的导航栏。我的响应式方法是在您调整浏览器窗口大小的任何时候都让它看起来相当不错,就像您在网站上所做的一样。任何其他想法将不胜感激。
    • 我已经用更多 CSS 代码更新了我的答案,这应该可以解决您的问题。
    • 我得到了你@Vagish,所以诀窍是每次窗口调整到导航栏元素将彼此重叠的点时减少导航栏中的填充?我会探索你的技术并让你知道,非常感谢!
    • 差不多,只要得到类似 Firebug(Firefox 插件)或在 Chrome 上使用 Inspect Element 并不断修改 CSS。我就是这样做的。另外,如果我已经回答了您的问题,您可以按我的答案旁边的绿色勾号。 :)
    • 很抱歉再次打扰您@Vagish。在玩过这种方法之后,我开始觉得每次浏览器窗口像 10px 一样拉伸时我都必须进行媒体查询,因为每次窗口在某一点调整大小时,导航栏都会再次将一个元素放在彼此之上。有什么方法可以制作相对填充,以便在每次调整窗口大小并破坏导航栏时不更改它们?
    猜你喜欢
    • 2019-11-20
    • 2020-05-30
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多