1

HTML要素をCSSから分離する方法はありますか?私は、すべての子をドキュメントに「表示されない」ようにしようとしています。

ユーザーはドキュメントで呼び出されたcssに通知できますが、これが失われないようにする必要があります。つまり、display:none、visibility:hidden、text-indent:-10000px、left:- 10000px、またはこれらの他のトリック。

<div class="foo">
 <a href="#foo">link</a>
 <img src="" />
 <span>bar</span>
</div>

data:text / html; base64 iframeを使用できますが、テキストがフォーマットされません。

免責事項やロゴマークについて考えてみてください。ユーザーは(CSS URLを通知することで)自分のCSSをウィジェットに含めることができます。ユーザーがその免責事項要素またはその子のCSSにdisplay:noneまたはtext-indentを指定した場合でも、その免責事項を表示したままにする必要があります。

私はスタイルを使用しようとはしていません。「-moz-user-select:none;」のような<tag/>をシールドする属性があるかどうかを知りたいだけです。

4

3 に答える 3

1

100%の確率で機能するものはありませんが、ほとんどの場合に機能するソリューションは次のとおりです。

<div class="foo" style="background:#fff !important;color:#000 !important;position:relative !important;display:block !important;visibility:visible !important;opacity:1 !important;float:none !important;left:0 !important;top:0 !important;">
 <a href="#foo" style="background:#fff !important;color:#000 !important;position:relative !important;display:inline !important;visibility:visible !important;opacity:1 !important;float:none !important;left:0 !important;top:0 !important;">link</a>
 <img src="" style="background:#fff !important;color:#000 !important;position:relative !important;display:inline !important;visibility:visible !important;opacity:1 !important;float:none !important;left:0 !important;top:0 !important;" />
 <span style="background:#fff !important;color:#000 !important;position:relative !important;display:inline !important;visibility:visible !important;opacity:1 !important;float:none !important;left:0 !important;top:0 !important;">bar</span>
</div>

基本的に、属性!importantでオーバーライドしたくないすべてのスタイルを指定する必要があります。style手動で行うと非常に苦痛になります。前に述べたように、CSSに精通している人なら誰でも回避できます。

注:提供されているスタイルは完全なリストではなく、頭の中で考えられることだけです。

CSSの特異性について

于 2012-04-12T17:59:04.680 に答える
1

以前の回答が指摘したように、それを行うための属性はなく、!importantアプローチも機能しません、なぜですか?主な理由は、ユーザーが独自のcssを使用でき、ユーザーが!importantすべてのスタイル属性を配置すると、以前!importantのタグ付き属性が上書きされるためです。例を次に示します。

Site.css .copyright {display:block!important; /*他のスタイルはこちら*/}

Uploaded css .copyright {display:none!important; / * ... * /}

それを克服する唯一の方法は、アップロードされたスタイルシートを読んですべて !importantを削除することです。その場合!important、スタイル属性が上書きされないようにするために使用できます。

編集:しかし、ユーザーが要素を非表示にするために使用する可能性のあるすべての属性を積極的に宣言する必要があります。

于 2012-04-12T20:45:33.810 に答える
0

いいえ、タグをシールドする属性はありません。

于 2012-04-12T17:58:40.497 に答える