我正在制作一个下拉菜单,当你将鼠标悬停在上面时,它应该会淡入淡出。所有元素都有相同的过渡,但将鼠标悬停在第一个始终可见的选项卡上时,其外观会有所不同。如果将鼠标悬停在下拉列表上时仔细观察,可以看到这两个元素之间的细微差别。
JSFIDLE(JSIDLE):
https://jsfiddle.net/a9b83786/
HTML:
<div class="nav">
<!--.xX~Dropdown~Xx.-->
<div class="navChild navDropdown">
<!--Dropdown parent-->
<div class="navTab navTabDropdownParent">
Units
</div>
<!--Dropdown item-->
<a href="#" class="navTab navTabDropdownItem">
Length [M]
</a>
</div>
CSS:
:root{
/*Colors*/
--Normal-Color: #24AAB8;
--Hover-Color: #26C2A5;
--Active-Color: #26C24D;
/*Lengths*/
--Nav-Height: 60px;
/*Multiplier*/
--NavTab-Width-Multiplier: 2;
}
/*Navigation Tabs*/
/*Nav tabs in general*/
.navChild {
display: inline-block;
float: left;
position: relative;
z-index: 1;
}
.navDropdown:hover .navTabDropdownParent {
background-color: var(--Normal-Color)
}
.navDropdown:hover .navTabDropdownItem {
opacity: 1;
}
.navDropdown {
height: var(--Nav-Height);
}
.navDropdown:hover {
height: auto;
}
/* MAIN TRANSITION CODE */
.navTab {
height: var(--Nav-Height);
width: calc(var(--NavTab-Width-Multiplier) * var(--Nav-Height));
display: block;
text-align: center;
line-height: var(--Nav-Height);
text-decoration: none;
color: black;
transition: all 0.2s linear; /* First transition */
}
.navChild:hover .navTab {
visibility: visible;
transition: all 0.2s linear; /* Second transition */
}
/*Buttons*/
.navTabButton:hover {
background-color: var(--Hover-Color);
}
.navTabButton:active {
background-color: var(--Active-Color);
}
/*Dropdown*/
.navTabDropdownItem:hover {
background-color: var(--Hover-Color);
}
.navTabDropdownItem:active {
background-color: var(--Active-Color);
}
.navTabDropdownItem{
visibility: hidden;
opacity: 0;
background-color: var(--Normal-Color);
}
(检查JSFIDLE以获取更新)