これが可能かどうか、または正しいかどうかわからないので、本当にあなたの助けが必要です.
これは私のHTMLです
ご覧のとおり、<ul>
複数<li>
の が含まれています。そして、私の全体を複雑にしているのは、そこにあるという事実です<li class="wrapper year">
。
これら<li>
はすべて 4 列に並べて表示されます。clear
次の行が水平方向に同じレベルになるように、4 番目の要素ごとに必要です。ただし、<li class="wrapper year">
アイテムは常に必要であるため、この動作から除外されますclear:both
。
まず、要素に「年」のカウントを含めるには、これが完璧な HTML 構造ではないことはわかっていますが<li>
、バックグラウンドの CMS に基づいて、別の方法でこれを行うことはできない可能性があります。
これがCSSです
ul.event-items li:not(.year):nth-of-type(4n+1) { clear: right; }
ul.event-items li:not(.year):nth-of-type(4n+2) { clear: left; }
これはほとんど問題なく動作しますが、なぜ次のことが起こっているのかわかりません!
したがって、2012 年は 11 個のアイテムとして表示されるので、2011 年には 13 個のアイテムがあり、2010 年には 12 個のアイテムがあります。これらの項目は CMS に基づいているため、さまざまです。
2012 年と 2011 年では、フローティングとクリア (4 回ごとにli
) は正常に機能しているように見えますが、2010 になると、この行の 2 番目の要素の後にクリアがあることがわかります。何故ですか?