基本的にはCSSと同じなので、CSS2とMozilla独自の部分だけ解説します。
特定の属性を持つ要素へのスタイルを定義します。重ねて指定することができ、その場合は指定された属性すべてを満たす要素が定義されます。
属性セレクタには以下の4種類があります。なお、要素と属性の間にスペースを入れてはいけません。
要素[属性] {スタイル}
tab[disabled] /* <tab disabled="true">、<TAB disabled="false">など */
指定した属性が指定した値を持つ場合を定義します。
要素[属性=値] {スタイル}
tab[disabled="true"] /* <tab disabled="true"> */
複数の属性値に対応したセレクタです。属性値が半角スペースで区切られたリストになっていて、その属性値の中に指定した文字列が含まれている場合を定義します。
要素[属性~=値] {スタイル}
button[class~="button-toolbar"] /* <button class="button-toolbar chromeclass-location"> */
複数の属性値に対応したセレクタです。属性値がハイフンで区切られた単語のリストになっていて、そのリストの先頭単語が指定した値と同じである場合を定義します。主にlang
属性を意識したもので、それ以外にはあまり使われません。
要素[属性|=値] {スタイル}
[disabled="true"]
menuitem[disabled="true"]
は、現在選択できないメニュー(文字列を選択していない状態での「コピー」など)を定義します。[busy="true"]
tab[busy="true"]
は、現在読み込み中のタブを定義します。[selected="true"]
tab[selected="true"]
は、現在アクティブになっているタブを定義します。[container="true"]
.bookmark-item[container="true"]
は、ブックマークメニューのうち中にアイテムを持つもの(フォルダ、ブックマークグループ)を定義します。ただし、menuitem
などにこの属性を付けても変化はありませんでした。[offline="true"]
要素の名称・属性・内容以外の特徴に基づいて要素を分類します。HTMLではA:link
などが有名ですが、Mozillaの場合(というかXMLを修飾する場合)はCSS2とはまた別の疑似クラスがあります。
疑似クラスは重ねて指定することができます。その場合、指定した疑似クラスすべてを満たす要素が定義されます。
また、属性セレクタとも併用できますが、その場合、疑似クラスを先に書きます。
要素:疑似クラス {スタイル} 要素:疑似クラス1:疑似クラス2... {スタイル} 要素:疑似クラス[属性=値]
tab:hover:active /* 現在アクティブになっていて、かつマウスカーソルが上にあるタブ */
主なものは以下の通りです。
hover
active
tab
タブ。設定ダイアログのタブも含む。属性セレクタと疑似クラスによって状態を細かく設定できる。tab→tab:hoverなど、上位の要素は下位の要素に承継される。
/* 赤背景 */ tab { background-color: #ff0000 !important; } /* 現在のタブの文字をboldにする */ tab[selected="true"], tab:hover:active[selected="true"] { font-weight: bold !important; }
tabpanels
各タブの中身の部分。サイト表示部分としては分かりづらいが、marginやpaddingを広くとってみるとどの部分か分かる。「画像マネージャ」など、設定ダイアログのタブも含み、こちらを見た方が分かりやすいと思われる。
tabpanels { background-color: #ff0000 !important; padding: 4px !important; }
.tabbrowser-tabs
, .tabbrowser-strip
タブバーの背景部分。.tabbrowser-strip
は.tabbrowser-tabs
の背面になる。
対応xml:toolkit.jar/content/global/bindings/tabbrowser.xml
/* 青背景 */ .tabbrowser-strip { margin: 3px !important; background-color: #0000ff !important; } /* 赤背景 */ .tabbrowser-tabs { margin: 4px !important;; background-color: #ff0000 !important; }
.tab-icon
タブに表示されるアイコン。「読み込み中」アイコンやfaviconもここに表示される。
.tab-icon { background-color: #ff0000 !important; }
.tabs-closebutton
タブバー右端に表示される、「タブを閉じる」ボタン。
.tabs-closebutton { background-color: #ff0000 !important; }
.tabs-left
, .tabs-right
タブの左右のスペース部分。設定ダイアログのタブも含む。
/* 赤背景 */ .tabs-left { padding: 5px !important; background-color: #ff0000 !important; } /* 青背景 */ .tabs-right { background-color: #0000ff !important; }
.tabs-newbutton
タブバー左端に表示される、「新しいタブを開く」ボタン。
.tabs-newbutton { margin: 3px !important; background-color: #ff0000 !important; }
.toolbarbutton-text
ツールバーに表示されるアイコンの文字。入れ子を使うことで以下のように限定できる。
.toolbarbutton-1 > .toolbarbutton-text
.toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-text
/* 太字+イタリック+黄背景 */ .toolbarbutton-text { font-weight: bold !important; font-style: italic !important; background-color: #ffff00 !important; }