私の答えについてのメモ
2008年にさかのぼることに気付いた後、この投稿を書きました
私は同様の問題を抱えていたので、現在の回答で回答を続けることを考えました。
私の実際の答え
ボビー・ジャックが言ったように、style
タグは本文では許可されていません。私自身、あなた(ジョシュア)とまったく同じことをしました。しかし、ジャックの「プログレッシブエンハンスメント」により、抽象的ではない解決策がなくなりましたが、このスレッドで答えが見つからないという解決策に気付きました。
それはすべて、スタイリング構造に依存します。
私の提案はmodernizr
、head の最初の部分のようなものを明白に使用し、Paul Irish の HTML5Boilerplate の推奨事項を使用することです。
簡単に言えば
- HTMLタグには次の
class
属性がありますno-js
- head タグには、最初の modernizr javascript が最初に含まれています。
- CSS には要素 (
.hide-me
) がdisplay:none
適切な場所にあります
- それで
.no-js .hide-me { display:block }
詳細に
Paul Irish の HTML5boilerplate を参照し、必要に応じて XHTML に適合させてください:)
1. Html には、次のクラス属性があります。.no-js
<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
からの引用html5boilerplate.com
2. head タグには、最初の modernizr javascript が最初に含まれています。
Modernizrhtml
の実行により、サポートされている属性が構築されます。
これに似たものを構築します:
<html class=" js flexbox canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers applicationcache svg inlinesvg smil svgclippaths" lang="en">
これは Google Chromemodernizr
のテストによるものであることに注意してください。
1 つ目はjs
、Modernizr が実行されなかった場合 (javascript が実行されなかった場合)、no-js
そこにとどまることです。
3. CSS には要素 ( .hide-me
) がdisplay:none
適切な場所にある
...あなたは残りを知っています:)