ベンダープレフィックスはなぜつけるのかなと調べていたら、先行実装という語句がでてきました。
この「先行実装」というのはどういう意味なのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
CSS 2.2
ベンダー接頭辞(Vendor prefix)の呼称はやや古い気がしますが、CSS仕様を遡ると、CSS 2.2には名残が見られます。
- 4.1.2.1 Vendor-specific extensions - CSS 2.2 Specification
- 4.1.2.1 ベンダー固有の拡張 - CSS 2.2 Specification(ja)
Selectors Level 4
Selectors Level 4になると、Vendorを含む呼称はなくなり、**無効な選択子(Invalid Selectors)**と記載するに留まっています。
3.8. 名前空間 接頭辞の宣言法
一部の選択子は,名前空間 接頭辞をサポートする。 名前空間 接頭辞を 宣言 する仕組みは、 Selectors を利用する言語により指定されるべきである。 言語が名前空間 接頭辞の宣言の仕組みを指定しない場合、いかなる接頭辞も宣言されない。 CSS においては、名前空間 接頭辞は @namespace 規則 [CSS3NAMESPACE] により宣言される。
部分的な実装
作者が前方互換な構文解析規則を活用して,フォールバック値をあてがえるようにするため、 CSS 具現化器は、自身が実用レベルでサポートしないどの[ at-規則, プロパティ, プロパティ値, キーワード, 他の構文上の構成子 ]も,無効なものと扱って適切に無視するものとする。 特に,UA は、複数成分からなる値をとる単独のプロパティ宣言の中で,自身がサポートする値のみ尊守しつつ, 未サポートな値を選択的に無視してはならない。 いずれかの成分が無効と見なされる場合(未サポートな値はそう見なすものとする)、それを含む宣言全体を無視することが CSS から要求される。
不安定/プロプライエタリな特能の実装
将来の安定的な CSS 特能との衝突を避けるため、 CSS WG は,[ CSS 用の[ 不安定な特能/プロプライエタリ拡張 ]を実装する際には, 最善な実施に従う ]ことを推奨する。
勧告候補レベルの特能の実装
仕様が勧告候補の段階に達したならば、実装者は,仕様に則って正しく実装できた勧告候補レベルの特能について、接頭辞無しの実装をリリースし,その特能の接頭辞付き変種を公開するのは避けるべきである。
実装間の CSS の相互運用能を確立し, 保守するため、 CSS WG は、試験的でない CSS 具現化器が接頭辞無し CSS 特能の実装をリリースする前に,W3C に実装報告を(および,必要に応じて実装報告に利用されたテスト事例も併せて)提出することを要請する。 W3C に提出されたテスト事例は、 CSS WG による考査と訂正の対象になる。
テスト事例, および実装報告の提出法についての更なる情報は、 CSS WG web サイトの https://www.w3.org/Style/CSS/Test/ にて見られる。 質問があれば, public-css-testsuite@w3.org メーリングリスト宛に寄せられるべきである。
MDN
Firefox開発サイトのMDNには、ベンダープレフィックスの説明があります。
ブラウザーベンダーは、実験的な機能にベンダー接頭辞をつけることをやめるようになってきています。ウェブ開発者は、実験的な機能であるにもかかわらず、実運用のウェブサイトで使用し続けてきました。これはブラウザーベンダーが互換性を維持して、新しい機能を導入することを困難にしてしまいました。これはシェアの小さなブラウザーにとっても有害で、有名なウェブサイトを読み込むために他のブラウザーの接頭辞を追加せざるを得ない結果になりました。
最近は、実験的な機能をユーザーが制御するフラグや設定によって隠して追加するようにし、より早く安定状態になるようにより小さな仕様を作成する傾向があります。
まとめ (ベンダープレフィックス)
「ベンダープレフィックス」は各ブラウザベンダーが勝手に呼称している用語です。
CSS実装における実体は名前空間プレフィックス(Namespace Prefixes)を利用して、Web標準APIに存在しない接頭辞を付与することで、標準APIとの衝突を防止しているに過ぎません。
使われ方は「Selectors Level 4」「MDN」で説明されているので割愛します。
※JavaScript APIでも、Vendor Prefixを使用したAPIを各ブラウザが実装していますが、これも使われ方は変わらず、MDNに説明があります。
先行実装
先行実装
[1] 以前は、 CSS3 などの原案段階の仕様を勧告化に先立って実装することを先行実装などと呼んでいました。
[2] 現在は Webブラウザーの開発と標準仕様の開発が並行して協調しながら進められることが一般的になり、 「勧告」というステータスの意味がなくなっているので、「先行実装」という言い方はあまりしなくなりました。 平成23(2011)年1月2日(日) 17時45分45秒
どこまで信頼できるのか分からない個人サイトですが、私の認識とも概ね一致します。
「勧告前の不安定な仕様を実装すること」を先行実装といいます。
現在ではLiving Standardな仕様が明文化されつつあるので、先行実装を唱えられる事は少なくなりましたが、知識として覚えておくのは良いと思います。
HTML/CSS/JavaScript等のクライアントサイド言語には依然として、クロスブラウザの問題があります。
Re: syakade-su さん
投稿2020/09/19 15:20
編集2020/09/19 15:56総合スコア18189
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/09/19 19:24
2020/09/20 01:00 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。