の純粋なCSS ...の要素の半分を選択することができます。
唯一の欠点は、合計アイテムの最大数を知っていることです。 http://jsfiddle.net/tcK3F/(*)
最小CSS::考えのもと
/* selecting half or more items. Up to 6 */
li:first-child:last-child,
li:nth-child(n+2):nth-last-child(-n+2),
li:nth-child(n+3):nth-last-child(-n+3),
li:nth-child(n+4):nth-last-child(-n+4),
li:nth-child(n+5):nth-last-child(-n+5),
li:nth-child(n+6):nth-last-child(-n+6) {
color: white;
background: darkblue;
}
/* selecting half or less items. Up to 6 */
li:nth-child(n+2):last-child,
li:nth-child(n+3):nth-last-child(-n+2),
li:nth-child(n+4):nth-last-child(-n+3),
li:nth-child(n+5):nth-last-child(-n+4),
li:nth-child(n+6):nth-last-child(-n+5),
li:nth-child(n+7):nth-last-child(-n+6){
font-style: italic;
border: 2px solid red;
}
から:トリックはあり
150だろうが、それは、その後151
では動作しません。ここのデモですアンドレ・ルイスとLea Verouの投稿で見た:Styling elements based on sibling count。私はあなたの分割選択の必要性に適応しました。
クイック説明:
:nth-last-child(-n+3)
親から3つの最後項目を選択します。 :nth-child(n+3)
は、最初の 3個以外のすべての商品をで選択します。それらを結合して、純粋なCSSの要素を、それに続くもの(または親にいくつの子供がいるか)に基づいて選択することができます。あなたは150の要素で動作するようにこのトリックをしたい場合は、74のコンマとそれらの75を組み合わせる必要があります...:)
互換性IE9 +(JSのpolyfillsが存在する)
(*)HTMLコードの
最初の部分である:リスト項目の偶数。
第二部:リスト項目の奇数
第CSSルール:2Nの項目から最後のNを選択するか、最後のN + 1/2商品2N + 1から、および青色に白でそれらのスタイルであろう(例:3つのアイテム合計5または6)。
第CSSルール:2N + 1から2Nのアイテムまたは最後のN-1/2項目から最後のNを選択し、赤い境界線とイタリックでそれらのスタイル(例:4の合計で2つのアイテムまたは5)であろう
うんJavaScriptを使用する必要があります。 CSSには要素数や数量を指定する構文を決定する能力がありません。 –
だから、あなたはすべてを選択するつもりですか?真ん中はどこにあるのか分かっていますか? – caramba
@DavidThomas(Lea Verouの投稿へのリンク)CSSにいくつの要素があるかを調べ、数量を指定して答えを調べてください: ':(最初/最後) - (タイプ/子)(aN + b)' 。また、M個の最初の要素を除くN個の要素を選択するための 'li + li + li + li 'もあります。私が恐れているように、あなたができないのは**算術**であり、実際には定義されていない要素の数です(ほとんどの場合、DOMは定義されていない数の要素を持っているとは思われません) – FelipeAls