-1

たとえば、HTML ファイルに次の要素が含まれているとします。

<div class="mydiv">  
    <img src="img.jpg"/>  
</div> 

プログラムで変換しても安全かどうか知りたい

<img class="mydiv" src="img.jpg" />  

つまり、親のクラスを子要素に追加し、親自体をリッピングします。クラスに CSS ルールが存在する場合、HTML コードの 2 つのバージョンは同じレンダリングを生成しますか? そうでない場合、実際には起こらないのはどのような場合ですか?

注:
- 親はクラスを特徴付けるだけで、他に意味のある属性はあり
ません - CSS ファイルは変更できません
- HTML がロードされた後、変換は JavaScript によって実行されます
- 目標は親を取り除くことですが、すべての CSS ルール同じようにレンダリングする

4

3 に答える 3

0

いいえ、すべての CSS 宣言が下にカスケードするわけではありません。どれがカスケードし、どのようにカスケードするかはブラウザによって異なります。

于 2012-10-17T16:01:14.763 に答える
0

クラスが DIV にある理由が、画像に固有のプロパティを定義することだけである場合は、はい、スワップアウトでき、動作は同じである必要があります。また、この新しいクラスの割り当てを確実に処理できるように、CSS を更新する必要があります。

でも。コンテキストを確立するために DIV 割り当てが存在しないことを確認してください。つまり、HTML には、新しいクラス割り当てでカバーできる他の IMG が存在する可能性があります。

div.mydiv>img は img.mydiv よりも具体的なシナリオです

また、その親 div は、より広い範囲の別の同様の CSS ルールによってカバーされる場合があります。

于 2012-10-17T16:08:23.967 に答える
0

最初に質問のタイトルに対処します。クラスは継承されません。CSS ルールを指定できます。

うまくいかない一般的なケースがいくつかあります。

特定の条件下でのみ適用されるルールがある場合があります (たとえばmargin: auto、 の値に応じて異なる効果がありますdisplay(要素ごとに異なるデフォルトがあります)。

セレクターは、より具体的である可能性があります.mydiv。あるかもしれないしdiv.mydiv.mydiv img

于 2012-10-17T16:03:12.610 に答える