Tôi đã cố gắng tạo màn hình trong đó sử dụng các phần tử giả :before
và :after
, nhưng tôi tự hỏi liệu chức năng đó có thực sự có thể không.Khi di chuột qua một phần tử giả, làm cho phần tử giả khác xuất hiện?
Tôi có một bao bọc div được bao bọc xung quanh đầu vào (cho phép pseudo element
s trên trình bao bọc này).
cái gì đó như:
+-----------------------------------+
| +-------------------------------+ |
| | | | <-- wrapper div
| +-------------------------------+ <-- input element
+-----------------------------------+
Tuy nhiên, tôi đã tìm cách để có một yếu tố giả đặt sau div.
+-----------------------------------++-------+
| +-------------------------------+ | |¯¯¯| |
| | | | / |
| +-------------------------------+ | ! |<--pseudo element
+-----------------------------------++-------+
Tôi muốn có thể di chuyển phần tử giả này và có phần tử giả khác xuất hiện.
.wrap {
position: relative;
height: 30px;
width: 200px;
display: inline-block;
}
.wrap input {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
}
.wrap:after {
content: "?";
position: absolute;
top: 0;
left: 100%;
height: 30px;
width: 30px;
font-size: 30px;
text-align: center;
}
.wrap:before {
content: "";
position: absolute;
top: 100%;
left: 0;
height: 60px;
width: 100%;
background: tomato;
opacity:0.2;
}
<div class="wrap">
<input placeholder="input element" type="text" />
</div>
Từ việc thiết kế đoạn trên, là có một cách để làm cho các yếu tố :before
thay đổi opacity của nó khi tôi di chuột chỉ là yếu tố :after
, và không phải là wrap
div riêng của mình (lưu ý : html không thể thay đổi, do đó tại sao câu hỏi này)?
tôi đã cố gắng sử dụng một cái gì đó như:
.wrap:not(input):hover:before{
sau khi thay đổi độ rộng của đầu vào cho 90%
, nhưng điều này đã không tạo sự khác biệt
Một trường hợp thú vị để làm cho các phần tử giả được tính là bộ chọn đơn giản để người ta có thể làm một cái gì đó như '.wrap: has (:: after: hover) :: trước'. Nhưng than ôi ... – BoltClock
@BoltClock Có phải ':: after: hover' hợp lệ trong bộ chọn cấp 4 không? Nếu tôi nhớ chính xác, các phần tử giả không thể có các lớp giả ... –
@Hashem Qolami: Nó ở cấp 4. Nó phụ thuộc vào cả phần tử giả và lớp giả - một số kết hợp có thể có trong khi một số khác thì không.Xem http://dev.w3.org/csswg/selectors-4/#pseudo-elements, nói rằng "Các phần tử giả là vô nghĩa và do đó không thể so khớp với bất kỳ bộ chọn nào khác. Chúng cũng không ảnh hưởng đến cách diễn giải các lớp giả cấu trúc, được đánh giá chỉ dựa trên các phần tử thực. Các lớp giả khác * có thể * khớp với các phần tử giả, trừ khi được chỉ định khác. " – BoltClock