Javascript 带有下拉菜单的响应导航栏不工作
我正在创建一个有下拉菜单的响应导航栏。下面是我的代码: 我将CSS代码和媒体查询内联以进行测试。所以它可能看起来很长Javascript 带有下拉菜单的响应导航栏不工作,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,我正在创建一个有下拉菜单的响应导航栏。下面是我的代码: 我将CSS代码和媒体查询内联以进行测试。所以它可能看起来很长 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" /> <link href="../../themes/bootstrap/starte
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<link href="../../themes/bootstrap/starterkits/THEMENAME/css/style.css" rel="stylesheet" />
<link href="//fonts.googleapis.com/css?family=Raleway" rel="stylesheet" type="text/css" />
<style type="text/css">body {margin:0;font-family:Arial}
.topnav {
overflow: hidden;
background-color: #ffffff;
}
.home {
float: left;
overflow: hidden;
}
.topnav a {
float: right;
display: block;
color: #000000;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.active {
background-color: #4CAF50;
color: white;
}
.topnav .icon {
display: none;
}
.dropdown {
float: right;
overflow: hidden;
}
.dropdown .dropbtn {
font-size: 17px;
border: none;
outline: none;
color: black;
padding: 14px 16px;
background-color: inherit;
margin: 0;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #ffffff;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
float: none;
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.topnav a:hover, .dropdown:hover .dropbtn {
background-color: #555;
color: #D5DBDB;
}
.dropdown-content a:hover {
background-color: #ddd;
color: black;
}
.dropdown:hover .dropdown-content {
display: block;
}
@media screen and (max-width: 600px) {
.topnav a:not(:first-child), .dropdown .dropbtn {
display: none;
}
.topnav a.icon {
float: right;
display: block;
}
}
@media screen and (max-width: 600px) {
.topnav.responsive {position: relative;}
.topnav.responsive .icon {
position: absolute;
right: 0;
top: 0;
}
.topnav.responsive a {
float: none;
display: block;
text-align: left;
}
.topnav.responsive .dropdown {float: none;}
.topnav.responsive .dropdown-content {position: relative;}
.topnav.responsive .dropdown .dropbtn {
display: block;
width: 100%;
text-align: left;
}
}
</style>
<div class="panel">
<div class="topnav" id="myTopnav">
<div class="home"><a href="#"><img src="../../sites/default/files/logo_0.png" /></a></div>
<div class="dropdown">
<div class="dropbtn"><a href="#">Programs</a></div>
<div class="dropdown-content"><a href="#">Success</a></div>
</div>
<a href="#">Contact</a>
<a href="#">Families</a>
<a href="#">About</a>
<a class="icon" href="javascript:void(0);" onclick="myFunction()" style="font-size:15px;">☰</a></div>
</div>
<script>
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
</script>
正文{margin:0;字体系列:Arial}
托普纳夫先生{
溢出:隐藏;
背景色:#ffffff;
}
.家{
浮动:左;
溢出:隐藏;
}
.topnav a{
浮动:对;
显示:块;
颜色:#000000;
文本对齐:居中;
填充:14px 16px;
文字装饰:无;
字号:17px;
}
.主动{
背景色:#4CAF50;
颜色:白色;
}
.topnav.icon{
显示:无;
}
.下拉列表{
浮动:对;
溢出:隐藏;
}
.下拉菜单{
字号:17px;
边界:无;
大纲:无;
颜色:黑色;
填充:14px 16px;
背景色:继承;
保证金:0;
}
.下拉内容{
显示:无;
位置:绝对位置;
背景色:#ffffff;
最小宽度:160px;
盒影:0px 8px 16px 0px rgba(0,0,0,0.2);
z指数:1;
}
.下拉内容a{
浮动:无;
颜色:黑色;
填充:12px 16px;
文字装饰:无;
显示:块;
文本对齐:左对齐;
}
.topnav a:悬停,.dropdown:悬停.dropbtn{
背景色:#555;
颜色:#D5DBDB;
}
.下拉列表内容a:悬停{
背景色:#ddd;
颜色:黑色;
}
.下拉:悬停.下拉内容{
显示:块;
}
@媒体屏幕和屏幕(最大宽度:600px){
.topnav a:不是(:第一个孩子),.dropdown.dropbtn{
显示:无;
}
.topnav a.icon{
浮动:对;
显示:块;
}
}
@媒体屏幕和屏幕(最大宽度:600px){
.topnav.responsive{位置:相对;}
.topnav.responsive.icon{
位置:绝对位置;
右:0;
排名:0;
}
.topnav.a{
浮动:无;
显示:块;
文本对齐:左对齐;
}
.topnav.responsive.dropdown{float:none;}
.topnav.responsive.下拉列表内容{位置:相对;}
.topnav.responsive.dropdown.dropbtn{
显示:块;
宽度:100%;
文本对齐:左对齐;
}
}
函数myFunction(){
var x=document.getElementById(“myTopnav”);
如果(x.className==“topnav”){
x、 类名+=“响应”;
}否则{
x、 className=“topnav”;
}
}
菜单左侧包含主页徽标图像,右侧包含4个菜单项
在激活的“主页”链接之后是“程序”下拉按钮,该按钮下面应该有一个“成功”下拉列表。此下拉列表加载不正确,设计扭曲。有什么帮助吗?您不需要将下拉按钮设置为
div
标记,它应该是按钮
标记
所以改变
到
这将正确地加载下拉列表,并与导航栏中的其他项目保持一致。希望这能帮助您在不更改大多数原始代码的情况下走上正确的轨道
.topnav{
溢出:隐藏;
背景色:#ffffff;
}
.家{
浮动:左;
溢出:隐藏;
}
.topnav a{
浮动:对;
显示:块;
颜色:#000000;
文本对齐:居中;
填充:14px 16px;
文字装饰:无;
字号:17px;
}
.主动{
背景色:#4CAF50;
颜色:白色;
}
.topnav.icon{
显示:无;
}
.下拉列表{
浮动:对;
溢出:隐藏;
}
.下拉菜单{
字号:17px;
边界:无;
大纲:无;
颜色:黑色;
填充:14px 16px;
背景色:继承;
保证金:0;
}
.下拉内容{
显示:无;
位置:绝对位置;
背景色:#ffffff;
最小宽度:160px;
盒影:0px 8px 16px 0px rgba(0,0,0,0.2);
z指数:1;
}
.下拉内容a{
浮动:无;
颜色:黑色;
填充:12px 16px;
文字装饰:无;
显示:块;
文本对齐:左对齐;
}
.topnav a:悬停,.dropdown:悬停.dropbtn{
背景色:#555;
颜色:#D5DBDB;
}
.下拉列表内容a:悬停{
背景色:#ddd;
颜色:黑色;
}
.下拉:悬停.下拉内容{
显示:块;
}
@媒体屏幕和屏幕(最大宽度:600px){
.topnav a:不是(:第一个孩子),.dropdown.dropbtn{
显示:无;
}
.topnav a.icon{
浮动:对;
显示:块;
}
}
@媒体屏幕和屏幕(最大宽度:600px){
.topnav.responsive{位置:相对;}
.topnav.responsive.icon{
位置:绝对位置;
右:0;
排名:0;
}
.topnav.a{
浮动:无;
显示:块;
文本对齐:左对齐;
}
.topnav.responsive.dropdown{float:none;}
.topnav.responsive.下拉列表内容{位置:相对;}
.topnav.responsive.dropdown.dropbtn{
显示:块;
宽度:100%;
文本对齐:左对齐;
}
}
正文{margin:0;字体系列:Arial}
函数myFunction(){
var x=document.getElementById(“myTopnav”);
如果(x.className==“topnav”){
x、 类名+=“响应”;
}否则{
x、 className=“topnav”;
}
}
我建议不要使用浮动进行布局。FlexBox在这方面做得更好,并且在浏览器中得到了广泛的支持
浮动正在破坏html元素的流动
此外,.dropbtn上还有一个填充,这使得项目不在一条直线上
正文{
保证金:0;
字体系列:Arial
}
托普纳夫先生{
显示器:flex;
证明内容:柔性端;
溢出:隐藏;
背景色:#ffffff;
}
.家{
右边距:自动;
}
.topnav a{
显示:块;
颜色:#000000;
文本对齐:居中;
填充:14px 16px;
文字装饰:无;
字号:17px;
}
.主动{
背景色:#4CAF50;
颜色:白色;
}
.topnav.icon{
显示:无;
}
.下拉列表{
溢出:隐藏;
}
.下拉菜单{
字号:17px;
边界:无;
大纲:无;
颜色:黑色;
背景色:继承;
保证金:0;
}
博士