4

特定のWebページのJavascriptまたはCSSにコードを埋め込んで、ブラウザーに付属のユーザーエージェントスタイルシートを無効にする(ロードしない)ことはできますか?CSSでオーバーライドできることは知っていますが、オーバーライドされた仕様がたくさん作成され、ページを閲覧するときのCPU使用率に大きな影響を与えるようです。特に、*{margin:0; padding: 0}レンダリングに費用がかかるように見える、のようなことをしました(特に*セレクターは高価です)。したがって、ユーザーエージェントのスタイルシートを大幅に上書きするのではなく、可能であれば、そもそもそれを無効にします。これは可能ですか?もしそうなら、どのように?私は特にGoogleChromeを使用していますが、可能であればクロスブラウザの方法を期待しています。

4

4 に答える 4

5

JavaScriptで直接ユーザーエージェントのスタイルシートを無効にする方法があるのだろうか。document.styleSheetsユーザーエージェントのスタイルシートが含まれていないため、直接的な方法はないようです。一方、Firefox Web Developer Extensionには、CSSメニューにブラウザのデフォルトスタイルシートを無効にするオプションがあります。

とにかく、マークアップの方法がありますが、その意味が好きかどうかはわかりません。まず、IE 8以前では機能しません(フォーマットされたコンテンツではなく、XMLマークアップのみが表示されます)。しかし、最近のブラウザはこれを処理できます。

  1. XHTMLマークアップを使用しますが、タグにxmlns属性を含めないでください。html
  2. ドキュメントをapplication/xmlとして提供します。
  3. HTMLセマンティクスで処理する必要がある要素(input入力ボックスの作成など)の場合はxmlns="http://www.w3.org/1999/xhtml"、要素またはそれを囲む要素の属性を使用します。

簡単なデモ

これは、xmlns属性の効果の外では、すべてのマークアップが純粋で意味のない、フォーマットのない(すべての要素がインラインである)要素を構成すると見なされることを意味します。ただし、スタイルシートでスタイルを設定できます。

しかし、この方法では、HTMLケーキを保持して食べることはできません。つまり、ユーザーエージェントのスタイルシートを適用しないと、HTML機能(フォームフィールド、リンクなど)を取得することはできません。

于 2012-10-26T10:56:48.220 に答える
2

「リセットスタイルシート」を使用します-これは良いです:http://html5boilerplate.com/

于 2012-10-26T10:15:46.933 に答える
0

不可能です。ほとんどの人が呼び出すcssファイル「reset.css」を作成するだけです。このファイルには、ユーザーエージェントのスタイルを上書きするために使用されるすべてのcssコードが含まれています。

于 2012-10-26T10:16:22.070 に答える
0

reset css(http://www.cssreset.com/)のようなものを使用して、すべてのブラウザースタイルをリセットできます。

または、私が好むのは、ul、liなどのリストスタイルなどのすべてのスタイルをリセットせずにcssを正規化するnormalize css(http://necolas.github.com/normalize.css/)を使用することです(reset.cssはそれを行います)

于 2012-10-26T10:19:43.100 に答える