Selector

ECMAScriptベースなCSS Paserが欲しい。一年前からずっと。

当面の目的は、 CSS 3 Grid Positioning module CSS 3 Multi-column module CSS Variables その他色々 を実装するための基礎固めです。ただ、個人が遊びで取り組むような規模では無いのは確かです。 最近CSSセレクタの実装ネタが目立つのは、CSS Paserを実装…

一部のブラウザに実装されているCSSセレクタ(querySelectorAll)で良くわからないところ

2009-02-11 追記: 一部加筆/修正しています document.querySelectorAll()で、W3Cの仕様通りだとエラーになりそうだけどそうならない箇所の一覧 ×=エラーになる,▲=エラーにならない(または予想外の要素にマッチする), 未=未テスト, 空白=思惑通りにエラーにな…

ローカルで動作するW3Cのテストスイートを公開します。

「全てパスした」とだけ書くと、あまり良くないことが起きそうなので、ローカルで動作するように修正したCSSセレクタのテストスイートを公開します。W3Cのテストスイート: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/xhtml/index.html利用さ…

結実した

CSSセレクタに :notを追加実装し、名前空間を除くW3Cの互換性テストを全てパスした。

CSSセレクタの最大の欠点(Contextual Selector)はサポート可能か

id:vantguarde さんと、id:amachang さんが半年ぐらい前に http://web.g.hatena.ne.jp/vantguarde/20081030/1225341506さてさて、ひとつ残念なのが“Contextual Selector”という擬似クラスが結局導入されなかったこと。今のSelectors APIでは、「コンテキスト…

CSSセレクタで属性だけじゃなく、スタイルもクエリーできちゃうとすごく便利(かも)

「CSSセレクタって、CSSのルールで絞り込みはできても、CSS(スタイル)で絞り込みができないんだ…」って思ったことはありませんか?実験的なテーマになりますが、styleプロパティの値を、CSSセレクタでクエリーできるように構文を拡張してみました。 # 構文や…

CSSセレクタにテコ入れした

# 昨日の日記の続きです。 Browser Test kQuery uupaa.js+ テコ入れ peppy(cache on) peppy(cache off) sizzle-0.9 jQuery 1.2.6 IE6 A0 248 153 287 294 338 369 A1 611 604 1447 1507 1420 1100 IE7(別PC) A0 144 116 - - 266 306 Firefox2 A0 294 237 138…

CSSセレクタ テコいれ中

→ ofkさんに抜かれたみたい。 → 加速装置投入。2〜6倍速に。 → W3Cのテストで不具合発見(デグレ) → 再度暴速化 → またも別のデグレ発見 → んもぉー。 → ふてね。 → 小人さんが夢の中で良い方法を思いついてくれたよ! → むっくり起きて実装再開 → リビジョン…

excanvas.js にさようなら。

リリースしました。 uupaa-selector.js Version 2.0 (ChangeLog) uupaa-mutationevent.js Version 0.1 (ChangeLog) uupaa-excanvas.js Version 0.1 (ChangeLog) uupaa-detect.js Version 1.0 (ChangeLog) uupaa-color.js Version 3.0 (ChangeLog) 内訳は世界…

CSSセレクタの開発から得られたノウハウのフィードバック + IE8でメソッドをフックする(HTMLElementプロトタイピング)

ここ数日は、CSSセレクタ(uupaa-selector.js)の高速化と同時に、DOM Level2 Mutation Events をサポートする小さなライブラリ(uupaa-mutationevent.js)を作っていました。uupaa-mutationevent.js は、 CSSセレクタにキャッシュを導入するなら、DOMツリーの改…

CSSセレクタがトータルで100倍速くなったからそろそろ終わり

function _fakeMutationEvents(elm) { elm.style.behavior = "none"; (function(n) { var fn = n.removeChild; n.removeChild = function(oldChild) { // DOMNodeRemoved uuClass.Selector.clearCache(); return fn(oldChild); } })(elm); elm.attachEvent("…

DOMNodeInserted と DOMNodeRemoved に似た仕組みを IE でも使えるようにして、セレクタの実行結果をキャッシュする

セレクタ(id, tag, class, css, xpath)の実行速度を改善するには、2つの方法があります。 ロジックを改善する キャッシュを使う 今日は2の方法について検討したことを書き残します。 心配事 キャッシュを使う上での心配事は「キャッシュが古くなったらどうす…

uupaa-selector 2.0 できました。

2008-11-23追記: http://app.blog.livedoor.jp/sourcewalker/tb.cgi/51408207 で紹介されていたので、peppy と sizzle を追加 peppy と sizzle がキャッシュを使ってて(なんかズルイ)ので、彼らに負けじと謎の技術を惜しげもなくぶち込んでみた。JavaScript…