Próbowałem wygenerować ekran z wykorzystaniem pseudoelementów :before
i :after
, ale zastanawiam się, czy taka funkcjonalność jest rzeczywiście możliwa.Po najechaniu jednym pseudo elementem, czy pojawi się drugi pseudo element?
Mam wrapper div, który jest owinięty wokół wejścia (pozwalając na pseudo element
s na tym opakowaniu).
coś takiego:
+-----------------------------------+
| +-------------------------------+ |
| | | | <-- wrapper div
| +-------------------------------+ <-- input element
+-----------------------------------+
jednak szukałem mieć element pseudo umieszczony po div.
+-----------------------------------++-------+
| +-------------------------------+ | |¯¯¯| |
| | | | / |
| +-------------------------------+ | ! |<--pseudo element
+-----------------------------------++-------+
Chciałem móc najechać na ten pseudo element i pojawił się drugi pseudo element.
.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>
Z powyższego projektu urywka, czy istnieje sposób dokonywania element :before
zmienić jej krycie kiedy unoszą się tylko element :after
, a nie sam div wrap
(uwaga : html nie może być zmieniony, stąd dlaczego to pytanie)?
Próbowałem przy użyciu coś jak:
.wrap:not(input):hover:before{
po zmianie szerokości wejścia do 90%
, ale tego nie zrobić różnicę
Ciekawy przypadek, w którym pseudoelementy są liczone jako proste selektory, więc można zrobić coś takiego jak '.wrap: has (:: after: hover) :: before'. Ale niestety ... – BoltClock
@BoltClock Czy ':: after: hover' obowiązuje na poziomie selektorów 4? Jeśli dobrze pamiętam, pseudoelementy nie mogą mieć pseudo-klas ... –
@Hashem Qolami: Jest na poziomie 4. Zależy od pseudoelementu i pseudo-klasy - niektóre kombinacje są możliwe, podczas gdy inne nie.Zobacz http://dev.w3.org/csswg/selectors-4/#pseudoelements, który mówi: "Pseudoelementy są pozbawione cech i dlatego nie mogą być dopasowane przez żaden inny selektor, nie mają również wpływu na interpretację pseudoklas strukturalnych, które są oceniane wyłącznie na podstawie rzeczywistych elementów, inne pseudoklasy * mogą * dopasowywać pseudoelementy, chyba że podano inaczej. " – BoltClock