0

このセレクターは機能しません。それは本当に可能ですか?

こちらのhttp://jsfiddle.net/Hd7VZ/をご覧ください

.x-form-fieldset:last-child:not(x-item-hidden) {
    border-bottom: 0;
}

解決策の1つは、このhttp://jsfiddle.net/8Fpyu/です。

4

2 に答える 2

2

antejanによるコメントは正しいです、現在あなたはそのブロックに.x-form-fieldsetあるものを選択しています。内:last-childを選択する場合、これは正しい構文です。:last-child.x-form-fieldset

.x-form-fieldset :last-child {
    border-bottom: 0;
}

ただし、最後のアイテムが非表示になっている場合でも:last-child、それはまだ表示されているため、例を追加して:notも何も達成されません。

例のこの小さな変更からわかるように、CSSには現在、非表示の要素を無視できるものはありません。代替ストライピングのような単純な効果も、要素を非表示にすることで壊れます。これはCSSの将来のバージョンに追加する価値があるかもしれません。それを、W3C CSSワーキンググループに提案して、セレクター仕様の将来のバージョンに追加する価値があるかどうかを確認してみてください(CSSセレクターレベル4が予定されています)現在、標準化プロセスを経ていますが、CSS5セレクターのアイデアは受け入れられています)。

それまでの間、別のマークアップアプローチを見つけるか、JavaScriptでハッキングすることに悩まされています。

于 2013-01-16T16:49:48.470 に答える
0

構文エラーがあるようです。「。」を追加してください。クラスの場合は「#」、x-item-hiddenの前のIDの場合は「#」。
.x-form-fieldset:last-child:not(.x-item-hidden)|.x-form-fieldset:last-child:not(#x-item-hidden)

于 2013-01-16T15:53:59.240 に答える