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
第06回Web講座
Search
北海道科学大学 電子計算機研究部
June 21, 2017
Programming
0
75
第06回Web講座
overflow, position , ボックスプロパティ
北海道科学大学 電子計算機研究部
June 21, 2017
Tweet
Share
More Decks by 北海道科学大学 電子計算機研究部
See All by 北海道科学大学 電子計算機研究部
第12回Network講座2019
densan
1
57
第11回Network講座2019
densan
0
70
第10回Network講座2019
densan
0
46
第09回Network講座2019
densan
1
160
第08回Network講座2019
densan
0
49
第07回Network講座2019
densan
0
46
第06回Network講座2019
densan
0
71
第05回Network講座2019
densan
0
51
第04回Network講座2019
densan
0
110
Other Decks in Programming
See All in Programming
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
340
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
240
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
0
180
AIエージェント開発、DevOps and LLMOps
ymd65536
1
370
tool ディレクティブを導入してみた感想
sgash708
1
160
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
7
990
令和最新版手のひらコンピュータ
koba789
14
8.2k
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
990
デザインシステムが必須の時代に
yosuke_furukawa
PRO
2
130
[FEConf 2025] 모노레포 절망편, 14개 레포로 부활하기까지 걸린 1년
mmmaxkim
0
1.4k
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
720
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
210
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
36
6.8k
The Language of Interfaces
destraynor
160
25k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Typedesign – Prime Four
hannesfritz
42
2.8k
The Art of Programming - Codeland 2020
erikaheidi
55
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Practical Orchestrator
shlominoach
190
11k
Faster Mobile Websites
deanohume
309
31k
BBQ
matthewcrist
89
9.8k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
500
How to Ace a Technical Interview
jacobian
279
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Transcript
第6回 Web講座 created by mathuura editor kagawa
概要 ボックスについて overflowプロパティ margin/padding/border marginの相殺 positionプロパティ 2
マージン ボーダー パディング ボックスとは 要素が生成する領域のこと。 コンテントとは要素の内容を示す。 コンテント 3
ボックスサイズの確認方法 ボックスサイズについては、ブラウザ付属のディベロッパーツールで、 インスペクタという機能を使用すると確認することができる。 1. ブラウザ上でF12キーを押すと、次のページのような画面になる (例はクロームの場合) 4
ボックスサイズの確認方法 5
ボックスサイズの確認方法 2. 左上の方にマウスカーソルを模したボタンがあるのでそれをクリック 6
ボックスサイズの確認方法 3. 確認したい要素をクリックする 7
ボックスサイズの確認方法 4. ディベロッパーツールの右側にある”Styles”というタブの一番下でボッ クスサイズが確認できる 8
overflow コンテントボックスに内容が入りきらない場合に、はみ出た部分の 表示方法を指定する。 visible : 初期値。ボックスからはみ出して表示される scroll : 入りきらない内容はスクロールして見られるようになる hidden
: はみ出た部分は表示されない 9
overflow overflow: visible;(初期値) 10
overflow overflow: hidden; 11
overflow overflow: scroll; 12
実例 新しいhtml !>p [tab キー] 13
実例 14
マージン (150px) width height パディング(50px) ボーダー (5px 破線) 15 解説
margin 要素同士の間隔・余白を一括で指定するプロパティ。 指定した値の数に応じて、マージンは下記の通りになる。 1つ・・・上下左右全てのマージンが指定した値になる 2つ・・・1つ目が上下、2つ目が左右の値になる 3つ・・・1つ目が上、2つ目が左右、3つ目が下の値になる
4つ・・・上、右、下、左の順に対応した値になる 16
margin 下記の通り指定すると、マージンは 1. margin: 20px; → 上下左右20px 2. margin: 0
200px; → 上下0px、左右200px 3. margin: 20px 30px 40px; → 上20px、左右30px、下400px 4. margin: 100px 10px 50px 20px; →上100px、右10px、下50px 左20px 17 ↑ ←→ ↓ 時計回り ↑→ ↓ ← ↑ ↓ ←→
padding 要素内の空白(ボーダーとコンテントとの間隔)を指定する。 値の指定方法は marginプロパティと同様。 padding: 0 30px; 18
border ボーダーに関する指定を一括で行う。 上下左右全てが指定された値になる。 border: 10px solid #ff0; 太さ スタイル 色
19
border borderの指定を上下左右別々に行いたい場合、2つの方法がある。 ① border-top, border-bottom, border-left, border-right を用いる border-topは上のみ、border-bottomは下のみ…という風に、対応した プロパティを用いて個別に設定する方法。
値の指定方法はborderと同様。 border-top: 3px double #909090; 太さ スタイル 色 20
border 2. border-width, border-style, border-color で太さ、スタイル、色につい て上下左右に別々の値を指定する -width 太さ |
-style スタイル |-color 色を指定する。 指定する際の順番はmargin/paddingと同様で、指定した値の数に応じ て上下左右に設定される。 21
border-style で指定できる値 一覧は右図の通り。初期値は none none と hidden は共に非表示(太さ0)で あるが、hidden は表のセルなどボーダーが
重なりあう場合も非表示となる。 22
結果 23
ちなみに border-collapse: collapse; が有効では 無い場合 ※border-collapse プロパティはボーダーを 重ね合わせるプロパティ 24
background-clip 背景の適用範囲の指定を行う。 border-box : 初期値。背景をボーダーボックスに適用する padding-box: 背景をパディングボックスに適用する
content-box : 背景をコンテントボックスに適用する 25
background-clip background-clip: border-box; (初期値) 26
background-clip background-clip: padding-box; 27
background-clip background-clip: content-box; 28
background-origin 背景の基準位置の指定を行う。 padding-box: 初期値。背景をパディングボックスに適用する border-box : 背景をボーダーボックスを基準に表示する
content-box : 背景をコンテントボックスに適用する 29
background-origin background-origin: padding-box; (初期値) 30
background-origin background-origin: border-box; 31
background-origin background-origin: content-box; 32
書いてみよう 以下のようなHTML文書を記述する。 (なるべくEmmetを用いて記述してみよう) 33
書いてみよう margin.css をcssフォルダ内に作成し、下記の通り書く 34
ここで h1要素の下マージンは20px + p要素の上マージンは30px ∴h1とpの間隔は 20px+30px=50px になるはず 35
しかし 実際には30pxしかない。 何故? ↓同じ長さ→ 36
マージンの相殺 上下に二つのマージンが重なり合う場合、 符号が同じ場合、値が大きい方が優先される。 30px > 20px ... 30px
符号が異なる場合、合算値になる。 30 – (-20) = 50 px このような状態を マージンの相殺という 37
結果 38
ちなみに マージンには負の値を指定することも可能。 h1の下マージンを -40px と書き変えた場合、 39
結果 このように表示される。 ※(-40px)+ 30px = -10px 40
演習:マージンの相殺について 41
考える divの中にp要素があり、p要素の上マージンは50pxなので、 下の通り表示される・・・? 50px 42
結果 実はマージンの相殺は親子要素同士でも起こる。 今回の場合、 h1の下マージン30px divの上マージン20px pの上マージン50px この3つが重なり、一番大きい50pxになる
50px 43
Div に追加 44 div要素に対して、 次の通りスタイルを追加する。
ボックスサイズ ボックスサイズ=マージン+ボーダー+パディング+コンテントであり、 高さ=上下マージン+上下ボーダー+上下パディング+height 幅=左右マージン+左右ボーダー+左右パディング+width で求められる 45
ボックスサイズの計算 今回の場合、div要素のボックスサイズは 高さ=20px+2px*2+20px+100px=144px 幅=0px+2px*2+10px*2+300px=324px ←このように表示されるはず 50px 324px 144px
46
結果 実際にはこうなる。 何故? 47
マージンの相殺の例外 実は、親要素に対して以下のスタイルを適用すると子要素との マージンの相殺が起こらない。 1. border(値が0以外) 2. padding(値が0以外) 3. overflow(値がhidden または
scrollの時) 4. position(値がabsolute または fixedの時) 他、floatプロパティを使用した場合も例外となる(次回解説) 48
解説 h1-div間のマージンは、p要素の下マージン が適用されて30pxとなる。 div内のp要素のマージンは相殺されないので、 ボーダーから50px下にp要素が表示される。 ボックスサイズは先ほど求めた通り。 49
box-sizing width , height プロパティで指定するボックスサイズの大きさの算出方 法を変更する際に使用する。 content-box : 初期値。パディング、ボーダーを幅と高さに含めない
padding-box : パディングを幅と高さに含める(ボーダーは除く) border-box : パディングとボーダーを幅と高さに含める 50
マージン ボーダー パディング つまり 1. content-boxの場合 コンテント マージン ボーダー+パディング +コンテント
width height width height 2. border-boxの場合 51
つまり box-sizing: border-box; と指定した場合、ボックスサイズの計算は 高さ=上下マージン+height 幅=左右マージン+width これだけで良い。 52
position ボックスの配置方法を指定する。 static : 初期値。top などの位置指定プロパティが適用されない。 relative :
相対位置に配置する。 absolute : 絶対位置に配置する。 fixed : 絶対位置に配置し、なおかつスクロールしても動かない。 53
position 値にstatic以外を指定した場合、以下のプロパティを併用して位置を指定する。 top : 上方向に対する基準位置からの距離 bottom : 下方向に対する基準位置からの距離
left : 左方向に対する基準位置からの距離 right : 右方向に対する基準位置からの距離 54
position : relative; 30px 値がstaticである時の位置を基準位置とする。 適用 30px(top) 30px(margin) 30px(left) 55
position : absolute; 30px 上位階層の要素で直近のposition: static; でない要素を基準位置 とする。 適用 30px(top)
20px(margin) 30px(left) 56
position: fixed; 最初の表示位置はabsoluteと同様だが、画面上に固定される。 (スクロールしても位置が変わらない) 57
おしまい 次回は続けてCSSのプロパティです 58