8

div の最初の子のみを表示し、残りをすべて非表示にする方法を見つけるのに苦労しています。これは純粋に css で行うことができますか、それとも Javascript を使用する必要がありますか?

では、これを最初のp-tagのみを表示するにはどうすればよいですか?

<div id="test1">
    <p>Lorem ipsum</p>
    <p>Lorem ipsum</p>
    <p>Lorem ipsum</p>
</div>

http://jsfiddle.net/8XYNx/

4

11 に答える 11

12

との組み合わせは確実にそれを行うはずです:notfirst-child

#test1 p:not(:first-child) {
    display: none;
}

これはバージョン 9 より前の IE では機能しないことに注意してください。

于 2013-07-11T12:05:25.277 に答える
10

これを試して

http://jsfiddle.net/8XYNx/10/

CSS

  #test1 p{
    display:none;

}
#test1 p:first-child{
    display:block;
}
于 2013-07-11T12:06:43.673 に答える
4

:first-childラップインを使用することにより:not()

フィドル

#test1 p:not(:first-child) {
    display:none;
}

first-childIE8 以前ではサポートされていないことに注意してください。完全なクロス ブラウザ サポートが必要な場合は、Javascript を使用する必要があります。

Javascript ソリューションは次のようになります。

フィドル

var div = document.getElementById("test1");
var pList = div.getElementsByTagName("p");

for(var i=0; i<pList.length; i++) {
    if(pList[i] != div.children[0]) {
        pList[i].style.display = "none";
    }
}
于 2013-07-11T12:05:33.197 に答える
2
#test1 p {
    display: none;
}
#test1 p:first-child {
    display: block;
}

http://www.w3.org/TR/CSS2/selector.html#first-child

于 2013-07-11T12:06:24.830 に答える
1

あなたの例では要素のみを使用pしましたが、他の要素が含まれている場合は? 一般に、最初の要素のみを表示するには、これを使用できます。

#test1 :not(:first-child) {
    display: none;
}

これは IE<9 では機能しないことに注意してください。

フィドルのデモ。

于 2013-07-11T12:18:46.027 に答える
1

すべての P 要素を非表示にしてから、最初の p 要素を暗黙的に表示します。

#test1 p {
    display: none;
}
#test1 p:first-child {
    display: block;
}

デモ

aDOCTYPEが宣言されている場合、これは IE7+ で機能します。ここでブラウザーの互換性を確認してください( IE7.jsを使用しない限りIE9 でのみ機能する:notを使用するのとは異なります)

于 2013-07-11T12:05:43.970 に答える
1

これを試してみてください。IE7+で動作するはずです

CSS

#test1>p ~ p{
    display: none;
}

jsfiddleについて

古いサポートが必要な場合は、クロスブラウザーにする必要があります。

Javascript

var test1 = document.getElementById("test1").getElementsByTagName("p"),
    i = 1,
    p = test1[i];

while (p) {
    p.style.display = "none";
    p = test1[i += 1];
}

jsfiddleについて

于 2013-07-11T12:08:40.250 に答える
0

試す

#test1 p:not(:first-child)
{
    visibility:hidden;
}
于 2013-07-11T12:10:35.903 に答える
0
$('#test1 p:not(:first-child)').hide();

デモ

于 2013-07-11T12:08:18.100 に答える