私がしようとしているのは、アンカーリンクを少し下に置くホバー効果を得ることですが、何とかすべてのリンクに影響します。誰かが私がここで間違っていたことを指摘できますか?li:hover>影響を与える他のリスト項目
nav {
width: 100%;
height: 5rem;
background: red;
}
ul {
margin: 0 auto;
font-size: 0;
}
ul li {
display: inline-block;
line-height: 4.8rem;
position: relative;
}
ul li > a {
text-decoration: none;
color: #FFF;
font-family: "Verdana";
padding: .1rem 1.5rem;
font-size: 1.3rem;
display: block;
overflow: hidden;
position: relative;
transition: 300ms all;
height: 100%;
margin: 0;
}
ul li > a::before, ul li > a::after {
content: '';
width: 100%;
position: absolute;
left: 0;
transition: 200ms all;
}
ul li > a::before {
background: #FFF;
height: .5rem;
top: 0;
transform: translateY(-100%);
}
ul li > a::after {
background: #000;
height: .4rem;
bottom: 0;
transform: translateY(100%);
}
ul li::before {
content: '';
width: 100%;
height: 100%;
top: 0;
left: 0;
background: #CCC;
position: absolute;
opacity: 0;
}
ul li:hover > a {
padding-top: 0.6rem;
padding-bottom: 0.1rem;
}
ul li:hover > a::before, ul li:hover > a::after {
transform: translateY(0);
}
ul li:hover::before {
opacity: 0.3;
}
<nav>
<ul>
<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="test.html">Link5</a></li>
</ul>
</nav>
なぜli:hover > a
は、すべてのリスト項目に影響を与えていますか?
ありがとう、私はインラインブロック要素のベースラインの問題を認識していませんでした。私は垂直配列、テキスト配列、行の高さの利点のためにfloatの代わりにインラインブロックを選択しました。しかし、この後、私はそれを4pxマージン問題と一緒に少し厄介なものと感じています。そのようなメニューの浮動小数点、インラインブロックまたはフレックスのための最良のオプションは何ですか? –
"4pxマージンの問題"とは何を意味するのか分かりませんが、それを言い換えることはできますか?私は個人的にこれらの要素を浮かべて、行の高さやパディングを使用してテキストを垂直にセンタリングします。 –
http://stackoverflow.com/questions/5078239/how-to-remove-the-space-between-inline-block-elements –