18 ユーザーインターフェース

目次

18.1 カーソル: 'cursor' プロパティ

名前: cursor
値: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help | progress ] ] | inherit
初期値: auto
適用対象: すべての要素
継承: はい
パーセンテージ: N/A
メディア: 視覚, インタラクティブ
計算値: 指定された通り。ただし、相対URLは絶対URLに変換される

このプロパティは、ポインティングデバイスに表示されるカーソルの種類を指定します。値の意味は以下の通りです:

auto
ユーザーエージェントが現在のコンテキストに基づいて表示するカーソルを決定します。
crosshair
シンプルな十字線(例えば、「+」記号に似た短い線分)。
default
プラットフォーム依存のデフォルトカーソル。通常は矢印として描画されます。
pointer
リンクを示すポインターカーソル。
move
何かを移動することを示します。
e-resize, ne-resize, nw-resize, n-resize, se-resize, sw-resize, s-resize, w-resize
あるエッジを移動することを示します。例えば、'se-resize'カーソルは、ボックスの南東の角からの移動を示すときに使用されます。
text
選択可能なテキストを示します。通常はI字型カーソルとして描画されます。
wait
プログラムがビジー状態であり、ユーザーが待機する必要があることを示します。通常は時計や砂時計として描画されます。
progress
進行状況を示すインジケーター。プログラムが処理中であることを示しますが、'wait'とは異なり、ユーザーはプログラムと引き続き対話できます。通常は回転するビーチボール、または矢印と時計や砂時計の組み合わせとして描画されます。
help
カーソル下のオブジェクトに対するヘルプが利用可能であることを示します。通常は疑問符や吹き出しとして描画されます。
<uri>
ユーザーエージェントは、URIで指定されたリソースからカーソルを取得します。ユーザーエージェントがリストの最初のカーソルを処理できない場合、次のカーソルを試みるべきです。すべてのユーザー定義カーソルを処理できない場合、リストの最後にある汎用カーソルを使用する必要があります。 カーソルの固有サイズは背景画像と同様に計算されますが、'background-image'プロパティの座標系を確立する矩形の代わりに、UA定義の矩形が使用されます。このUA定義の矩形は、UAのオペレーティングシステム上の典型的なカーソルサイズに基づく必要があります。結果として得られるカーソルサイズがこの矩形に収まらない場合、UAは結果として得られるカーソルを比例的に縮小して矩形内に収めることができます。

例:


:link,:visited { cursor: url(example.svg#linkcursor), url(hyper.cur), pointer }

この例では、すべてのハイパーリンク(訪問済みであるかどうかに関係なく)に外部のSVGカーソルを設定します。 SVGカーソルをサポートしていないユーザーエージェントは、単に次の値をスキップして"hyper.cur"カーソルを使用しようとします。 そのカーソル形式もサポートされていない場合、UAは次の値をスキップし、単に'pointer'カーソルを描画します。

18.2 システムカラー

注記。 システムカラーはCSS3カラー モジュールで廃止されました。 [CSS3COLOR]

CSS2では、テキストや背景などに事前定義されたカラー値を割り当てる機能に加え、 著者がオペレーティングシステムのグラフィック環境に統合された方法で色を指定できる名前付きカラー値のセットを導入しました。

対応する値がないシステムでは、指定された値を最も近いシステム値、またはデフォルトの色にマップする必要があります。

以下に、色関連のCSSプロパティに使用できる追加の値とその一般的な意味を示します。どの色プロパティ(例:'color''background-color')も、次の名前のいずれかを取ることができます。 これらの名前は大文字小文字を区別しませんが、以下に示す混合大文字小文字を使用することをお勧めします。 読みやすさを向上させるためです。

ActiveBorder
アクティブウィンドウの境界線。
ActiveCaption
アクティブウィンドウのキャプション。
AppWorkspace
複数文書インターフェイスの背景色。
Background
デスクトップの背景。
ButtonFace
3D表示要素のフェイスカラー。
ButtonHighlight
3D表示要素のハイライトカラー(光源から遠ざかるエッジ用)。
ButtonShadow
3D表示要素のシャドウカラー。
ButtonText
プッシュボタン上のテキスト。
CaptionText
キャプション、サイズボックス、スクロールバー矢印ボックス内のテキスト。
GrayText
グレー表示(無効化)テキスト。この色は、現在のディスプレイドライバーが実線のグレー色をサポートしていない場合は#000に設定されます。
Highlight
コントロール内で選択されたアイテム。
HighlightText
コントロール内で選択されたアイテムのテキスト。
InactiveBorder
非アクティブウィンドウの境界線。
InactiveCaption
非アクティブウィンドウのキャプション。
InactiveCaptionText
非アクティブキャプション内のテキストの色。
InfoBackground
ツールチップコントロールの背景色。
InfoText
ツールチップコントロールのテキスト色。
Menu
メニュー背景。
MenuText
メニュー内のテキスト。
Scrollbar
スクロールバーのグレー部分。
ThreeDDarkShadow
3D表示要素のダークシャドウ。
ThreeDFace
3D表示要素のフェイスカラー。
ThreeDHighlight
3D表示要素のハイライトカラー。
ThreeDLightShadow
3D表示要素のライトカラー(光源に向かうエッジ用)。
ThreeDShadow
3D表示要素のダークシャドウ。
Window
ウィンドウ背景。
WindowFrame
ウィンドウフレーム。
WindowText
ウィンドウ内のテキスト。

例:

例えば、段落の前景色と背景色をユーザーのウィンドウの前景色と背景色に設定するには、次を記述します:


p { color: WindowText; background-color: Window }

18.3 フォントのユーザー設定

色と同様に、著者はフォントをユーザーのシステムリソースを利用する方法で指定できます。詳細については、'font' プロパティを参照してください。

18.4 動的アウトライン: 'outline' プロパティ

スタイルシートの著者は、ボタン、アクティブなフォームフィールド、イメージマップなどの視覚オブジェクトを際立たせるためにアウトラインを作成したい場合があります。CSS 2.2のアウトラインは、境界線と以下の点で異なります:

  1. アウトラインはスペースを取りません。
  2. アウトラインは長方形ではない場合があります。

アウトラインプロパティは、これらの動的アウトラインのスタイルを制御します。

名前: outline
値: [ <'outline-color'> || <'outline-style'> || <'outline-width'> ] | inherit
初期値: 個々のプロパティを参照
適用対象: すべての要素
継承: いいえ
パーセンテージ: N/A
メディア: 視覚, インタラクティブ
計算値: 個々のプロパティを参照
名前: outline-width
値: <border-width> | inherit
初期値: medium
適用対象: すべての要素
継承: いいえ
パーセンテージ: N/A
メディア: 視覚, インタラクティブ
計算値: 絶対長さ; アウトラインスタイルが'none'の場合は'0'
名前: outline-style
値: <border-style> | inherit
初期値: none
適用対象: すべての要素
継承: いいえ
パーセンテージ: N/A
メディア: 視覚, インタラクティブ
計算値: 指定された通り
名前: outline-color
値: <color> | invert | inherit
初期値: invert
適用対象: すべての要素
継承: いいえ
パーセンテージ: N/A
メディア: 視覚, インタラクティブ
計算値: 指定された通り

アウトラインプロパティで作成されたアウトラインは、ボックスの「上」に描画されます。つまり、アウトラインは常に最前面にあり、ボックスや他のボックスの位置やサイズに影響を与えません。そのため、アウトラインを表示または非表示にしても再フローやオーバーフローは発生しません。

アウトラインは境界線エッジのすぐ外側から描画される場合があります。

アウトラインは長方形でない場合があります。例えば、要素が複数行にまたがる場合、アウトラインはその要素のすべてのボックスを囲む最小のアウトラインになります。境界線とは異なり、アウトラインは行ボックスの端で開くことはなく、可能であれば常に完全に接続されています。

'outline-width' プロパティは'border-width'と同じ値を受け入れます。

'outline-style' プロパティは'border-style'と同じ値を受け入れますが、'hidden'は有効なアウトラインスタイルではありません。

'outline-color' はすべての色と、キーワード'invert'を受け入れます。'invert'は画面上のピクセルの色反転を実行すると予想されます。これは、フォーカス境界線が背景色に関係なく見えるようにする一般的な手法で���。

準拠するユーザーエージェントは、画面上のピクセルの色反転をサポートしていないプラットフォームでは 'invert' 値を無視する場合があります。ユーザーエージェントが 'invert' 値をサポートしていない場合、'outline-color' プロパティの初期値は 'color' プロパティの値となります。これは、'border-top-color' プロパティの初期値に似ています。

'outline' プロパティは 省略形のプロパティであり、'outline-style''outline-width''outline-color' のすべてを設定します。

注記。 アウトラインはすべての側面で同じです。境界線とは対照的に、'outline-top' や 'outline-left' プロパティはありません。

この仕様では、複数の重なり合うアウトラインがどのように描画されるか、または他の要素の背後に部分的に隠れているボックスのアウトラインがどのように描画されるかは定義されていません。

注記。 アウトラインはフォーマットに影響を与えないため(つまり、ボックスモデルにスペースが確保されない)、ページ上の他の要素と重なる可能性があります。

例:

以下は、BUTTON 要素の周りに太いアウトラインを描画する例です:


button { outline : thick solid}

スクリプトを使用してアウトラインの幅を動的に変更することができ、再フローを引き起こすことはありません。

18.4.1 アウトラインとフォーカス

グラフィカルユーザーインターフェイスは、ページ上のどの要素がフォーカスを持っているかをユーザーに知らせるために要素の周りにアウトラインを使用する場合があります。これらのアウトラインは境界線に加えて表示され、アウトラインのオン・オフを切り替えてもドキュメントの再フローを引き起こしません。フォーカスは、ドキュメント内でユーザーの操作対象となるものです(例: テキストの入力、ボタンの選択など)。インタラクティブメディアグループをサポートするユーザーエージェントは、フォーカスの位置を追跡し、フォーカスを表現する必要があります。これは、:focus 疑似クラスと動的アウトラインを組み合わせて行うことができます。

例:

例えば、要素がフォーカスを持っているときにその周りに黒い太線を描き、アクティブな場合には赤い太線を描くには、以下のルールを使用できます:


:focus  { outline: thick solid black }
:active { outline: thick solid red }

18.5 拡大

CSSワーキンググループは、ドキュメントまたはその一部の拡大をスタイルシートで指定すべきではないと考えています。ユーザーエージェントは、拡大をさまざまな方法でサポートする場合があります(例: 画像の拡大、音量の増加など)。

ページを拡大する場合、ユーザーエージェントは配置された要素間の関係を保持する必要があります。例えば、漫画のコマはテキスト要素が重ねられた画像で構成されている場合があります。このページを拡大する際、ユーザーエージェントはテキストを漫画の吹き出し内に保持する必要があります。