呼んで名の如し、同じ日のエントリを見た目上結合するという機能です。
具体的には、以下の通り。
通常は
<div class="article"> エントリ1 </div> <div class="article"> エントリ2 </div> <div class="article"> エントリ3 </div> <div class="article"> エントリ4 </div> ・ ・ ・このように、各日ごとのエントリはarticleクラスの指定されたDIV要素で括られています。
例えばこのうち、エントリ2と3が同じ日付だったとしましょう。
すると、ppblogは以下のように出力します
<div class="article">
エントリ1
</div>
<div class="article-united">
<div class="article">
エントリ2
</div>
<div class="separator" title="下の記事は同じ日のエントリーです"> </div>
<div class="article">
エントリ3
</div>
</div>
<div class="article">
エントリ4
</div>
・
・
・
同じ日のdiv.articleをdiv.article-unitedで括り、別の指定が出来るように+エントリの間にセパレータを挟みます。デフォルトテーマのbasicでは、.article-unitedの中にある.articleは底部の指定をなくし、代わりに.article-unitedの底部に似たような指定を施しています。また、セパレータには背景画像を入れ、エントリをつなげつつも境目を作るようになっています。
表題のネックは、例えばarticle の中、一番最後にdiv.article-bottomなどという要素を作り(basicでは、そういう用途ではありませんが存在します)、articleではなくそれに指定を施してエントリごとの境目を作っている場合です。
この場合、.article-unitedの中にある場合のarticle-bottomに指定しているプロパティは別の形にする必要が出てきます。まあ、しなくても良いんですが、変えないと同日結合する意味がないですよね……。
そうなったとき、困るのが、上の例で言うとエントリ3と4の境目です。エントリ2はarticle-bottomの指定がないのが正解ですが、エントリ3はarticle-bottomの指定が必要になるからです。
まあ、結論から申しますと、私の力ではこれをすぱっと解決することはできませんでした。
アプローチとしては
div.article-united + div.article:before { content:""; display: block;....}
みたいな指定でarticle-bottomにしていた指定を代用してみるとか、
.article-united .article:last-child article-bottom { }
/* .article-unitedに含まれる一番最後の.articleに包含されているarticle-bottomに対して指定 */
なんて、CSS3の擬似クラスを使ってみるとかくらいしか私は思いつきません(笑)前者はIE6,7,8全滅(IE8は:before擬似要素だかcontentプロパティへの対応が中途半端だそうで……)ですし、後者はベータ版を除けばFirefoxとSafariしか対応してません(Opera9.5βはOK。IE8はダメ)。
どうしたものか悩んだのですが、とりあえず:last-child擬似クラスの指定は残しておいて、article-unitedの底部指定を適当にしてお茶を濁すことにしました。ま、どのブラウザもそのうち対応するでしょ……。
というか、この話自体がかなり限定的な話なので、ネックと題したもの別に全然ネックでもなんでもないんだよね(笑





















Comments