2009/01/22

:not()

not()

用來否定選擇條件,其語法是:

:not( 選擇條件 )

選擇條件必須是 規則集合

  • 風格用法:

    <style type='text/css'>
    .cls:not(:first-child)  {color:red}
    </style>
    <div>
    <i class=cls>第一子元素</i>
    <i class=cls>第二子元素</i>
    <i class=cls>第三子元素</i>
    </div>

  • 執行結果:

    第一子元素 第二子元素 第三子元素
  • IE6 失敗;Firefox, Safari, Chrome 都成功。

:HOVER, :ACTIVE 的應用。使用時要注意,在 IE6 中 :HOVER, :ACTIVE 只能用在 ANCHOR 元素。

  • 風格用法:

    <style type='text/css'>
    .hvr {border:solid 1px red}
    .hvr:hover  TD:not(:empty)
      {background:red}
    .hvr:active TD:empty:before
      {content:'空格'; background:blue}
    </style>
    <table class=hvr>
    <tr><td>好玩遊戲<td>
    <tr><td><td>射擊遊戲
    </table>

  • 執行結果:

    好玩遊戲
    射擊遊戲

CSS hack:not 用於 CSS hack 有兩個原因:(一)IE 沒有支援 not()。(二)Firefox 沒有支援 not() 中放連續的選擇條件,只能放單一的選擇器。下面的範例依循兩個原則:(一)後宣告的值會蓋過先宣告的值。(二)解讀失敗的宣告會被忽略。

  • 風格用法:

    <style type='text/css'>
    DIV.cls1                  {color:blue} 
    DIV.cls1:not(:root )      {color:green} 
    DIV.cls1:not(:root:link ) {color:red}  
    </style>
    <div class=cls1>
    CSS hack:此段文字在 IE6 是藍色;在 Firefox 是綠色;Safari, Chrome 是紅色。
    </div>

  • 執行結果:

    CSS hack:此段文字在 IE6 是藍色;在 Firefox 是綠色;Safari, Chrome 是紅色。