demo is here和代码如下,任何帮助将不胜感激.
.menu { position: relative; width: 100%; height: 66px; max-height: 90px; background: green; } .menu img { max-height: 30px; } .menu ul { left: 0; margin: 0 auto; width: 80%; margin: -30px auto 0 auto; font-size: 16px; font-weight: bold; max-width: 1200px; } .menu ul li:first-child { border-left: 1px solid gray; } .menu ul li { // width: 140px; width: 14%; display: block; float: left; text-align: center; border-right: 1px solid gray; color: white; height: 50px; line-height: 70px; vertical-align: bottom; } .menu ul li a { color: white; } .menubtn { width: 30px; height: 30px; // opacity: 0.5; cursor: pointer; } .menubtn .fa { font-size: 26px; color: rgb(75,130) } #menubtn { position: absolute; top: 2px; left: 4px; } @media only screen and (min-width: 501px) { .topbar { display: none; } .menu ul li a { font-size: 14px; } #mybody { margin-top: 8%; } } @media only screen and (max-width: 1200px) { .menu ul li a { font-size: 12px; } } @media only screen and (max-width: 888px) { .menu ul li a { font-size: 12px; } } @media only screen and (max-width: 685px) { .menu { height: 40px; } .menu ul { margin: 0; } .menu img { display: none } .menu ul { width: 100%; } .menu ul li { line-height: 40px; height: 40px; font-size: 13px; } } @media (max-height: 480px) and (min-width: 480px) and (max-width: 600px) { .menu { display: none; } } @media only screen and (min-width: 320px) and (max-width: 480px) and (orientation: landscape) { .menu { display: none; } }
<!DOCTYPE html> <html lang="en"> <head> <Meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-social/4.2.1/bootstrap-social.css"> </head> <body> <header> <div class="container-fluid"> <div class="row" style="background-color: lightblue;"> <div class="col-md-8 col-sm-8 col-xs-1"> <div id="banner" style="margin-left: 59%;"> <img height="25px" width="25px" src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcRROdI3yg-dOO1Wl56Ci6AHheWnzUA6j01oJDvxaUNViODWLpLX" /> <img height="40px;" width="253px;" src="http://staticx.ibncollege.com/wcsstore/ExtendedSitesCatalogAssetStore/907_90722_1_21939/images/FULLIMAGE_88753.jpg" /> </div> </div> <div class="col-md-2"> <div id="images" style="float: right;"> <a class="btn btn-social-icon btn-sm btn-facebook" style="text-align: center;" href="#"> <i class="fa fa-facebook"></i> </a> <a class="btn btn-social-icon btn-sm btn-twitter" href="#"> <i class="fa fa-twitter"></i> </a> <a class="btn btn-social-icon btn-sm btn-google-plus" href="#"> <i class="fa fa-google-plus"></i> </a> </div> </div> <div class="container"> <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12 search-container"> <form id="searchBox" role="form" action="#" method="GET"> <div class="col-md-4 col-sm-12 col-xs-12 searchBox"> <div class="ui-widget"> <input id="Name" name="name" class="form-control searchinput" type="text" placeholder="name" value=""> </div> </div> <div class="col-md-4 col-sm-12 col-xs-12"> <input id="family" name="family" class="form-control searchinput" type="text" placeholder="family" value=""> </div> <div class="col-md-2 col-sm-2 col-xs-1"> <button style="background-color: blue; border-radius: 14px; border-style: solid;" class="btn-search" type="submit" title="Search"> <div style="background-color: blue;"> <span class="glyphicon glyphicon-search"></span> </div> </button> </div> </form> <div style="float: right; text-align: right;" class="col-md"> <a href="#">Click1</a> <a href="#">Click2</a> </div> </div> </div> </div> <div class="hidden-xs"> <div class="menu"> <img src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTnYmtXUnZ6g5TwfPndnVQMcVdJO8qkSJqm-dPkNRJ_13IaeTP6Pw" style="width: 100%; max-height: 40px;"> <ul id="idmenu"> <li><a href="#">Item1</a> </li> <li><a href="#">Item2</a> </li> <li><a href="#">Item3</a> </li> <li><a href="#">Item4</a> </li> <li><a href="#">Item5</a> </li> <li><a href="#">Item6</a> </li> <li><a href="#">Item7</a> </li> <li><a href="#">Item8</a> </li> </ul> </div> </div> </div> </div> </header> </body> </html>
我想要的方式如下:
您可以看到我在搜索框的右侧有一个标志,即从页面顶部到搜索框的底部.
中间的横幅,三个社交媒体链接和两个位于社交媒体链接的右下方的链接.
我也有一个白色图像在菜单顶部,将被替换为正确的图像.
(我没有使用导航导航菜单,因为该图像应该在菜单之上;因此,我有移动尺寸屏幕的问题,因此手动需要这样做,帮助设计与导航也将是赞赏)
我被要求缩小要求,
>我需要将标志放在屏幕截图所示的位置,而不是它所在的位置(现在在横幅左侧,请点击“演示在这里”链接).
>还需要为移动屏幕创建一个汉堡包风格菜单,因为我没有使用导航,这是很难实现的.如果你知道如何用nav解决问题,我会很感激,因为你可以看到当前的菜单不是基于导航.
我需要它做出反应,所以如果你做出任何改变,我将不胜感激,如果你可以考虑.
解决方法
我将从零开始.
当您开始使用html布局时,如果没有添加主要元素,则更容易:
<header> <div class="container-menu-top"> <div class="menu-top"> <div class="menu-top-center"> <div class="icons-left"> </div> <div class="container-login"> <div class="logo"> </div> <div class="login"> </div> </div> </div> <div class="menu-top-right"> <div class="social"> </div> <div class="links"> </div> </div> </div> </div> <div class="container-menu-bot"> <div class="menu-bot"> </div> </div> </header>
然后你添加css来定位布局正确(如果你使用颜色更容易,以检查一切都可以)更好:
body {margin:0; padding:0;} * { -webkit-Box-sizing: border-Box; -moz-Box-sizing: border-Box; Box-sizing: border-Box; } .container-menu-top { width:100%; background-color: aqua; height:160px; } .container-menu-bot { width:100%; background-color: aqua; height:60px; margin-top:40px; } .menu-top,.menu-bot { max-width:970px; width:100%; height:100%; background-color: green; margin:0 auto; text-align:center; position:relative; } .menu-top-center { display:inline-block; background-color: red; width:50%; height:100%; } .menu-top-right { display:inline-block; float:right; height:100%; background-color: violet; width:150px; } .icons-left { width:10%; float:left; background-color: blue; height:100%; } .container-login { width:90%; float:left; background-color: brown; height:100%; text-align:left; } .logo { height:20%; background-color: orange; } .login { height:80%; background-color: yellow; } @media only screen and (max-width: 600px) { .menu-top-center {width: calc(100% - 150px);} }
正如你可以看到在这个FIDDLE进行中,一切都是有道理的,只要添加一行媒体查询即可.社交面板不会改变它的宽度,所以600px(你可以设置你的愿望中断宽度)宽度,我改变了menú-top-center,以获得所有的父宽度,但是社交容器.请注意,我还使主容器的最大宽度为970px(如您所示)
此外,我已经设置了一些高度,只是为了能够检查布局,稍后我会删除许多属性,因为内容将设置正确的高度.
现在是时候将元素放在他们的html容器中.
您的登录左侧的图标将图像添加到html和css.正确的大气他们在一个容器响应,所以内部的图像会改变他们的宽度,当你调整窗口大小.如果你想要一个固定的大小,然后给容器一个宽度的px和容器的logina宽度,再次宽度:calc(100% – yourwidthpx); :
.icons-left img { width:100%; display:block; padding:5px; }
您的“标志”图像在您想要的大小的HTML(现在删除他的父母的高度):
.logo img { height:40px; width:253px; max-width:90%; display:inline-block; }
您的登录inputinside登录div(现在删除其父级的高度)和mediaquery以使其重新生成:
.login input,.login button { display:inline-block; } .login input {width:35%;} @media only screen and (max-width: 600px) { .login input {width:100%;} }
您的社交图标(我建议您将其作为列表插入到html中):
.social {} .social ul {list-style:none;margin:0;} .social li { height:30px; width:30px; float:right; background-color: blue; margin-left:4px; margin-top:4px; background-repeat:no-repeat; background-size:cover; } .social1 {background-image: url(http://the-route-to-your-image.com);} .social2 {background-image: url(http://the-route-to-your-image.com);} .social3 {background-image: url(http://the-route-to-your-image.com);}
您的链接:
.links { clear:both; text-align:left; margin-top:4px; } .links a { display:inline-block; }
当然还有一些事情要做你的项目,毕竟这是布局,我会为你留下一些工作:)
如果我今晚有时间,我可以完成你的菜单,试图解释一下如何使用“汉堡”图标来表达它.
相信我,所有这一切更容易,更快速地覆盖和修改你的引导,使它看起来像你想要的.
编辑(“汉堡”menú):
现在让我们做主菜(基于你的图像). html很简单:
<div class="container-menu-bot"> <div class="menu-bot"> <ul id=""> <li><a href="#">Item1</a></li> <li><a href="#">Item2</a></li> <li><a href="#">Item3</a></li> <li><a href="#">Item4</a></li> <li><a href="#">Item5</a></li> <li><a href="#">Item6</a></li> <li><a href="#">Item7</a></li> <li><a href="#">Item8</a></li> </ul> <div class="burger"></div> </div> </div>
汉堡是图标.我们给位置:绝对到这个容器,我们使用display:none隐藏它.然后与媒体查询,我们显示图标,而隐藏我们的列表.我们还需要将li从display:inline-block更改为display:block,最后将一个最小高度设置为主容器,这样当列表被隐藏时,你仍然有“green”menúnav:
.menu-bot {position:relative;} .menu-bot a {color:#fff;} .menu-bot ul {list-style:none; margin:0;} .menu-bot li { display:inline-block; padding:10px 20px; border-left:1px solid #fff; } .menu-bot li:last-child { border-right:1px solid #fff; } .burger { width:25px; height:25px; background-color: red; position:absolute; top:7px; right:7px; display:none; } @media only screen and (max-width: 720px) { .burger {display:block;} .menu-bot ul {display:none;} .menu-bot li {display:block; border:0;} }
我们还添加了我们最后一个类:
.menu-bot .visible {display:block;}
一旦您点击汉堡图标,visiblewill就会更改列表的显示.为此,您只需要一个非常简单的jquery代码:
$(document).ready(function () { $('.burger').click(function () { $('.menu-bot ul').toggleClass("visible"); }); });
这可以通过css和使用hover insteed的点击,但我发现它更好的点击事件,你未来的用户可能会有更好的体验
就是这样相当简单,容易理解,只需几行css.
祝你好运!