html - 如何创建排斥其他链接的悬停效果?
问题描述
我正在为我的网站创建一个主菜单,其中链接被悬停的链接排斥,作为一种效果。当菜单是水平的时,我得到了它的工作。但是当菜单是垂直的时,我如何获得排斥的链接?
我试过: - 添加margin-top
and margin-bottom
,但只有下面的链接被击退,而悬停的链接本身也被向下推。margin-top
-为悬停的链接添加负数,只会将其自身向上推。margin-top
-在悬停上方的链接中添加否定。
#MainMenu {
position: absolute;
margin: 0;
top: 0;
max-width: 100%;
left: 50%;
transform: translate(-50%);
height: 240px;
}
.MainMenu-Wrapper {
position: relative;
width: auto;
margin-top: 70px;
}
#MainMenu li {
list-style-type: none;
display: block;
}
#MainMenu a {
text-decoration: none;
font-size: 1em;
margin: 0 2em;
font-family: 'Montserrat', sans-serif;
font-weight: 400;
padding: 10px;
}
<ul id="MainMenu">
<div class="MainMenu-Wrapper">
<li>
<a href="#">Link1</a>
</li>
<li>
<a href="#">Link2</a>
</li>
<li>
<a href="#">Link3</a>
</li>
<li>
<a href="#">Link4</a>
</li>
</div>
</ul>
解决方案
我设法让它工作,但它仍然远非完美。但至少选择器正在做他们应该做的!
#MainMenu {
padding: 0;
}
#MainMenu li {
list-style-type: none;
position: relative;
transition: all 0.4s;
}
#MainMenu li:nth-child(2n) {
background: #ddd
}
#MainMenu a {
display: block;
text-decoration: none;
font-size: 1em;
font-family: 'Montserrat', sans-serif;
font-weight: 400;
padding: 10px;
}
#MainMenu:hover li {
top: -20px;
}
#MainMenu li:hover {
top: 0;
}
#MainMenu li:hover~li {
top: 20px;
}
<ul id="MainMenu">
<li><a href="#">Link1</a></li>
<li><a href="#">Link2</a></li>
<li><a href="#">Link3</a></li>
<li><a href="#">Link4</a></li>
<li><a href="#">Link5</a></li>
<li><a href="#">Link6</a></li>
</ul>
推荐阅读
- ssis - SSIS:如何逐步将失败文件移动到失败文件夹
- javascript - Javascript:如何从多个数组和变量构造一个对象?
- php - 我该怎么做才能在网站上添加正确的 Pinterest TAG
- private-key - 将 OpenSSH ED25519 私钥格式转换为 PEM 格式
- xpath - 如何在 Xpath 中通过非直接子条件进行选择?
- git - 是否有理由分叉我有权访问的组织存储库?
- python - `x = 42; x = lambda: x` 已解析?
- database - 同一服务器上具有不同 URI 的多个 Neo4J 实例
- c - '^d' 被击中后 scanf 被忽略
- python - python如何在数据框中执行以下操作