libwordring
|
<attribute-selector> [詳解]
#include <grammar.hpp>
公開型 | |
using | const_iterator = syntax_primitive_stream::const_iterator |
![]() | |
using | const_iterator = syntax_primitive_stream::const_iterator |
using | document_type_name = wordring::html::document_type_name |
using | document_mode_name = wordring::html::document_mode_name |
公開メンバ関数 | |
attribute_selector (const_iterator first, const_iterator last, wq_name name, char32_t matcher, std::u32string const &value, char32_t modifier) | |
std::optional< ns_prefix > const & | prefix () const |
std::u32string const & | name () const |
char32_t | matcher () const |
std::u32string const & | value () const |
char32_t | modifier () const |
template<typename NodePointer > | |
bool | match (NodePointer const &np, match_context< NodePointer > const &ctx) const |
ノードにマッチするか検査する [詳解] | |
![]() | |
selector_grammar (selector_grammar const &)=default | |
selector_grammar (selector_grammar &&)=default | |
selector_grammar (const_iterator first, const_iterator last) | |
selector_grammar & | operator= (selector_grammar const &)=default |
selector_grammar & | operator= (selector_grammar &&)=default |
operator bool () const | |
bool | operator! () const |
const_iterator | begin () const |
const_iterator | end () const |
静的公開メンバ関数 | |
static attribute_selector | consume (syntax_primitive_stream in, parse_context &ctx) |
その他の継承メンバ | |
![]() | |
const_iterator | m_first |
構文解析時に部分セレクタが消費した入力の先頭 | |
const_iterator | m_last |
構文解析時に部分セレクタが消費した入力の終端 | |
<attribute-selector>
|
inline |
ノードにマッチするか検査する
名前空間をサポートしないcontextで、名前空間を指定したセレクタは無効なセレクタとなり何にもマッチしない。
同一要素内で属性名の重複は、HTML5はトークン化ステージで後ろの属性が捨てられ、XMLはエラーとなる。 したがって、属性名の重複は考慮しなくて良い。
HTML 下では、要素名属性名はASCII大小無視で照合される。 XML 下では、要素名属性名はASCII大小区別される。 HTML5 パーサーはトークン化ステージですでに属性名を小文字化して格納する。
属性値はASCII大小区別される。 [課題] 属性名「 class 」のASCII大小をどう扱うか?
CSS 名前空間接頭辞は、ASCII大小区別する。
属性には @namespace で指定されたデフォルト(無名)の名前空間が適用されない。
HTML5 は、 querySelector() に名前空間をサポートする予定はない。
宣言されていない名前空間接頭辞を伴う属性セレクタは無効なセレクタである。
無効なセレクタは何にもマッチしない。
[*|attr] はすべての接頭辞、あるいは接頭辞を持たない属性にマッチする。 [|attr] あるいは [attr] は、名前空間に属さない属性のみにマッチする。
ノードの名前空間 URI はノードから得られる。 CSS 側の名前空間 URI は ctx から得る。
スタイルシートをサポートしていないので、名前空間をテストできていない。