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
YouTube Live (2020.11.12 Thur. 21:00~)
Slide 2
Slide 2 text
話す人 現役のエンジニア二人 赤貝が好きな CTO と デザイン勉強中のエンジニア @mu_vpoe 最近の仕事は figma で画 面設計をつくることで す。英語の勉強してる。 ムー zaru @zaru CTO, Love 赤貝, JavaScript, Firebase, Web Components. Twitter フォロー お願いします!
Slide 3
Slide 3 text
今日話すこと ● ボックスモデルについて ● margin の相殺 ● block と inline の違い ● auto と negative ● margin 上か下か議論 ● UI パーツ余白設計 ● 論理プロパティについて
Slide 4
Slide 4 text
ボックスモデル
Slide 5
Slide 5 text
CSS のボックスモデル
Slide 6
Slide 6 text
width はどこまで? CSS クイズ CSS はモダンブラウザ標準のままとする ❹ コンテンツだけ ❸ パディング含む ❷ ボーダー含む ❶ マージン含む
Slide 7
Slide 7 text
width は box-sizing で変わる box-sizing: content-box 標準 box-sizing: border-box 伝統 width はコンテンツ領域のみの寸 法となる。padding や border を 考慮する必要がある width は border を含んだ寸法と なる。見た目通りに幅を指定でき るので感覚的で使いやすい ( height )
Slide 8
Slide 8 text
margin の相殺
Slide 9
Slide 9 text
ぶつかる margin は相殺される .box1 { background: aqua; margin-bottom: 50px; } .box2 { background: hotpink; margin-top: 25px; } CSS
Box1
Box2
HTML ??px
Slide 10
Slide 10 text
ぶつかる margin は相殺される .box1 { background: aqua; margin-bottom: 50px; } .box2 { background: hotpink; margin-top: 25px; } CSS
Box1
Box2
HTML 50px 隣接する DIV の margin は数値が大き い方が採用される。そのため、50px の margin になる
Slide 11
Slide 11 text
親子の margin はどうなる? .parent1 { background: aqua; margin-top: 25px; } .child1 { background: hotpink; margin-top: 50px; } CSS
child1
HTML CSS クイズ ??px ??px
Slide 12
Slide 12 text
親子の margin も相殺される .parent1 { background: aqua; margin-top: 25px; } .child1 { background: hotpink; margin-top: 50px; } CSS
child1
HTML CSS クイズ 50px 0px 上記例の HTML/CSS だと実際に描画されるのはこう いう感じ。child1 の margin-top 50px が使われ、 親子の DIV は上辺がくっつく
Slide 13
Slide 13 text
止める要素があれば相殺されない 何もなければ子の margin が親を突き 抜けてしまう 親に padding や border など子を 止める要素があれば突き抜けず、両 方の margin が適用される padding border
Slide 14
Slide 14 text
block と inline の違い
Slide 15
Slide 15 text
inline は左右のみ影響する display: block display: inline block 要素はボックス周りへの影響を与える inline 要素は自身のボックスにのみ影響を与 える。例外は左右の margin は適用される inline-block にすれば inline のように振る 舞いつつ block と同じく上下への margin が適用される
Slide 16
Slide 16 text
HTML の block と CSS の block HTML におけるブロック要素・インラ イン要素は、HTML5 では存在せず、 もっと細かい要素に分割されている
ブロック要素
インライン要素 CSS ではレイアウトとしてのブロック 要素・インライン要素などが定義され ている display: block ブロック要素 display: inline インライン要素 フローコンテンツ Tips
Slide 17
Slide 17 text
auto と negative
Slide 18
Slide 18 text
auto はいい感じにやる auto はブラウザがいい感じにやってくれる便利なもの で代表的な使い方は要素の真ん中よせ。 ただ 2020 現代では display: flex; justify-content: center; が使えるのであまり使わない…。 .auto { width: 200px; margin: auto; } CSS
Slide 19
Slide 19 text
negative でカバー表現 親要素と同じ幅 まで広げたいなぁ
Slide 20
Slide 20 text
negative でカバー表現 margin-left: -20px .parent { background: aqua; padding: 20px; } .child { background: hotpink; margin-left: -20px; margin-right: -20px; } CSS
HTML
Slide 21
Slide 21 text
negative でカバー表現 いい感じ .parent3 { background: aqua; padding: 20px; } .child { background: hotpink; margin-left: -20px; margin-right: -20px; } CSS
HTML 親要素に padding などのスペースがあるけど、幅は 親と一緒にしたい…とか飛び越えたいという時には negative margin にすることで飛び越えられる
Slide 22
Slide 22 text
margin 上につけるか下につけるか
Slide 23
Slide 23 text
margin の方向を統一する margin の相殺があるので、互いの要素が持 つ margin がぶつかるとレイアウトがしにく い。 サイト全体の中で方向を統一していくのがベ ター。 上下どちらがいいのかは、それぞれメリット があり一概に言い切れないのでやりやすい方 で。 上でも下でも、どちらでも良い 個人的には 上マージン派閥 下マージン派閥 ぶつかるのは避ける ❌
Slide 24
Slide 24 text
UI パーツ 余白設計
Slide 25
Slide 25 text
このボタンの余白どうする?
Slide 26
Slide 26 text
このボタンの余白どうする? .button { margin: 10px; } CSS 流用可能性がある小さな UI パーツ自身に 余白の定義を直接するのは Not good ❌ .parent { padding: 10px; } CSS パーツを使う側が余白のコントロールをする 方向でスタイルを作っていく(色んなやり方 がある) ✅
Slide 27
Slide 27 text
論理プロパティについて 従来のプロパティ 論理プロパティ 物理的な見た目のプロパティ名から、要素に対しての論理的なプロパ ティ名へ。これによって要素が縦書きやアラビア語圏などでも統一し たプロパティ設定が可能になる。
Slide 28
Slide 28 text
.legacy-properties, .logic-properties { background: beige; margin: 10px; writing-mode: vertical-rl; } .legacy-properties { padding-top: 25px; padding-left: 25px; } .logic-properties { padding-block-start: 25px; padding-inline-start: 25px; } CSS
アイウエオ。アイウエオ。
アイウエオ。アイウエオ。
HTML 論理プロパティ
Slide 29
Slide 29 text
ありがとうございました! 次回は... 未定! 質問感想など呟いていただけると嬉しいです! - ハッシュタグ #mu_zaru - ツイッター情報 @mu_vpoe , @zaru チャンネル登録 Good ボタン お願いします! ムーザルちゃんねる