尝试仅使用 CSS 制作移动导航菜单
Trying to make mobile Nav Menu with only CSS
我一直在这个网站上工作,并且正在使用媒体查询根据屏幕大小调整视图的布局。对于移动 phone 大小,我想隐藏已经存在的导航,只显示一个简单的 "Menu" link,单击它会显示导航菜单。我一直在进行研究,但是我正在寻找使用现有代码的最简单方法。任何想法将不胜感激。如果可能的话,我想远离 javaScript。
<nav>
<ul>
<li><a href="meetPractioner.html">Meet The Practioner</a></li>
<li><a href="servicesRates.html">Services & Rates</a></li>
<li><a href="bookAppointment.html">Book Appointment</a></li>
<li><a href="locationHours.html">Location & Hours</a></li>
<li><a href="testimonials.html">Testimonials</a></li>
<li><a href="questions.html">Questions & Answers</a></li>
<li><a href="benefits.html">Benefits of Massage</a></li>
<li><a href="bodySense.html">Body Sense Magazine</a></li>
</ul>
<a href="#" id="pull">Menu</a>
</nav>
这是我的 jsFiddle,显示了 CSS 和其余代码。 http://jsfiddle.net/Floyd/v723oqfc/
所以你可以做的是:
创建一个名为 menu-bttn 的按钮 css:
a.menu-bttn {
display: none;
//Other properties
}
//You should really use javascript or jquery for button click rather than CSS
a.menu-bttn:focus > nav ul li a {
display: block;
}
...
@media only screen and (max-width:WIDTH) {
a.menu-bttn {
display: inline-block;
}
nav ul li a {
display: none;
width: 100%;
//positioning
}
}
JQuery点击方法:
<script>
function toggleMenu() {
$('nav ul li a').slideToggle("fast");
}
</script>
<a onclick="toggleMenu()" class="menu-bttn">Menu</a>
或
<script>
$(document).ready(function() {
$('.menu-bttn').click(function() {
$('nav ul li a').slideToggle("fast");
});
});
</script>
<a class="menu-bttn">Menu</a>
SlideToggle 上的文档:http://api.jquery.com/slidetoggle/
您不必使用 SlideToggle,还有其他选项:
切换文档:http://api.jquery.com/toggle/
纯Javascript方法:
<script>
var bttn = document.getElementsByClassName('menu-bttn');
var bttn = bttn[0];
function toggleMenu() {
var menu = document.getElementsById(//Id Of nav ul li a elements);
if (menu.style.display === 'none')
menu.style.display = 'block';
else
menu.style.display = 'none';
}
</script>
<html>
...
<a onclick="toggleMenu()" class="menu-bttn">Menu</a>
...
</html>
我一直在这个网站上工作,并且正在使用媒体查询根据屏幕大小调整视图的布局。对于移动 phone 大小,我想隐藏已经存在的导航,只显示一个简单的 "Menu" link,单击它会显示导航菜单。我一直在进行研究,但是我正在寻找使用现有代码的最简单方法。任何想法将不胜感激。如果可能的话,我想远离 javaScript。
<nav>
<ul>
<li><a href="meetPractioner.html">Meet The Practioner</a></li>
<li><a href="servicesRates.html">Services & Rates</a></li>
<li><a href="bookAppointment.html">Book Appointment</a></li>
<li><a href="locationHours.html">Location & Hours</a></li>
<li><a href="testimonials.html">Testimonials</a></li>
<li><a href="questions.html">Questions & Answers</a></li>
<li><a href="benefits.html">Benefits of Massage</a></li>
<li><a href="bodySense.html">Body Sense Magazine</a></li>
</ul>
<a href="#" id="pull">Menu</a>
</nav>
这是我的 jsFiddle,显示了 CSS 和其余代码。 http://jsfiddle.net/Floyd/v723oqfc/
所以你可以做的是:
创建一个名为 menu-bttn 的按钮 css:
a.menu-bttn {
display: none;
//Other properties
}
//You should really use javascript or jquery for button click rather than CSS
a.menu-bttn:focus > nav ul li a {
display: block;
}
...
@media only screen and (max-width:WIDTH) {
a.menu-bttn {
display: inline-block;
}
nav ul li a {
display: none;
width: 100%;
//positioning
}
}
JQuery点击方法:
<script>
function toggleMenu() {
$('nav ul li a').slideToggle("fast");
}
</script>
<a onclick="toggleMenu()" class="menu-bttn">Menu</a>
或
<script>
$(document).ready(function() {
$('.menu-bttn').click(function() {
$('nav ul li a').slideToggle("fast");
});
});
</script>
<a class="menu-bttn">Menu</a>
SlideToggle 上的文档:http://api.jquery.com/slidetoggle/
您不必使用 SlideToggle,还有其他选项: 切换文档:http://api.jquery.com/toggle/
纯Javascript方法:
<script>
var bttn = document.getElementsByClassName('menu-bttn');
var bttn = bttn[0];
function toggleMenu() {
var menu = document.getElementsById(//Id Of nav ul li a elements);
if (menu.style.display === 'none')
menu.style.display = 'block';
else
menu.style.display = 'none';
}
</script>
<html>
...
<a onclick="toggleMenu()" class="menu-bttn">Menu</a>
...
</html>