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
はじめてのMaterial3 Expressive
ym223
2
900
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.5k
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
540
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.9k
2025 年のコーディングエージェントの現在地とエンジニアの仕事の変化について
azukiazusa1
24
12k
ProxyによるWindow間RPC機構の構築
syumai
3
1.2k
機能追加とリーダー業務の類似性
rinchoku
2
1.3k
個人開発で徳島大学生60%以上の心を掴んだアプリ、そして手放した話
akidon0000
1
150
1から理解するWeb Push
dora1998
7
1.9k
rage against annotate_predecessor
junk0612
0
170
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
私の後悔をAWS DMSで解決した話
hiramax
4
210
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
YesSQL, Process and Tooling at Scale
rocio
173
14k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Being A Developer After 40
akosma
90
590k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
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