3

要素が壊れている/新しい裏地があるかどうかを(CSSで)チェックする方法はありますか?divまたは親の幅がわかりません。休憩後の最初の要素だけを知りたいので、この要素に特別なCSSを追加できます

このような:

<div>
  first
</div>    
<div>
  second
</div>  
<div>
  third
</div>  
<div>
  fourth
</div>

css:

div {
    float:left;
    width:200px;
    height:20px;
}
div:not(:first-child) {
    padding-left:10px;
}

ここで、要素が新しい行にあるかどうかを確認して、パディングを削除できるようにする必要があります。

div:first-after-break {
    padding-left:0;
}
4

3 に答える 3

3

padding-rightこの場合、の代わりに を使用して要素を分離することで、おそらくこれを行うことができると思いますpadding-left。そうすれば、要素が新しい行で始まるときにインデントされません。padding-right行末で問題が発生する場合は、:last-child疑似セレクター (詳細については:last-child) を使用して設定することを検討してくださいpadding-right: 0;

ただし、これは質問を破棄しません。:first-after-breakあなたが説明した疑似の正当な使用法を考えることができます。例: フローティング ブロック レベル要素を使用した完全にレスポンシブなレイアウト。このような場合、要素がウィンドウの左側にあるかどうかを知りたい場合があります。

于 2012-08-16T12:07:46.273 に答える
1

疑似要素を使用して::first-line、div の最初の行を取得できます。最初の行ではない行にスタイル ルールを適用する場合は、それらのスタイルを要素全体に適用してから、最初の行から削除することができます。ただし、paddingプロパティを具体的に使用する場合はtext-indent、要素全体 (疑似要素なし) に設定することもできます。

于 2012-08-16T10:41:55.557 に答える
0

いいえ、CSSにはあなたが求めていることを実行する方法はないと思います。

DIVはBLOCKレベルの要素であるため、幅が指定されていない限り、自動的に親の全幅を占めます。幅が指定されていない場合、2番目のDIVはとにかく新しい行になります。

于 2012-08-16T10:36:40.383 に答える