悬停时将一个 link 变为两个
Change one link into two on hover
我正在尝试创建一个 link,当您将鼠标悬停在文本上时,它会变成两个 link。你可以在这里看到类似我想做的事情:https://www.kenzo.com/en/ 你可以看到 collections
link 当你将鼠标悬停在link。目前,我已经设法创建了一个 link,当鼠标悬停在上面时它会分成两个词,但不会分成两个 link。
这是我的 HTML 代码:
<li><a href="#" id="nav-item1"><span>Collection</span></a></li>
这是我的 CSS 代码:
#nav-item1:hover span {
display:none;
}
#nav-item1:hover:before {
content: "Men Women";
}
所以文本发生了很大的变化,但我还没有完全弄清楚如何将文本变成两个单独的 link。我不确定我是否必须为此使用 JS,因为我的 JS 知识很糟糕。
有什么想法吗?
如果我没理解错的话,你可以试试这样:
li {
list-style: none;
}
li a {
display: none;
margin-left: .3em;
}
li:hover span {
display: none;
}
li:hover a {
display: inline-block;
}
<li>
<span>Collection</span>
<a href="#" id="nav-item1">Man</a>
<a href="#" id="nav-item2">Women</a>
</li>
好的,下面是如何实现这一目标的小细节。
事物顶部有一个块元素。
然后有两个隐藏元素是块元素的子元素。
当您将鼠标悬停在块元素上时,会显示其他元素。
您还可以隐藏包含悬停文本的子元素。
.block:hover .hide {
display: inline;
}
.block {
color: black;
font-size: 20px;
}
.hide {
display: none;
}
<div class="block">
<span class="default text">Hover</span>
<a class="hide" href="#">Snowball</a>
<a class="hide" href="#">Kitten</a>
<div>
.splitted {
display: none;
}
.links:hover .one-link {
display: none;
}
.links:hover .splitted {
display: inline;
}
<span class="links">
<a href="#" class="one-link">Collection</a>
<a href="#" class="splitted">Men</a>
<a href="#" class="splitted">Women</a>
</span>
请试试这个
#nav-item1{
position: relative;
}
#nav-item1:before,
#nav-item1:after{
display: none;
position: absolute;
top: 100%;
color: #000;
}
#nav-item1:hover:before,
#nav-item1:hover:after{
display: block;
}
#nav-item1:before{
content: 'Men';
right: 50%;
}
#nav-item1:after{
content: 'Women';
left: 50%;
color: green;
}
<ul>
<li><a href="#" id="nav-item1"><span>Collection</span></a>
</li>
</ul>
我正在尝试创建一个 link,当您将鼠标悬停在文本上时,它会变成两个 link。你可以在这里看到类似我想做的事情:https://www.kenzo.com/en/ 你可以看到 collections
link 当你将鼠标悬停在link。目前,我已经设法创建了一个 link,当鼠标悬停在上面时它会分成两个词,但不会分成两个 link。
这是我的 HTML 代码:
<li><a href="#" id="nav-item1"><span>Collection</span></a></li>
这是我的 CSS 代码:
#nav-item1:hover span {
display:none;
}
#nav-item1:hover:before {
content: "Men Women";
}
所以文本发生了很大的变化,但我还没有完全弄清楚如何将文本变成两个单独的 link。我不确定我是否必须为此使用 JS,因为我的 JS 知识很糟糕。
有什么想法吗?
如果我没理解错的话,你可以试试这样:
li {
list-style: none;
}
li a {
display: none;
margin-left: .3em;
}
li:hover span {
display: none;
}
li:hover a {
display: inline-block;
}
<li>
<span>Collection</span>
<a href="#" id="nav-item1">Man</a>
<a href="#" id="nav-item2">Women</a>
</li>
好的,下面是如何实现这一目标的小细节。
事物顶部有一个块元素。
然后有两个隐藏元素是块元素的子元素。
当您将鼠标悬停在块元素上时,会显示其他元素。
您还可以隐藏包含悬停文本的子元素。
.block:hover .hide {
display: inline;
}
.block {
color: black;
font-size: 20px;
}
.hide {
display: none;
}
<div class="block">
<span class="default text">Hover</span>
<a class="hide" href="#">Snowball</a>
<a class="hide" href="#">Kitten</a>
<div>
.splitted {
display: none;
}
.links:hover .one-link {
display: none;
}
.links:hover .splitted {
display: inline;
}
<span class="links">
<a href="#" class="one-link">Collection</a>
<a href="#" class="splitted">Men</a>
<a href="#" class="splitted">Women</a>
</span>
请试试这个
#nav-item1{
position: relative;
}
#nav-item1:before,
#nav-item1:after{
display: none;
position: absolute;
top: 100%;
color: #000;
}
#nav-item1:hover:before,
#nav-item1:hover:after{
display: block;
}
#nav-item1:before{
content: 'Men';
right: 50%;
}
#nav-item1:after{
content: 'Women';
left: 50%;
color: green;
}
<ul>
<li><a href="#" id="nav-item1"><span>Collection</span></a>
</li>
</ul>