4

この質問は少し奇妙/初心者/愚かに聞こえるかもしれません。我慢してください。

以下のコードは、CSS、HTML、およびColdFusionを使用して作成したWebページのごく一部です。

        <head>
    ---------------------Part 1--------------------------------------
    <CFIF CompareNoCase('#aid#', 0)>   
                <cfinclude template="show.cfm">
        <cfabort>
    </CFIF>
    -----------------------------------------------------------------

    <link rel="stylesheet" href="styles/style.css?1322665623">
        </head>
---------------------------PART 2------------------------------------
<body id="wp-home">
<div id="wrapper">
  <div class="header left">
    <h1><a href="index.cfm" class="right logo">Name Of Client</a></h1>
    <div class="tagline">
      <span class="left blair"><a href="index.cfm" class="homelink">home</a></span>
      <span class="headerline"></span>
      <span class="right blair"><a href="index.cfm" class="homelink">antiques</a></span>
    </div>
  </div>
 --------------------------------------------------------------------

ご覧のとおり、パート2を正しく表示するために必要なすべてのスタイルクラスを含むcssファイルstyle.cssを含めました。

問題は、パート1がアクティブ(true)の場合は常に、同じcssがファイルSHOW.CFMの要素にも適用されることです。これにより、ページの元の表示が完全に台無しになります。

とりあえず、リンクの下にタグを付けて、ページの処理とcssファイルの読み込みを停止しました。

show.cssを何度もチェックしましたが、styles.cssのクラスが使用されていないことを確認できます。

したがって、私の質問は、SHOW.CFMからロードされた要素に適用されるstyle.cssのスタイルを停止できるかどうかです。

質問がめちゃくちゃばかげているなら、私を許してください;)

4

4 に答える 4

5

セレクターが一致する場合、カスケードのさらに下のルール(同じプロパティを設定する)によってオーバーライドされるまで、ルールが適用されます。

セレクターを変更して、一致させたくない要素との一致を停止するか、そのセクションのすべてのルールをオーバーライドすることができます。

于 2012-04-13T10:55:34.133 に答える
2

HTML5はスコープ付きスタイルシートを許可しますが、これまでのところFirefoxのみがサポートしています。ポリフィルJavaScriptもあります。

したがって、part1ではなくpart2にのみ一致するように、マークアップとスタイルを調整する必要があります。ピンチでは、すべてのセレクターの前に。を付けることができます#wrapper。たとえば、ルールに「」と記載されている場合はa{color:red}、それを。に置き換え#wrapper a {color:red;}ます。

ちなみに、part1はおそらくの<body>代わりにの子である必要があり<head>ます。

于 2012-04-13T10:56:35.267 に答える
0

疑似クラスを使用します:not()

.myStyle:not(.classWhereYouDontWantToApplyTheStyle) {
   ...
}
于 2016-09-19T19:46:38.197 に答える
-1

どのcssファイルを含めるかを決定するのではなく、if elseを使用するのはどうですか?つまり、パート2が表示される場合にのみstyles.cssを含めます。そうすれば、継承とスコープの問題を完全に回避できます。

于 2012-04-13T11:01:49.490 に答える