CSS selektor nie działa

CSS selektor nie działa
Zimbob
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Tychy
  • Postów:18
0

Cześć!
Przychodzę z problemem po dość długiej przerwie od webmasteringu. Potrzebuję zrobić zwykłą stronkę internetową, na której jest zakładka FAQ. Chcę, żeby było widoczne tam pole z pytaniem, a po kliknięciu na strzałkę pole by się rozwijało i poniżej ukazywała by się odpowiedź. Może nie wytłumaczyłem tego zbyt profesjonalnie, bo nie miałem innego pomysłu jak to wytłumaczyć słownie, więc podsyłam link do strony, gdzie funkcjonuje to w stylu, w którym widział bym to również na swojej stronie https://gwiazdylegii.pl/faq.html Mam więc prostego diva w html'u, w którym jest jedno pytanie i jedna odpowiedź. Coś w tym stylu :

Kopiuj
<div class="FAQ">
          <p class="question">Pytanie</p>
          <p class="answer">Odpowiedź</p>
</div>

Nie dodawałem jeszcze żadnego buttona który by mi to rozwijał, więc zrobiłem na razie tak, żeby klikając na tego div'a odpowiedź na pytanie się pokazywała, a po ponownym kliknięciu się chowała.

Kopiuj
.FAQ {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    height: 120px;
    width: 85%;
    background-image: url(../images/qIa2.png);
    overflow-y: hidden;
    border-bottom: 1px solid #eeeeee;
    transition: 0.5s
}

.FAQ:focus {
    height: 240px;
    background-image: url(../images/qIa1.png);
}

Diva zrobiłem jednego, zamiast background-color wolałem zastosować background-image, który po kliknięciu by się rozsuwał. Niestety próbowałem kilku selektorów i żaden nie rozwiązał mojego problemu, za to jeśli zastosuję selektor :hover to całość działa, jednak całość rozsuwa się tylko w momencie, kiedy najadę na div'a kursorem, a nie przy kliknięciu. W którym miejscu zrobiłem błąd, bądź czego brakuje w moim kodzie, żeby całość działała?

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:22 minuty
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
3

Normalnie div nie jest focusowalny. Trzeba dodac np. tabindex atrybut.

Kopiuj
<div class="FAQ" tabindex="0">
          <p class="question">Pytanie</p>
          <p class="answer">Odpowiedź</p>
</div>

Btw.dziwi mnie, że to działa.


jeden i pół terabajta powinno wystarczyć każdemu
Patryk27
Jak to div nie jest focusowalny?
jarekr000000
w sumie pokazałem, że jest, po dodaniu tabindex
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

CSSem tego nie zrobisz, ponieważ wymaga to zapamiętania stanu - przyda się JS.

Edit: nieważne, sposób @jarekr000000 jest prawidłowy.


edytowany 2x, ostatnio: Patryk27
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:22 minuty
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
1
Patryk27 napisał(a):

CSSem tego nie zrobisz, ponieważ wymaga to zapamiętania stanu - przyda się JS.

CSSem można spokojnie ogarnąć stan. I takie FAQ żadnego JS nie wymaga.

EDIT: Dowód przez przykład:
Stara prezentacja , robiona jeszcze dla Capgemini -
wyłącz JS i wejdź na strone:
http://www.setblack.pl/aterchart-web/content/html5academy/css/tictactoe.html


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
Patryk27
Woo, faktycznie - odpaliłem sobie lokalnie i rzeczywiście tak to działa :D mea culpa!
Patryk27
Co do prezentacji jednak - zwraca 404;
jarekr000000
literkę l ucięło mi w .html[l]. Poprawiłem
Zimbob
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Tychy
  • Postów:18
0

Całość po dodaniu tabindex="0" działa idealnie, dokładnie taki efekt o który mi chodziło!!

Temat rozwiązany, dzięki za pomoc!

Patryk27
Pamiętaj, aby zafajkować post @jarekr000000 - symbolicznie zamyka to wątek.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.