• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSSで@impoprtを使っている場合)

CSSで@importを使った場合の特定のページでの読み込み制御方法

このQ&Aのポイント
  • CSSで@importを使っている場合、特定のページでのCSS読み込み制御は可能ですか?
  • 要らないCSSファイルを特定のページで読み込まないようにする方法について教えてください。
  • HTMLの変更なしで、CSSに記述する方法が望ましいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

本来は、HTML側で選択するのが良いです。次善の策としてCSS側で対処します。 HEAD内、および要素内のスタイルはまったく書かないとして、外部スタイルシートには、固定スタイルシートと優先スタイルシート、代替スタイルシートがあります。別途メディア別スタイルシートも。 [HTML側で選択する方法] <link href="style/default.css" rel="stylesheet" type="text/css">  固定スタイルシートは、スクリーン端末、携帯端末、テレビ、プリンターを問わずすべてに適用されるスタイルシートで「text-indent」や「font-family」など、サイト全体のデザインを統一するために記述したりします。 <link href="style/standard.css" media="screen" rel="stylesheet" type="text/css" tytle="標準">  これはmediatypeがscreenに指定された標準 <link href="style/standard_tty.css" media="handhelt,tty" rel="stylesheet" type="text/css" tytle="標準">  これはmediatypeがhandhelt ttyに指定された標準 <link href="style/standard_color.css" media="screen,tty,handheld" rel="stylesheet" type="text/css" tytle="標準">  色指定 <link href="style/wide.css" media="screen" rel="alternate stylesheet" type="text/css" tytle="幅広ウィンドウ用">  これはmediatypeがscreenに指定された代替スタイルシート <link href="style/index.css" media="screen" rel="stylesheet" type="text/css">  これはmediatypeがscreenに指定されたスタイルシート <link href="style/print.css" media="print" rel="stylesheet" type="text/css">  これは印刷用に指定されたスタイルシート などとして、HTML側で選択するのが一般的な方法です。 [スタイルシート側で選択する方法] それぞれのHTMLのbodyにclass名をつけて対応。 <body class="long_text"> <body class="short_text"> <body class="index"> として、スタイルシートのセレクタに div.section{} ---変更---> body.long_text div.section{} と子孫セレクタになるよう追加 body.long_text{@import:url();}はできない!!  この方法ではスタイルシートが悠長になる。 [プログラム] <FilesMatch "^standard.css$"> SetHandler cgi-script </FilesMatch> という.htaccessを書きCSSフォルダーにおき、$ENV{'HTTP_REFERER'}によってCSSを書き換える。 foreach $CITE(@cites){  if( $ENV{'HTTP_REFERER'} =~ /$CITE/){   print "Content-type: text/css\n";   print "Pragma: no-cache\n";   print "Cache-Control: no-cache\n";   print "Expires: -1\n\n";   while(<DATA>){    print;   }  elsif(){  } } とか・・・ ★HTMLのhead内を書き換えてしまうのがベスト。今後の作業も楽です。

関連するQ&A