この例は、css3のみで作成されたアコーディオンの jsfiddle にあり、js はありません。
HTML:
<div class="ac-container">
<div>
<input id="ac-1" name="accordion-1" type="radio" checked />
<label for="ac-1">About us</label>
<article class="ac-small">
<p id="test_small">test</p> <-- this tag will come from php
</article>
</div>
<div>
<input id="ac-2" name="accordion-1" type="radio" />
<label for="ac-2">How we work</label>
<article class="ac-medium">
<p id="test_medium">test</p>
</article>
</div>
</div>
CSS:
.ac-container input:checked ~ article.ac-small{
height: 140px;
}
.ac-container input:checked ~ article.ac-medium{
height: 180px;
}
.ac-container input:checked ~ article.ac-large{
/* height: 240px;*/
}
私が抱えている問題は、高さが既に設定されていることです.phpでコンテンツを追加しましたが、コンテンツの量がわからないので、動的な高さが必要です。
PHPはpタグをロードするので、次のように高さを見つけることができます:
var v = $("#test_small").height();
// add the height to the .ac-small
$('.ac-container input:checked article.ac-small').css("height", v+'px');
私が抱えている問題は、cssがセレクターに適用されないことです。セレクター$('.ac-container input:checked article.ac-small')
が間違っているか何かだと思います。