Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
CSSセレクタを戦わせてみた⚔ 2024/04/19 BARフロントえんどう #2 @tocomi
Slide 2
Slide 2 text
⾃⼰紹介 @tocomi0112 (Kenta TSUNEMI) 🏢 テックタッチ株式会社 (https://techtouch.jp/) ♨ フロントエンドエンジニア # 趣味 ⚾ 野球観戦 (スワローズファン) 🏇 競⾺ (⽳党) 🎮 ゲーム (FF7REBIRTH プレイ中) 🥸 ネタアプリ開発
Slide 3
Slide 3 text
これまで作ったネタアプリ Slack で⼤喜利できるアプリ 歴史上の⼈物が反応してくれるSNS モアイが⼤喜利のお題考えてくれる
Slide 4
Slide 4 text
ネタアプリ CSS にまつわるネタアプリを作ってみました!
Slide 5
Slide 5 text
ネタアプリ CSSセレクタ詳細度バトラー⚔
Slide 6
Slide 6 text
アプリ概要 Chrome 拡張機能 表⽰中のwebページ上の CSSセレクターを使ってバトル⚔ ⾃分のセレクターと相⼿のセレク ターのどちらが強いかで、 「たたかう」か「にげる」か正解 のアクションが決まる (最後にデモします!)
Slide 7
Slide 7 text
詳細度 参考: https://developer.mozilla.org/ja/docs/Web/CSS/Specificity 1 - 2 - 1 ID列 #example CLASS列 .myClass [type="radio"] :hover TYPE列 h1 ::placeholder 優先度 ⾼ 低
Slide 8
Slide 8 text
詳細度の⽐較 1 - 2 - 3 0 - 4 - 5 0 - 0 - 10 > > ID = 100ポイント, CLASS = 10ポイント, TYPE = 1ポイント のように ポイント制で説明されることもあるが厳密には誤り。 0 - 1 - 0 0 - 0 - 11 > ID, CLASS, TYPE の順で⽐較が⾏われる。 その時点で数値に⼤⼩があればそれ以降の数値は⽐較されない。
Slide 9
Slide 9 text
詳細度の計算 詳細度の計算には、 specificity というライブラリを利⽤。 詳細度の算出(calculate)や詳細度同⼠の⽐較(compare)をしてくれる。
Slide 10
Slide 10 text
ネタアプリ デモします🎮
Slide 11
Slide 11 text
備考 (chrome拡張の話) popup からページの DOM には アクセスできないので、 content_script を介して DOM にアクセス、セレクタ⼀覧を取 得する。
Slide 12
Slide 12 text
備考 リポジトリ https://github.com/tocomi/css-specificity-battler Chrome 拡張 https://chromewebstore.google.com/detail/lceeemdjolalmackjjpfa agjcdplpfdk?hl=ja
Slide 13
Slide 13 text
おわり🗿