[31] [[選択子]]の[[擬似クラス]] [DFN[[CODE(CSS)@en[[[:valid]]]]]]、[DFN[[CODE(CSS)@en[[[:invalid]]]]]] は、それぞれ所定の制約を満たす、あるいは満たさない[[要素]] (主に[[フォーム制御子]]) と[[一致]]します。 * 仕様書 [REFS[ - [15] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2011-11-12 00:22:26 +09:00]] 版) - [5] [CITE@EN[XForms 1.1]] ([TIME[2010-08-13 07:45:33 +09:00]] 版) ]REFS] * 意味 ** HTML [19] [[HTML]] では [CODE(CSS)@en[[[:valid]]]] と [CODE(CSS)@en[[[:invalid]]]] はそれぞれ、 - [22] [[フォーム制御子]]: [[制約検証の候補]]であってかつ[[制約を満足]]する、あるいはしない[[要素]] - [23] [[フォーム]]: [[提出可能要素]]であり[[制約検証の候補]]で、しかも[[制約を満たさない]][[要素]]の[[フォーム所有子]]で無い、あるいはそのような[[要素]]1つ[[以上]]の[[フォーム所有子]]である[[要素]] - [30] [CODE(HTMLe)@en[[[fieldset]]]]: [[制約検証の候補]]で、しかも[[制約を満たさない]][[要素]]を[[子孫]]として有する[[要素]] ... を表します [SRC[>>15]]。 ;; [24] 簡単にいえば[[制約]]を満たさないのが [CODE(CSS)@en[[[:invalid]]]]、 そうでないのが [CODE(CSS)@en[[[:valid]]]] です。しかし[[提出]]されない[[制御子]]など例外があるため、 厳密にはこのように一見わかりにくい定義になっています。 ** XForms [4] [[XForms]] では [CODE(CSS)@en[[[:valid]]]] と [CODE(CSS)@en[[[:invalid]]]] はそれぞれ現在[[妥当]]または[[非妥当]]の[[節点]]に[[束縛]]された[[フォーム制御子]]を表します [SRC[>>5]]。 * 歴史 ** CSS UI [REFS[ - [8] [CITE@en[CSS3 module: Basic User Interface]] ([[Tantek Çelik]] 著, [TIME[2002-08-03 07:13:43 +09:00]] 版) - [10] [CITE[XForms and Styling]] ([TIME[2002-08-21 23:00:56 +09:00]] 版) - [12] [CITE[XForms and Styling]] ([TIME[2002-11-07 01:02:54 +09:00]] 版) - [6] [CITE@en[CSS Basic User Interface Module Level 3 (CSS3 UI)]] ([[Tantek Çelik]] 著, [TIME[2011-09-29 17:32:08 +09:00]] 版) - [7] [CITE@EN[XForms 1.1]] ([TIME[2010-08-13 07:45:33 +09:00]] 版) - [25] [CITE@en[CSS Basic User Interface Module Level 3 (CSS3 UI)]] ([[Tantek Çelik]] 著, [TIME[2012-01-13 20:03:30 +09:00]] 版) ]REFS] [9] [[XForms]] での利用を想定して >>8 で追加されました。 [11] >>10 では [DFN[[CODE(CSS)@en[[[:forms-valid]]]]]], [DFN[[CODE(CSS)@en[[[:forms-invalid]]]]]] という名前でした。 >>12 以降では [[CSS]] と同じ名前になっています。 [17] [[Webアプリケーション]]から制御可能にする構想もありました。 [REFS[ - [14] [CITE@en-GB-hixie[Web Applications Markup Language 1.0]] ( ([TIME[2004-04-08 02:39:12 +09:00]] 版)) - [13] [CITE@en-GB-hixie[Web Controls 1.0]] ( ([TIME[2004-11-09 08:49:52 +09:00]] 版)) ]REFS] ** HTML [18] [[HTML]] についてははじめ [[Web Forms 2.0]] が、後に [[Web Applications 1.0]] / [[HTML Living Standard]] が適用対象を規定するようになっています。 [REFS[ -[1] [CITE@en-GB-x-Hixie[Web Forms 2.0]] ([TIME[2009-01-05 20:07:15 +09:00]] 版) -- [2] -- [3] '''''' - [16] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2011-11-12 00:22:26 +09:00]] 版) - [20] [CITE@en[Web Applications 1.0 r6888 Make :valid and :invalid apply to
elements also.]] ( ([TIME[2012-01-11 09:00:00 +09:00]] 版)) - [28] [CITE@en[Web Applications 1.0 r7823 Make :invalid match
s that contain invalid controls.]] ( ([TIME[2013-04-13 08:03:00 +09:00]] 版)) - [33] [CITE@en[Web Applications 1.0 r8089 Oddly, :valid somehow didn't apply to fieldset but :invalid did. let us fix that...]] ([TIME[2013-07-26 08:54:00 +09:00]] 版) ]REFS] [21] >>20 により [CODE(HTMLe)@en[[[form]]]] [[要素]]にも適用されるようになりました。 [29] >>28、>>33 により [CODE(HTMLe)@en[[[fieldset]]]] [[要素]]にも適用されるようになりました。