Hoi,

Ik heb een button die een box kan togglen. Als je er op klikt, komt hij of verdwijnt het.

<button class="faq-question">Kan ik contact opnemen?</button>
<div class="faq-answer answer-hidden">
Ja dat kan.					
</div>



window.onload = function() {
  const questions = document.querySelectorAll('.faq-question');
  questions.forEach((question) => {
	  question.addEventListener('click', (e) => {
		e.preventDefault();
		e.target.classList.toggle('active');
		const answer = question.nextElementSibling;
		if(answer.classList.contains('faq-answer')){
			answer.classList.toggle('answer-hidden');
		}
	  });
  });

};


Dit gebeurt nu heel simpel door de answer-hidden class te togglen. Maar ik vroeg me af of het met deze code mogelijk is in de css om een transition te maken dat het lijkt alsof het antwoord uit de vraag glijd. Dus dat de hoogte van 0 naar ... gaat?
Kan tegenwoordig prima zonder JavaScript:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>
    	html, body {
    		font-family: Verdana;
    	}
    	.container {
    		margin: 10px 0;
    		padding: 20px;
    		border: 1px solid #666;
    		border-radius: 5px;
    	}
    	.faq-answer {
    		transition: all 1.5s ease-in-out;
    		opacity: 0;
    		margin: 10px 0;
    	}
    	label { cursor: pointer; }
        input[type=checkbox] { display: none; }
		input[type=checkbox]:checked +label ~.faq-answer{
    		opacity: 1;
		}
	</style>
</head>

<body>

	<div class="container">
	    <input type="checkbox" id="faq-01" class="faq-question">
	    <label for="faq-01" class="faq-question">Vraag 1: kan ik...?</label>
	    <div class="faq-answer">Antwoord op vraag 1</div>
	</div>

	<div class="container">
	    <input type="checkbox" id="faq-02" class="faq-question">
	    <label for="faq-02" class="faq-question">Vraag 2: kan ik...?</label>
	    <div class="faq-answer">Antwoord op vraag 2</div>
	</div>

	<div class="container">
	    <input type="checkbox" id="faq-03" class="faq-question">
	    <label for="faq-03" class="faq-question">Vraag 3: kan ik...?</label>
	    <div class="faq-answer">Antwoord op vraag 3</div>
	</div>

</body>

</html>

Reageren