1

CSS マージンが設定されている (> 0 ピクセル) div 内の最初 (および最後) の要素を見つける必要があります。(重要: これは必ずしも最初または最後の要素ではありません!)

基本的に、最初の要素の margin-top と最後の要素の margin-bottom を削除できるように、これを行う必要があります。おそらく、「「p:last」CSS 構文を使用しないのはなぜですか?」と言うでしょう。

最初または最後の要素は別の要素にもなり得るため、リスト (UL、OL)、画像、段落などになる可能性があります。単純に ul:last、ol:last、p:last を実行することはできません。その結果、複数の要素が一致する可能性があります (タイプごとに 1 つ)。

これを単一の要素にのみ適用したい。そういうわけで、jquery が唯一の解決策だと思います。私はこれについて喜んで間違っています。

4

3 に答える 3

1

jquery(http://api.jquery.com/filter/) のフィルター メソッドをお勧めします。

ここに私が考えることができるサンプルがあります

<html>
   <body>
      <p>
        <p>A<p>        
        <p>B<p>        
        <p style="margin: 10px;">C<p>    
        <p style="margin: 10px;">C<p>     
        <p>D<p>        
      </p> 
      <script>
         $(document).ready(function(){
            $('p').filter(function(){
                return this.style.margin != '';
            }).last().css('color','red');             

         });

     </script>    
  <body>

</p>

フィルタ ロジックに基づいて構築することもできます...

于 2012-09-08T17:23:27.137 に答える
0

:last実際には jQuery の外部の CSS セレクターではありません。しかし、あなたが使うことができるものは次:first-childのとおりです:last-child

#my-element > *:first-child {
    margin-top: 0;
}

#my-element > *:last-child {
    margin-bottom: 0;
}

編集:遅すぎます。ただし、すべての最初の子のスタイルを設定しないように、必ず>セレクターを使用します(最初の aや a の内側など)。#my-elementliulstrongp

于 2012-09-08T17:13:14.740 に答える