Html 纯CSS下拉菜单在错误元素悬停时触发
所以我有一个纯css下拉菜单,但我有一个问题。当您将鼠标悬停在某个链接上时,下拉菜单会起作用,但当您将鼠标悬停在包含下拉菜单部分的实际容器上时,下拉菜单也会触发。下面是一个包含代码的JSFIDLEHtml 纯CSS下拉菜单在错误元素悬停时触发,html,css,Html,Css,所以我有一个纯css下拉菜单,但我有一个问题。当您将鼠标悬停在某个链接上时,下拉菜单会起作用,但当您将鼠标悬停在包含下拉菜单部分的实际容器上时,下拉菜单也会触发。下面是一个包含代码的JSFIDLE 链接1 链接2 链接3 链接1 链接2 链接3 链接1 链接2 链接3 .clearfix:之前, .clearfix:在{ 内容:“; 显示:表格; } .clearfix:在{ 明确:两者皆有; } .clearfix{ *缩放:1; } 导航{ 宽度:
-
- 链接1
- 链接2
- 链接3
-
- 链接1
- 链接2
- 链接3
-
- 链接1
- 链接2
- 链接3
.clearfix:之前,
.clearfix:在{
内容:“;
显示:表格;
}
.clearfix:在{
明确:两者皆有;
}
.clearfix{
*缩放:1;
}
导航{
宽度:100%;
高度:60px;
背景色:黑色;
边框底部:#ffd600实心10px;
保证金:0自动;
}
导航ul{
位置:inheirt;
}
李国荣{
过渡:所有.6s易于输入输出;
-moz转换:所有.6秒都易于输入输出;
-o型过渡:所有.6s易于输入输出;
-webkit过渡:所有.6s易于输入输出;
宽度:80px;
高度:60px;
左边距:10px;
显示:;
浮动:左;
线高:60px;
文本对齐:居中;
列表样式:无;
职位:继承;
颜色:白色;
文字装饰:无;
}
nav ul li:悬停{
宽度:80px;
-moz转换:所有.6秒都易于输入输出;
-o型过渡:所有.6s易于输入输出;
-webkit过渡:所有.6s易于输入输出;
高度:60px;
左边距:10px;
背景色:#ffd600;
浮动:左;
线高:60px;
文本对齐:居中;
列表样式:无;
职位:继承;
颜色:白色;
文字装饰:无;
}
海军ulli a{
颜色:白色;
文字装饰:无;
}
html{
背景色:#F2F2;
}
#下拉列表{
宽度:100%;
高度:200px;
不透明度:0.8;
背景色:黑色;
显示:无;
}
.下拉列表{
边缘顶部:10px;
}
.下拉列表李{
宽度:300px;
背景色:#ffd600;
}
导航ul{
不透明度:0;
过渡:所有.6s易于输入输出;
-moz转换:所有.6秒都易于输入输出;
-o型过渡:所有.6s易于输入输出;
-webkit过渡:所有.6s的易用性
}
导航ul li:悬停>ul{
不透明度:0.8;
过渡:所有.6s易于输入输出;
-moz转换:所有.6秒都易于输入输出;
-o型过渡:所有.6s易于输入输出;
-webkit过渡:所有.6s易于输入输出;
}
李国宝{
不透明度:1.0!重要;
}
导航ulli:悬停{
宽度:350px!重要;
}
尝试使用可见性:隐藏
而不是像这样编辑悬停时的不透明度:
现在,您可以编辑一点过渡计时,使其更平滑
此外,过渡属性只能用于不透明度,而不能用于所有属性。请使用以下选项
/* Your dropdown */
nav ul ul {
opacity: 0;
visibility:hidden;
transition: opacity .6s ease-in-out;
-moz-transition: opacity .6s ease-in-out;
-o-transition: opacity .6s ease-in-out;
-webkit-transition: opacity .6s ease-in
}
/* Code to display your dropdown */
nav ul li:hover > ul {
opacity: 0.8;
visibility:visible;
}
关于一个有效的例子,请点击这里
说明:
您的.dropdown
仍然存在,它的不透明度为0
每当您将鼠标悬停在该“不可见”下拉列表上时,就会触发其父项的悬停样式,从而再次显示.dropdown
解决方案:为您的下拉列表设置的可见性
的隐藏
,并仅当您将鼠标悬停在父li
上时,将可见性
设置为可见
另外,仅使用不透明度
属性上的转换,然后立即更改可见性
,但不透明度
平滑转换
PS:如果你想知道我为什么不使用显示:无,那是因为你不能转换显示(
/* Your dropdown */
nav ul ul {
opacity: 0;
visibility:hidden;
transition: opacity .6s ease-in-out;
-moz-transition: opacity .6s ease-in-out;
-o-transition: opacity .6s ease-in-out;
-webkit-transition: opacity .6s ease-in
}
/* Code to display your dropdown */
nav ul li:hover > ul {
opacity: 0.8;
visibility:visible;
}