我在设计响应式 header 时遇到了一些问题
I have a few problems with designing a responsive header
我正在设计一个 header 并且有一些关于我遇到的问题的问题。
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, 0, 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>
我想要的方式如下:
如您所见,我在搜索框的右侧有一个徽标,即从页面顶部到搜索框底部。
中间有一个横幅,三个社交媒体 link 和两个 link 位于社交媒体 link 右下角。
我在菜单顶部还有一个白色图像,它将被替换为正确的图像。
(我没有使用 nav
创建菜单,因为该图像应该位于菜单的顶部;因此,我也有移动尺寸屏幕的问题,因此需要手动执行此操作,帮助设计导航也将不胜感激)
我被要求缩小要求,
我需要将徽标放在屏幕截图中显示的位置,而不是原来的位置,(它现在位于横幅的左侧 - 请点击 'demo is here' link 看看).
还需要为手机屏幕创建一个汉堡包样式的菜单,因为我没有使用导航所以很难实现。如果您知道如何解决导航问题,我将不胜感激,因为您可以看到当前菜单不是基于导航的。
我需要它具有响应性,所以如果您做出任何更改,请考虑一下,我将不胜感激。
首先,对于移动设备上的汉堡式菜单,我强烈推荐 FlexNav。
现在,您尝试做的大部分事情都可以通过添加一些额外的 div 来完成,我将解释:
响应式设计的整体理念是项目相互堆叠,当您到达某个点(断点)时,它们会漂浮在其他元素旁边。
上面的示例显示了如果所有容器都在宽屏断点 float: left;
时会发生什么。
您希望浮动在其他元素旁边的所有元素都需要位于同一个容器内。在你的情况下,这意味着一个容器应该有你的标志,下一个容器应该有你的横幅、输入字段和搜索框,最后一个容器应该有你的社交链接。或者,如果您希望在移动设备上靠近顶部的社交链接,您可以使用 float: right;
而不是 float: left;
并将它们放在较早的容器中。
要让您的表单元素彼此相邻,它们需要 width
的 50% 或更少。百分比非常适合响应式主题。
最后,如果您计划进行大量的响应式主题设计,那么可以使用一些工具来设置和学习,但可以使整个过程更加顺畅,例如:
- SASS(需要 Ruby 或申请)
- Singularity Grids
- Susy(类似于奇点)
好吧,就像我一直说的那样,当你想将你的设计转化为网络时,不使用 boostrap 会更快、更容易,而且特别干净。 Bootstrap 是一种在 Twitter 自己设计下制作快速响应网站的工具。这很好但不是奇迹。如果你想在网络上使用自己的设计,你需要知道 css,无论要修改 bootstrap 还是从头开始(如果你知道 css 那么你就不会使用 bootstrap太多了)。
我会从头开始。
当您从 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 中看到的那样,一切都有意义,并且只需添加一行 media queries
即可响应。社交面板不会更改其宽度,因此为 600px (您可以设置您想要的中断宽度)宽度,我已经更改了 menú-top-center
以获得除社交容器之外的所有 parent 宽度。请注意,我还将主容器的最大宽度设置为 970 像素(如您的示例所示)
此外,我设置了一些高度只是为了能够检查布局,稍后我将删除许多属性,因为内容将设置正确的高度。
现在是时候将元素放入 html 容器中了。
您登录左侧的图标在 html 和 css 添加图像。正确的 atm 它们位于响应式容器中,因此当您调整大小时,里面的图像会改变它们的宽度 window。如果你想要一个固定的大小,那么给容器一个宽度 px
和 container-login
一个宽度,再次 width:calc(100% - yourwidthpx);
:
.icons-left img {
width:100%;
display:block;
padding:5px;
}
您在 html 中的“徽标”图像具有您想要的尺寸(现在删除他的 parent 的高度):
.logo img {
height:40px;
width:253px;
max-width:90%;
display:inline-block;
}
您的登录 inputs
在登录 div 中(现在删除他的 parent 的高度)和媒体查询以使其响应:
.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;
}
然后去掉高度和background-colors就是这样:FIDDLE
当然还有一些事情要做来设计你的项目,毕竟这是布局,我会给你留一些工作:)
如果我今晚晚些时候有时间,我可能会完成您的菜单,尝试解释如何使用“汉堡”图标使其具有响应性。
相信我,通过覆盖和修改您的 bootstrap 使其看起来像您想要的那样,所有这一切都变得更加容易和快速。
已编辑(“汉堡”菜单):
现在让我们制作主菜单(根据您的图片)。 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>
其中 burger
是图标。我们给这个容器 position:absolute
并使用 display:none
隐藏它。然后通过媒体查询,我们在隐藏列表的同时显示图标。我们还需要将 li’s
从 display:inline-block
更改为 display:block
,最后将 min-height 设置到主容器,这样当列表被隐藏时,您仍然有“绿色”菜单导航:
.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;}
}
我们还添加了最后一个 class:
.menu-bot .visible {display:block;}
单击汉堡图标后,visible
只会更改列表的显示。为此,您只需要一个非常简单的 jquery 代码:
$(document).ready(function () {
$('.burger').click(function () {
$('.menu-bot ul').toggleClass("visible");
});
});
这可以通过 css 并使用悬停而不是点击来实现,但我发现点击事件更好,您未来的用户可能会有更好的体验
就是这样。非常简单易懂,就几行css.
最终 FIDDLE。祝你的项目好运
我正在设计一个 header 并且有一些关于我遇到的问题的问题。
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, 0, 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>
我想要的方式如下:
如您所见,我在搜索框的右侧有一个徽标,即从页面顶部到搜索框底部。
中间有一个横幅,三个社交媒体 link 和两个 link 位于社交媒体 link 右下角。
我在菜单顶部还有一个白色图像,它将被替换为正确的图像。
(我没有使用 nav
创建菜单,因为该图像应该位于菜单的顶部;因此,我也有移动尺寸屏幕的问题,因此需要手动执行此操作,帮助设计导航也将不胜感激)
我被要求缩小要求,
我需要将徽标放在屏幕截图中显示的位置,而不是原来的位置,(它现在位于横幅的左侧 - 请点击 'demo is here' link 看看).
还需要为手机屏幕创建一个汉堡包样式的菜单,因为我没有使用导航所以很难实现。如果您知道如何解决导航问题,我将不胜感激,因为您可以看到当前菜单不是基于导航的。
我需要它具有响应性,所以如果您做出任何更改,请考虑一下,我将不胜感激。
首先,对于移动设备上的汉堡式菜单,我强烈推荐 FlexNav。
现在,您尝试做的大部分事情都可以通过添加一些额外的 div 来完成,我将解释:
响应式设计的整体理念是项目相互堆叠,当您到达某个点(断点)时,它们会漂浮在其他元素旁边。
上面的示例显示了如果所有容器都在宽屏断点 float: left;
时会发生什么。
您希望浮动在其他元素旁边的所有元素都需要位于同一个容器内。在你的情况下,这意味着一个容器应该有你的标志,下一个容器应该有你的横幅、输入字段和搜索框,最后一个容器应该有你的社交链接。或者,如果您希望在移动设备上靠近顶部的社交链接,您可以使用 float: right;
而不是 float: left;
并将它们放在较早的容器中。
要让您的表单元素彼此相邻,它们需要 width
的 50% 或更少。百分比非常适合响应式主题。
最后,如果您计划进行大量的响应式主题设计,那么可以使用一些工具来设置和学习,但可以使整个过程更加顺畅,例如:
- SASS(需要 Ruby 或申请)
- Singularity Grids
- Susy(类似于奇点)
好吧,就像我一直说的那样,当你想将你的设计转化为网络时,不使用 boostrap 会更快、更容易,而且特别干净。 Bootstrap 是一种在 Twitter 自己设计下制作快速响应网站的工具。这很好但不是奇迹。如果你想在网络上使用自己的设计,你需要知道 css,无论要修改 bootstrap 还是从头开始(如果你知道 css 那么你就不会使用 bootstrap太多了)。
我会从头开始。
当您从 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 中看到的那样,一切都有意义,并且只需添加一行 media queries
即可响应。社交面板不会更改其宽度,因此为 600px (您可以设置您想要的中断宽度)宽度,我已经更改了 menú-top-center
以获得除社交容器之外的所有 parent 宽度。请注意,我还将主容器的最大宽度设置为 970 像素(如您的示例所示)
此外,我设置了一些高度只是为了能够检查布局,稍后我将删除许多属性,因为内容将设置正确的高度。
现在是时候将元素放入 html 容器中了。
您登录左侧的图标在 html 和 css 添加图像。正确的 atm 它们位于响应式容器中,因此当您调整大小时,里面的图像会改变它们的宽度 window。如果你想要一个固定的大小,那么给容器一个宽度 px
和 container-login
一个宽度,再次 width:calc(100% - yourwidthpx);
:
.icons-left img {
width:100%;
display:block;
padding:5px;
}
您在 html 中的“徽标”图像具有您想要的尺寸(现在删除他的 parent 的高度):
.logo img {
height:40px;
width:253px;
max-width:90%;
display:inline-block;
}
您的登录 inputs
在登录 div 中(现在删除他的 parent 的高度)和媒体查询以使其响应:
.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;
}
然后去掉高度和background-colors就是这样:FIDDLE
当然还有一些事情要做来设计你的项目,毕竟这是布局,我会给你留一些工作:)
如果我今晚晚些时候有时间,我可能会完成您的菜单,尝试解释如何使用“汉堡”图标使其具有响应性。
相信我,通过覆盖和修改您的 bootstrap 使其看起来像您想要的那样,所有这一切都变得更加容易和快速。
已编辑(“汉堡”菜单):
现在让我们制作主菜单(根据您的图片)。 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>
其中 burger
是图标。我们给这个容器 position:absolute
并使用 display:none
隐藏它。然后通过媒体查询,我们在隐藏列表的同时显示图标。我们还需要将 li’s
从 display:inline-block
更改为 display:block
,最后将 min-height 设置到主容器,这样当列表被隐藏时,您仍然有“绿色”菜单导航:
.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;}
}
我们还添加了最后一个 class:
.menu-bot .visible {display:block;}
单击汉堡图标后,visible
只会更改列表的显示。为此,您只需要一个非常简单的 jquery 代码:
$(document).ready(function () {
$('.burger').click(function () {
$('.menu-bot ul').toggleClass("visible");
});
});
这可以通过 css 并使用悬停而不是点击来实现,但我发现点击事件更好,您未来的用户可能会有更好的体验 就是这样。非常简单易懂,就几行css.
最终 FIDDLE。祝你的项目好运