色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

防止CSS影響子視圖

榮姿康2年前8瀏覽0評論

在…的背景下。NET MVC(但這也適用于其他類似的技術(shù)),讓:

視圖樹,例如頁面視圖FileUploadPage及其子分部視圖FileDropZone,它們有一個標識它們的視圖& quot鍵入& quot在其根節(jié)點上: FileUploadPage.cshtml:

<div class="view-fileuploadpage">
    <h2>File upload page view</h2>
    @Html.Partial("FileDropZone")
</div>

FileDropZone.cshtml:

<div class="view-filedropzone">
    File drop zone partial view
</div>

一些我希望只應用于視圖自身元素而不是全局元素的CSS規(guī)則: 像這樣:

.view-fileuploadpage h2 {
    /* Spécific to the view FileUploadPage */
}

但不是這樣的:

h2 {
    /* Global, not what I want */
}

我喜歡這種方式,因為它避免了CSS中其他頁面由于不必要的全局選擇器而造成的干擾。

然而,這有一個問題:特定于視圖的CSS規(guī)則適用于視圖本身的元素,但也適用于作為子視圖包含的任何其他視圖。在上面的例子中,視圖FileDropZone繼承了應該特定于視圖FileUploadPage的規(guī)則,這是一個不希望的結(jié)果。

所以我的問題是:我怎樣才能使CSS規(guī)則不被應用到子視圖上呢?

我可以用& quot直接子& quot操作員在我的選擇器中指定完整的& quot路徑& quot到我想要樣式的元素,就像這樣:

.view-fileuploadpage > h2 {
    /* Applies to the h2 of the view FileUploadPage */
    /* DOes NOT apply to any h2 that would exist in a child view of FileUploadPage */
}

但是這會使代碼難以維護,因為每次視圖中移動或修改標記時,選擇器都必須更新。

我在JavaScript和查詢選擇器上也遇到了同樣的問題,但是我想找到CSS的解決方案也能解決JavaScript的問題。

您可以使用:not()偽類來取消選擇特定子代中的孫代。

.view-fileuploadpage h2:not(.file-drop-zone *):not(.more-children *){
  color: #f00;
  }

這將顏色分配給所有h2元素,不包括:not()選擇器中指定的類中的元素。

CSS文件將需要更新新的孩子的類,如果有的話。

最好的解決方案是將不應獲得樣式的view-fileuploadpage或parent div的所有內(nèi)容包裝起來,并使用這個w rapper的類作為單個選擇器。這樣,文件將不需要不斷更新,所有未來的子代和孫代都將添加到包裝器中。

因此,我們沒有:

<div class='view-fileuploadpage-one'>
      <h2>Container</h2>
      <p>...</p>
     
      <div class='file-drop-zone'>
        <h2>file drop zone</h2>
        ...
      </div>
    
      <div class='more-children'>
        <h2>More children</h2>
        ...
      </div>
   </div>

您可以選擇:

<div class='view-fileuploadpage-two'>
    <h2>Container</h2>
    <p>...</p>
    <div class='content-wrapper'>
    <!--   this wrapper will contain everything else -->
      <div class='file-drop-zone'>
        ...
      </div>

      <div class='more-children'>
        ...
      </div>
    </div>
   </div>
  </div>

這將或多或少:

<div class='view-fileuploadpage-two'>
    ...
  <div class='content-wrapper'>
    ...
  </div>
</div>

請看看我對這支筆的想法。