1. ホーム
  2. css

[解決済み】:afterと:hoverの組み合わせ

2022-04-14 12:40:55

質問

を組み合わせたい。 :after:hover をCSS(または他の擬似セレクタ)で使用することができます。 私は基本的にリストを持っていて、その中のアイテムに selected クラスには、矢印の形が :after . ホバーオーバーしているオブジェクトにも同じことが言えるようにしたいのですが、なかなかうまくいきません。 以下はそのコードです。

#alertlist {
  list-style: none;
  width: 250px;
}

#alertlist li {
  padding: 5px 10px;
  border-bottom: 1px solid #e9e9e9;
  position: relative;
}

#alertlist li.selected,
#alertlist li:hover {
  color: #f0f0f0;
  background-color: #303030;
}

#alertlist li.selected:after {
  position: absolute;
  top: 0;
  right: -10px;
  bottom: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 10px solid #303030;
  content: "";
}
<ul id="alertlist">
  <li>Alert 123</li>
  <li class="selected">Alert 123</li>
  <li>Alert 123</li>
</ul>

解決方法は?

を追加するだけです。 :after#alertlist li:hover セレクタで行うのと同じ方法で #alertlist li.selected セレクターを使用します。

#alertlist li.selected:after, #alertlist li:hover:after
{
    position:absolute;
    top: 0;
    right:-10px;
    bottom:0;

    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 10px solid #303030;
    content: "";
}