如何在不使用任何框架的情况下为导航菜单制作响应式“汉堡图标”?

时间:2017-10-27 17:57:30

标签: html css html5 css3 responsive-design

我有一个快速响应的网站,我正在使用☰来显示汉堡图标,但它与手机浏览器和uc浏览器等浏览器不兼容,所以我想使用HTML,CSS制作响应式汉堡图标

正如我所说,我希望它具有响应性,所以我不想使用静态宽度和高度,我希望它可以根据屏幕大小进行更改,我正在使用媒体查询。

有使用以下html的想法:

<div class='navigation-icon'>
   <span></span>
   <span></span>
   <span></span>
</div>  

然后每个<span>用于制作一个汉堡图标图层。

5 个答案:

答案 0 :(得分:1)

嗯......如果您想使用CDN,我建议您使用http://fontawesome.io/https://cdnjs.com/libraries/font-awesome

这是一个包含许多花哨的响应图标的库,适用于所有浏览器。

答案 1 :(得分:1)

请看一下。

$(document).ready(function(){
	$('#nav-icon1').click(function(){
		$(this).toggleClass('open');
	});
});
* {
  margin: 0;
  padding: 0; 
}

/* Icon 1 */

#nav-icon1, #nav-icon2, #nav-icon3, #nav-icon4 {
  width: 60px;
  height: 45px;
  position: relative;
  margin: 50px auto;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  cursor: pointer;
}

#nav-icon1 span, #nav-icon3 span, #nav-icon4 span {
  display: block;
  position: absolute;
  height: 9px;
  width: 100%;
  background: #333;
  border-radius: 9px;
  opacity: 1;
  left: 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .25s ease-in-out;
  -moz-transition: .25s ease-in-out;
  -o-transition: .25s ease-in-out;
  transition: .25s ease-in-out;
}

#nav-icon1 span:nth-child(1) {
  top: 0px;
}

#nav-icon1 span:nth-child(2) {
  top: 18px;
}

#nav-icon1 span:nth-child(3) {
  top: 36px;
}

#nav-icon1.open span:nth-child(1) {
  top: 18px;
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg);
}

#nav-icon1.open span:nth-child(2) {
  opacity: 0;
  left: -60px;
}

#nav-icon1.open span:nth-child(3) {
  top: 18px;
  -webkit-transform: rotate(-135deg);
  -moz-transform: rotate(-135deg);
  -o-transform: rotate(-135deg);
  transform: rotate(-135deg);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<div id="nav-icon1">
  <span></span>
  <span></span>
  <span></span>
</div>

答案 2 :(得分:1)

.navigation-icon span {
  display: block;
  width: 25px;
  height: 5px;
  margin: 5px;
  background-color: #000;
}
<div class='navigation-icon'>
   <span></span>
   <span></span>
   <span></span>
</div>

答案 3 :(得分:0)

您可以在响应式广场内托管您的图标,如下所示:

HTML:

<div class="square">
    <div class='navigation-icon'>
       <span></span>
       <span></span>
       <span></span>
    </div> 
</div> 

CSS:

.square
{
  position: relative;
  margin: auto;
  width: 100%; <== This will determine the size of your square and therefore of the elements in it, as long as their size is specified in % as well.
}

.square:before
{
  content: "";
  display: block;
  padding-top: 100%; <== Leave this as is.
}

上面的css代码将构成一个完美的正方形,它将适应嵌套的任何大小。方块内的任何东西都需要设置为position:absolute。或者正方形将变成矩形。

答案 4 :(得分:0)

试试这个。

<div class=menu></div>
<div class=menu></div>
<div class=menu></div>

.menu {
width: 35px;
height: 5px;
background-color: black;
margin: 6px 0;
}
相关问题