/
39.txt
88 lines (59 loc) · 4.39 KB
/
39.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
[2] [DFN[[RUBYB[[[隣接兄弟結合子]]]@en[adjacent sibling combinator]]]] ([DFN[[CODE(CSS)[[[+]]]]]]) は、
前の[[単純選択子列]]によって表される[[要素]]の直後にある[[弟]]である、
後の[[単純選択子列]]によって表される[[要素]]を表す[[兄弟結合子]]です。
* 仕様書
[REFS[
- [1] [CITE@en[Selectors Level 3]] ([TIME[2011-09-29 22:16:17 +09:00]] 版) <http://www.w3.org/TR/selectors/#adjacent-sibling-combinators>
]REFS]
* 意味
[3] [[隣接兄弟結合子]]は、前後2つの[[単純選択子列]]で表される[[要素]]が同じ[[親]]を持ち、
最初の[[要素]]の直後に2つ目の[[要素]]があることを表しています。 [SRC[>>1]]
[4] ただし「直後」の判断に用いられるのは[[要素節点]]のみです。
[[テキスト節点]]などは無視されます。 [SRC[>>1]]
[5] [[文書木]]は[[実体参照]]を[[展開]]した状態で表現されるので、「同じ[[親]]」の判定は[[実体参照節点]]を無視して行われます。
* 構文
[6] [[隣接兄弟結合子]]の前後には[[空白]]を挿入できます。
* 歴史
** [CODE(CSS)[/ ... /]]
[REFS[
- [22] [CITE[Cascading Style Sheets: a draft specification]] ([TIME[1995-08-11 17:13:22 +09:00]] 版) <http://www.w3.org/Style/CSS/draft3.html#introduction2>
- [24] [CITE[Cascading Style Sheets: a draft specification]] ([TIME[1995-10-07 10:35:41 +09:00]] 版) <http://www.w3.org/Style/CSS/draft4.html#appendixa>
- [26] [CITE[Cascading Style Sheets: a draft specification]] ([TIME[1995-11-02 03:04:18 +09:00]] 版) <http://www.w3.org/Style/CSS/draft5.html#appendixa>
- [11] [CITE[STSS 2]] ([[Daniel Glazman]] 著, [TIME[2000-09-09 01:13:50 +09:00]] 版) <http://www.w3.org/TR/NOTE-stts2-971017#Sequential>
- [19] [CITE@en[Selectors]] ([TIME[1997-11-08 03:00:17 +09:00]] 版) <http://www.w3.org/TR/WD-CSS2-971104/selector.html#sequential-selectors>
]REFS]
[23] [[CSS]] の初期案 (>>22) では [CODE(CSS)[/H1/ P]] や [CODE(CSS)[// P]] のような構文が提案されていました。
[25] >>24 では[[水準2]]に格下げ(?)されました。しかし >>26 の次の案では [[CSS2]]
の部分は削除されています。
[12] それから少し時代が下って [[STTS2]] (>>11) や [[CSS2]] (>>19) の初期案では [CODE(CSS)[DIV /IMG ~ UL/]]
のような構文が提案されていました。
** [CODE(CSS)[+]]
[REFS[
- [20] [CITE@en[Selectors]] ([TIME[2001-01-16 00:22:58 +09:00]] 版) <http://www.w3.org/TR/1998/WD-css2-19980128/selector.html#adjacent-selectors>
- [8] [CITE@en[Selectors]] ([TIME[2011-06-07 22:09:52 +09:00]] 版) <http://www.w3.org/TR/CSS2/selector.html#adjacent-selectors>
]REFS]
[9] [[CSS2]] では[[単純選択子列]] ([[CSS2]] でいう[[単純選択子]]) の後に[[隣接兄弟結合子]]が続き、
更に[[単純選択子列]]が続く列のことを[DFN[[RUBYB[[[隣接兄弟選択子]]]@en[adjacent sibling selector]]]]と呼んでいました。
;; [21] 初出の >>20 では単に[DFN[[RUBYB[[[隣接選択子]]]@en[adjacent selector]]]]でした。
;; [10] この用語は[[選択子3]]では使われていません。
** 選択子3
[REFS[
- [13] [CITE[CSS3 module: W3C selectors]] ([TIME[2000-03-13 23:37:32 +09:00]] 版) <http://www.w3.org/TR/1999/WD-CSS3-selectors-19990803#adjacent-d-combinators>
]REFS]
[14] [[選択子3]]では [CODE(CSS)[[[~]]]] が追加されたため、 [CODE(CSS)[[[+]]]]
は[DFN[[RUBYB[[[直接隣接結合子]]]@en[direct adjacent sibling combinator]]]]と呼ばれるようになりました。
[[隣接兄弟結合子]]はこれらの総称でした。
[REFS[
- [17] [CITE@en[Selectors]] ([TIME[2005-12-15 00:49:29 +09:00]] 版) <http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#sibling-combinators>
]REFS]
[18] >>17 で名称が変更されて、[[隣接兄弟結合子]]が [CODE(CSS)[[[+]]]] の名称となりました。
** XBL2
[REFS[
- [15] [CITE@en-US[XBL 2.0]] ([TIME[2010-09-03 10:10:02 +09:00]] 版) <http://dev.w3.org/2006/xbl2/Overview.html#selectors-and-shadow-scopes>
]REFS]
[16] [[XBL2]] は[[影木]]との関係を規定していました。
* 例
[EG[
[7] [[選択子]] [CODE(CSS)[h1 + em]] は [CODE(HTMLe)@en[h1]] [[要素]]の直後の[[弟要素]]である
[CODE(HTMLe)@en[em]] [[要素]]を表します。間に[[テキスト]]や[[注釈]]が挟まっていても構いません。
]EG]