Combine: after dengan: hover


176

Saya ingin menggabungkan :afterdengan :hoverdi CSS (atau pemilih semu lainnya). Saya pada dasarnya memiliki daftar dan item dengan selectedkelas memiliki bentuk panah yang digunakan :after. Saya ingin hal yang sama berlaku untuk objek yang sedang melayang tetapi tidak bisa membuatnya berfungsi. Inilah kode

#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>

Sudahkah Anda mencoba menambahkan aturan #alertlist li: hover: after?
Andrea

Jawaban:


225

Cukup tambahkan pemilih :afterAnda #alertlist li:hoverdengan cara yang sama Anda lakukan dengan #alertlist li.selectedpemilih Anda :

#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: "";
}

29
@ Chris, apa yang Anda mungkin coba sebelumnya :after:hover bertentangan :hover:after. Inilah yang saya lakukan pada awalnya yang gagal tidak berhasil
WickyNilliams

3
@WickyNilliams: Itu sesuai desain (elemen semu vs kelas semu) - lihat stackoverflow.com/questions/5777210/…
BoltClock

3
Ini sepertinya tidak berfungsi untuk dekorasi teks di Chrome (v43) atau FF (v38).
geoidesic

@geoidesic: Dekorasi teks adalah masalah yang berbeda sama sekali. Mereka terutama tidak bermain dengan baik dengan posisi absolut. Tidak ada hubungannya dengan elemen :hoverpseudo atau kelas pseudo.
BoltClock

@BoltClock Saya tidak menggunakan penentuan posisi absolut, tetapi sementara saya bisa mengubah warna saya: setelah konten menggunakan sintaks pemilih di atas, saya tidak dapat mengubah dekorasi teks untuk status hover dari: setelah elemen pada tautan . Kalau tidak, dekorasi teks berfungsi dengan baik.
geoides

22

di scss

&::after{
content: url(images/RelativeProjectsArr.png);
margin-left:30px;
}

&:hover{
    background-color:$turkiz;
    color:#e5e7ef;

    &::after{
    content: url(images/RelativeProjectsArrHover.png);
    }
}

8
 #alertlist li:hover:after,#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: "";
}​

jsFiddle Link


li: hover: afte menambahkan ini di kelas yang sama dengan yang dipilih
Kishore Kumar
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.