/
18.txt
60 lines (42 loc) · 3.33 KB
/
18.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
[2] [DFN[[CODE(CSS)@en[[[:target]]]]]] [[擬似クラス]]は[[素片識別子]]によって指定されている[RUBYB[[[対象要素]]]@en[target element]]に適用されます
[SRC[>>1]]。
* 仕様書
[REFS[
- [1] [CITE@en[Selectors Level 3]] ([TIME[2011-09-29 22:16:17 +09:00]] 版) <http://www.w3.org/TR/selectors/#target-pseudo>
- [9] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2011-11-12 00:22:26 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#target-element>
- [16] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-06-09 22:10:00 +09:00]]) <https://html.spec.whatwg.org/#selector-target>
]REFS]
* 意味
[3] [[文書URL]]が[[素片識別子]]により特定の[[要素]]を指している時 (その [[URL]]
でページを開いた時や、ページ内の[[リンク]]の移動でそうなったとき)、当該[[要素]]には
[CODE(CSS)@en[[[:target]]]] [[擬似クラス]]が適用されます。
この[[要素]]を[DFN[[RUBYB[[[対象要素]]]@en[target element]]]]といいます [SRC[>>1]]。
[4] [[素片識別子]]がどの[[要素]]も指していない時、 [CODE(CSS)@en[[[:target]]]] はどの[[要素]]にも[[一致]]しません。
;; [5] ということが仕様上明記されていないようですが・・・。
[6] [[素片識別子]]がない場合、 [CODE(CSS)@en[[[:target]]]] はどの[[要素]]にも[[一致]]しません。
[SRC[>>1]]
[10] [[文書の示された部分]]が[[要素]]である場合、それが[[対象要素]]です。そうでない場合、
[[対象要素]]はありません。 [SRC[>>9]]
[12] [[Chrome]] では [CODE(DOMm)@en[[[pushState]]]] で[[素片識別子]]が変わっても、
[CODE(CSS)@en[[[:target]]]] の状態は変化しないようです。 [TIME[2014-09-03T12:44:03.000Z]]
[13] [[文書の示された部分]]は [[navigate]] の最後の方の手順で決定されます。
[[文書]]の[[レンダリング]]が開始されて[[構文解析]]が完了していない途中では、
まだ設定されていないことがあります。
[EG[
[14] [CODE(HTMLe)@en[[[script]]]] [[要素]]によって実行される[[スクリプト]]から
[CODE(JS)@en[[[document]].[[querySelector]] ('[[:target]]')]]
しても、[[素片識別子]]で指定された[[要素]]を取得できないことがあります。
]EG]
* 歴史
** 選択子
[REFS[
- [7] [CITE[CSS3 module: W3C selectors]] ([TIME[2000-03-13 23:37:32 +09:00]] 版) <http://www.w3.org/TR/1999/WD-CSS3-selectors-19990803#target-pseudo>
]REFS]
[8] [[選択子3]]の最初の公開案の >>7 には既に [CODE(CSS)@en[[[:target]]]] が含まれていました。
** HTML
[11] [[選択子]]の仕様は[[対象要素]]を[[素片識別子]]によって識別される[[要素]]であるとしか説明していませんでしたが、
[[HTML]] 仕様書はより明確にその決定方法を規定しています。 [[HTML]] の仕様書とはいえ、 [[Webブラウザー]]の挙動について
[CODE(MIME)@en[[[text/html]]]] に限らず適用される規定であり、事実上[[選択子]]仕様の曖昧な部分を明確化する形となっています。
[15] [CITE@en[Make :target definition sticky based on last scroll-to-fragment]]
( ([[domenic]]著, [TIME[2016-06-07 22:08:31 +09:00]]))
<https://github.com/whatwg/html/commit/1488bb6f765e41558bb221dc247012a35d88527b>