9

この HTML には複数の<br>タグが付いています。

<br>
<br>
<br>
<br>
<br>
TITLE
<br>
<br>
foo bar
<br>
foo bar
...

せいぜい一重と二重の改行 (改行と改行) だけを保持し、すべての余分な を無視したい<br>. <br>ということで、次々と最大2枚。そう、

<br><br><br><br><br>TITLE<br><br>foo bar<br>foo bar<br><br><br>foo bar

になるだろう

<br><br>TITLE<br><br>foo bar<br>foo bar<br><br>foo bar

CSSでこれを行うにはどうすればよいですか?

<br>直前の<br>兄弟が 2 人以上いる要素をすべて選択したい

編集: もう少しコンテキストについては、HTML は外部の Web サイトにあります。私は firefox/stylish で読みやすさを改善しようとしているので、CSS のみを使用します

4

2 に答える 2

6

セレクターを使用:nth-childすると、簡単に実現できます。

CSS:

br:nth-child(3n + 3) { display: none; }​

デモを見る

于 2012-09-06T07:32:06.397 に答える
3

ほとんどのブラウザでは、他の方法で<br>タグのスタイルを設定することはできませんが、タグを非表示にすることはできます。

br+br+br {display: none}​ /* (Also works in IEs 7+8) */

http://jsfiddle.net/nottrobin/Wxf3D/1/ (@AK に感謝)

これに関する問題は、テキスト ノードを兄弟としてカウントしないため、マークアップ<br><br><br>hello<br>では final にも一致することです。<br>マークアップを次のように更新することで、これを修正できます。

<br><br><br><br><br>
<p>TITLE</p>
<br><br>
<p>foo bar</p>
<br>
<p>foo bar</p>

もちろん、必要に応じてこれらの要素を jQuery で削除することもできます。

<script>
    jQuery("br+br+br").remove();
</script>

(JavaScript のみの解決策を見つけようとして我慢できなくなってしまったのではないでしょうか)

于 2012-09-06T07:32:03.660 に答える