Kết hợp: sau với: hover


176

Tôi muốn kết hợp :aftervới :hovertrong CSS (hoặc bất kỳ bộ chọn giả nào khác). Về cơ bản tôi có một danh sách và mục với selectedlớp có hình mũi tên được áp dụng :after. Tôi muốn điều tương tự cũng đúng với các đối tượng đang được di chuột qua nhưng không thể làm cho nó hoạt động được. Đây là mã

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

Bạn đã thử thêm quy tắc #alertlist li: hover: after chưa?
Andrea

Câu trả lời:


225

Chỉ cần thêm :aftervào #alertlist li:hoverbộ chọn của bạn giống như cách bạn làm với #alertlist li.selectedbộ chọn:

#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, những gì bạn có thể đã thử trước đây :after:hover trái ngược với :hover:after. Đây là những gì tôi đã làm ban đầu mà bực bội không hoạt động
WickyNilliams

3
@WickyNilliams: Đó là theo thiết kế (các phần tử giả so với các lớp giả) - xem stackoverflow.com/questions/5777210/
Lỗi

3
Điều này dường như không hoạt động để trang trí văn bản trong Chrome (v43) cũng như trong FF (v38).
địa lý

@geoidesic: Trang trí văn bản là một vấn đề hoàn toàn khác. Họ đặc biệt không chơi tốt với định vị tuyệt đối. Không có gì để làm với các phần tử :hovergiả hoặc lớp giả.
BoltClock

@BoltClock Tôi không sử dụng định vị tuyệt đối nhưng trong khi tôi có thể thay đổi màu của: sau nội dung bằng cú pháp chọn trên, tôi không thể thay đổi trang trí văn bản cho trạng thái di chuột của phần tử sau: trên một liên kết . Nếu không, văn bản trang trí hoạt động tốt.
địa lý

22

trong scss

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

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

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

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

Liên kết jsFiddle


li: hover: afte thêm cái này vào cùng một lớp như đã chọn
Kishore Kumar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.