Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
All About CSS
Search
saeka
August 09, 2019
Programming
0
230
All About CSS
CSSに苦戦するすべての技術者のために作りました💖
saeka
August 09, 2019
Tweet
Share
More Decks by saeka
See All by saeka
Sass Life
saeka
1
71
Other Decks in Programming
See All in Programming
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
570
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
250
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
1
350
TypeScriptでDXを上げろ! Hono編
yusukebe
3
670
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
750
効率的な開発手段として VRTを活用する
ishkawa
0
150
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1.1k
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
2
11k
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
5
8.2k
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
650
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
340
Featured
See All Featured
A designer walks into a library…
pauljervisheath
207
24k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
980
Making Projects Easy
brettharned
116
6.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Thoughts on Productivity
jonyablonski
69
4.7k
For a Future-Friendly Web
brad_frost
179
9.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Why Our Code Smells
bkeepers
PRO
336
57k
Facilitating Awesome Meetings
lara
54
6.5k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Automating Front-end Workflow
addyosmani
1370
200k
Transcript
All about CSS Saeka Hirai
CSS is ? All about CSS
Cascading Style Sheet All about CSS
同じ要素に対して 異なるスタイルが指定されている場合、 その優先順位を決めること All about CSS Cascading =
None
All about CSS ・ウェブサイトの⾒た⽬を作るもの ・HTMLに装飾するもの ・簡単に描けるけど掴み所がない ・正解がよくわからない… ・なんかつけたスタイルが効かないし!(爆) みんなのCSSに対する印象
All about CSS CSSの 基本構⽂を勉強する前に…
All about CSS CSSの概念はたった2つ! みんな知ってた?
All about CSS 私⾃⾝と 私とあなたの関係性❤
All about CSS 私⾃⾝って?
All about CSS 私 = アバター = 例えば…
All about CSS 私の特徴ってこんな感じ ・背景は海 ・髪の⽑が⻑い ・髪の⽑の⾊は茶⾊ ・髪の⽑質はゆるふわパーマ ・前髪は眉上 ・眉⽑は茶⾊
・⽬はぱっちり ・⽬の⾊は⽔⾊ ・肌は⾊⽩ ・来ている服はワンピース ・服の模様は⻘のストライプ ・イヤリングつけてる ・イヤリングの⾊は⽔⾊ ・靴はサンダル etc…
All about CSS CSSで書くとこんな感じ 私 { 背景 : 海; 服:
ワンピース ⻘のストライプ; イヤリング: つけてる ⽔⾊; 靴: サンダル; 髪の⽑: ⻑い 茶⾊ ゆるふわパーマ; 前髪: 眉上; ⽬: ぱっちり ⽔⾊; 肌: ⾊⽩; }
All about CSS 私たちの関係性は? 私 あなた あなた = 私の⼦供
All about CSS あなた 私 私たちの関係性は? CSSの世界は 継承するもの あなた =
私の親?
All about CSS 私 あなた あなた = 私の兄弟 隣⼈ CSSの世界では
兄弟間はお隣さん 私たちの関係性は?
All about CSS 私 あなた あなた = 前の兄弟? 同じお隣さんでも ⾒える範囲は
⾃分の後ろだけ 私たちの関係性は?
All about CSS CSSで書くとこんな感じ 私 { ⼦供たちの並び: 横⼀列に並んでいる; } 私の⼦供
{ 体の⾊: ⻩⾊; くちばしの⾊: オレンジ; } 私 あなた
All about CSS 関係性を表すCSSは他にもあるよ 親 { display: flex; } ⼦
{ flex: 1; } 親 { display: grid; } 親 { position: relative; } ⼦ { position: absolute; } 親 { font-size: 16px; } /*(16*0.8) = 12.8px*/ ⼦ { font-size: 0.8em; }
All about CSS 2つの概念を理解したところで…
All about CSS 基本構⽂です! セレクタ(要素) { プロパティ: 値; }
All about CSS セレクタの種類 : HTMLタグ p { color: pink;
} CSS <p>テキスト</p> HTML
All about CSS セレクタの種類 : ID #pink { color: pink;
} <p id=“pink”> テキスト </p> HTML CSS
All about CSS セレクタの種類 : Class .pink { color: pink;
} <p class=“pink”> テキスト </p> HTML CSS
All about CSS プロパティはこれだけあります❤ https://developer.mozilla.org/ja/docs/Web/CSS/Reference
All about CSS 今時のCSSは Grid & Flex & VW
All about CSS Grid
All about CSS ul { display: grid; grid-template-columns: 1fr 1fr
1fr; grid-gap: 40px 50px; } CSS <ul><li>アイテム</li></ul> HTML Grid
All about CSS CSS ul { display: grid; grid-gap: 20px;
grid-template-columns: 1fr 1fr; grid-template-areas: “sales job “ “sales age “; } li:first-child { grid-area: sales; } li:nth-child(2) { grid-area: job; } li:last-child { grid-area: age; } <ul><li>アイテム</li></ul> HTML Grid
All about CSS こういう時はGrid ・レイアウトを均等に分割して配置したい ・マス⽬の好きな位置に要素を配置したい ・1列に並べる個数が決まっていて、 余⽩をいい感じに均等に割り振ってほしい
All about CSS Grid学習⽤ゲーム http://cssgridgarden.com/#ja
All about CSS Flex
All about CSS ul { display: flex; flex-wrap: wrap; }
li { margin-right: 1.04vw; margin-bottom: 1vw; } CSS Flex HTML <ul> <li> <a>アイテム</a> </li> </ul>
All about CSS CSS div { display: flex; } dt
{ flex-basis: 8.5em; } dd { flex: 1; margin-left: 40px; } <div> <dt>項⽬名</dt> <dd>データ</dd> </div> HTML Flex
All about CSS こういう時はFlex ・何個要素があるかわからないけどいい感じに 横並びにしたい ・要素に残り幅全て割り当てたい時 ・要素を天地中央に持っていきたい ・要素の順番をPCとスマホで変えたい時
All about CSS Flex学習⽤ゲーム https://flexboxfroggy.com/#ja
All about CSS VWの話をする前に… PCデザインとスマホデザインを どう使い分けているか知っていますか?
All about CSS PC SP
All about CSS 1. 端末によって読み込むソースを分ける (バックエンド的解決) 2. 同⼀ソース内で処理を分岐させる
(フロントエンド的解決)
All about CSS 同⼀ソース内で処理を分岐させる → レスポンシブ対応
All about CSS レスポンシブ対応させるためには <head> <meta name=“viewport” content=“width=device-width,initial-scale=1.0,minimum-scale=1.0”> </head> HTML
/*750px以下はこのスタイル*/ @media screen and (max-width: 750px) { /* SPのスタイルを書く*/ } CSS /*750px以上はこのスタイル*/ @media screen and (min-width: 750px) { /* PCのスタイルを書く*/ }
All about CSS CSSでよく⾒る単位って?
All about CSS px = 画素の最⼩単位
All about CSS 横幅1400pxのPC → 画⾯解像度1400px 例えば…
All about CSS 横幅365pxのスマホ → 画⾯解像度365px ? では…
None
All about CSS デバイスには 物理値と論理値がある
All about CSS ⾼精細ディスプレイの登場 Dot by dot 論理値 Scaling 物理値
All about CSS 横幅375pxのスマホ → 画⾯解像度750px 論理値 物理値 (Retina2の場合)
All about CSS 物理値(750px)でなく、 論理値(375px)でCSSをかけるようにするための記述 <head> <meta name=“viewport” content=“width=device-width,initial-scale=1.0,minimum-scale=1.0”> </head>
HTML
All about CSS 物理値(750px)で なんでCSS書いちゃいけないの? って思った⼈挙⼿
All about CSS 物理値の幅は(スマホだけでも) 640px∼1242/2160px …(2倍、3倍の⼤きさが普及)
All about CSS 640px基準で書けば 1242/2160pxの時スカスカになるし、 1242/2160px基準で書けば 640pxの時はみ出ちゃう…
All about CSS でも論理値なら320px∼414px
All about CSS 幅の範囲が狭い場合は 百分率(%)を使えばいいのです!
All about CSS 百分率 = ⽐べられる量÷元にする量×100% ⼩学5年⽣のおさらい
All about CSS Example 750pxのデバイス幅でpadding40pxの場合 (⾼精細ディスプレイ対応でデザインは750pxが多いです) 40px÷750px ×100% = 5.33%
(⽐べられる量) (元にする量)
All about CSS レスポンシブ対応とは デバイス幅の⽐率で CSSを書くこと!
All about CSS HTMLのviewportで論理値指定 + CSSの⽐率計算 の相性が良き
All about CSS だがしかし
All about CSS CSSの世界は 継承するもの
All about CSS 元にする量(100%となる値)が 常にデバイス幅とは限らないのです
All about CSS CSSの世界では ⼦にとって親が100%
All about CSS 問 : aのpaddingの百分率を求めよ <ul> <li><a></a></li> </ul> HTML
device = width: 750px ul = width : 500px li = width : 300px a = padding: 20px
All about CSS 問 : aのpaddingの百分率を求めよ device = width: 750px
ul = width : 500px li = width : 300px a = padding: 20px ⬅この時点でもう 100%は750pxではない
None
All about CSS そこでVWです!
All about CSS VWとは? Viewport Width = Viewportの幅に対する割合
All about CSS 問 : aのpaddingの百分率を求めよ device = width: 750px
ul = width : 500px li = width : 300px a = padding: 20px ⬅ (500/750*100)vw ⬅ (300/750*100)vw ⬅ (20/750*100)vw
All about CSS お分かりいただけるだろうか
All about CSS VWだと 常に100%の値が固定されるので 計算がめちゃ楽!
All about CSS Grid & Flex & VW 使ってみてね
All about CSS (みんなが苦しめられる) 詳細度について 最後に
All about CSS CSSが効きません!(涙) ∼あるある相談出来事∼
All about CSS なぜか
All about CSS 迷⼦センターに⼦供が来て、 アナウンスが流れました。 どのアナウンスが⼀番早く 迎えが来てくれそうでしょうか ?
All about CSS ①「迷⼦は⼥の⼦です」 ②「迷⼦は⼥の⼦で、 ワンピースを着ています」 ③「迷⼦は⼥の⼦で、ワンピースを 着ている愛ちゃんという名前です」
All about CSS 迷⼦センター = ブラウザ
All about CSS ブラウザも セレクタの詳細度が⾼いと 早く⾒つける(処理する)ことができる だから、強い IDはUniqueであるから 尚更強い
All about CSS でもこれならOK 迷⼦の名前は ⼭⽥愛ちゃんです = 迷ったらクラスを使うべし
以上が CSSの全てです All about CSS
Thank You