特定のWebページのJavascriptまたはCSSにコードを埋め込んで、ブラウザーに付属のユーザーエージェントスタイルシートを無効にする(ロードしない)ことはできますか?CSSでオーバーライドできることは知っていますが、オーバーライドされた仕様がたくさん作成され、ページを閲覧するときのCPU使用率に大きな影響を与えるようです。特に、*{margin:0; padding: 0}
レンダリングに費用がかかるように見える、のようなことをしました(特に*
セレクターは高価です)。したがって、ユーザーエージェントのスタイルシートを大幅に上書きするのではなく、可能であれば、そもそもそれを無効にします。これは可能ですか?もしそうなら、どのように?私は特にGoogleChromeを使用していますが、可能であればクロスブラウザの方法を期待しています。
4 に答える
JavaScriptで直接ユーザーエージェントのスタイルシートを無効にする方法があるのだろうか。document.styleSheets
ユーザーエージェントのスタイルシートが含まれていないため、直接的な方法はないようです。一方、Firefox Web Developer Extensionには、CSSメニューにブラウザのデフォルトスタイルシートを無効にするオプションがあります。
とにかく、マークアップの方法がありますが、その意味が好きかどうかはわかりません。まず、IE 8以前では機能しません(フォーマットされたコンテンツではなく、XMLマークアップのみが表示されます)。しかし、最近のブラウザはこれを処理できます。
- XHTMLマークアップを使用しますが、タグに
xmlns
属性を含めないでください。html
- ドキュメントをapplication/xmlとして提供します。
- HTMLセマンティクスで処理する必要がある要素(
input
入力ボックスの作成など)の場合はxmlns="http://www.w3.org/1999/xhtml"
、要素またはそれを囲む要素の属性を使用します。
これは、xmlns
属性の効果の外では、すべてのマークアップが純粋で意味のない、フォーマットのない(すべての要素がインラインである)要素を構成すると見なされることを意味します。ただし、スタイルシートでスタイルを設定できます。
しかし、この方法では、HTMLケーキを保持して食べることはできません。つまり、ユーザーエージェントのスタイルシートを適用しないと、HTML機能(フォームフィールド、リンクなど)を取得することはできません。
「リセットスタイルシート」を使用します-これは良いです:http://html5boilerplate.com/
不可能です。ほとんどの人が呼び出すcssファイル「reset.css」を作成するだけです。このファイルには、ユーザーエージェントのスタイルを上書きするために使用されるすべてのcssコードが含まれています。
reset css(http://www.cssreset.com/)のようなものを使用して、すべてのブラウザースタイルをリセットできます。
または、私が好むのは、ul、liなどのリストスタイルなどのすべてのスタイルをリセットせずにcssを正規化するnormalize css(http://necolas.github.com/normalize.css/)を使用することです(reset.cssはそれを行います)