Slide 1

Slide 1 text

Introduction to CSS Architecture in ৽ଔࣾ಺ษڧձ

Slide 2

Slide 2 text

ࣗݾ঺հ • Twitter: @morishitter_ • GitHub: morishitter • εϓϥτΡʔϯ: ϥϯΫ20 • χϯςϯυʔωοτϫʔΫID: CSS0830

Slide 3

Slide 3 text

໨࣍ • CSSͷ໰୊఺ • طଘͷCSSઃܭख๏ • CSSઃܭͷຊ࣭

Slide 4

Slide 4 text

CSSͷ໰୊఺

Slide 5

Slide 5 text

CSS is γϯϓϧ article h1 { font-size: 20px; padding-bottom: 5px; border-bottom: solid 1px #ccc; margin-bottom: 10px; }

Slide 6

Slide 6 text

γϯϓϧ ≒ ؆୯

Slide 7

Slide 7 text

article h1 { font-size: 20px; padding-bottom: 5px; border-bottom: solid 1px #ccc; margin-bottom: 10px; } article h1 + p.lead { font-size: 14px; color: #ddd; line-height: 1.5; }

Slide 8

Slide 8 text

article h1 { font-size: 20px; padding-bottom: 5px; border-bottom: solid 1px #ccc; margin-bottom: 10px; } article h1 + p.lead { font-size: 14px; color: #ddd; line-height: 1.5; } #header { }

Slide 9

Slide 9 text

article h1 { font-size: 20px; padding-bottom: 5px; border-bottom: solid 1px #ccc; margin-bottom: 10px; } article h1 + p.lead { font-size: 14px; color: #ddd; line-height: 1.5; } #header { } #header > img#logo{ } ul > list.item { } .menu { } .menu .nav { } #sidebar { } #sidebar .widget { }

Slide 10

Slide 10 text

#header { } #header > img#logo{ } ul > list.item { } #menu { } #menu .nav { } #sidebar { } #sidebar .widget { } body { } .container{ } .container > h2.title { } .col-md-5 { } .row .col-md-5 { } .landing > h1 { } .widget .title { } #sidebar > img#logo{ } ul > list#logo { } #article { } #article .title { } footer small { } footer small .info { }

Slide 11

Slide 11 text

!important;

Slide 12

Slide 12 text

ϧʔϧηοτͷӨڹൣғ͕ Θ͔Βͳ͘ͳΔ

Slide 13

Slide 13 text

؆୯ ≒ յΕ΍͍͢

Slide 14

Slide 14 text

CSSͷ໰୊఺ʢٕज़తଆ໘ʣ • ߏจ͕ශऑ • ϧʔϧηοτʹείʔϓ͕ͳ͍ • શͯͷϧʔϧηοτ͕άϩʔόϧఆٛ

Slide 15

Slide 15 text

CSSͷ໰୊఺ʢӡ༻తଆ໘ʣ • σβΠϯ͕มΘΒͳ͍WebαΠτ͸ͳ͍ • ৔౰ͨΓతͳमਖ਼͕܁Γฦ͞ΕΔ

Slide 16

Slide 16 text

CSSͷ໰୊఺ʢࣾձతଆ໘ʣ • CSSᢞΊΒΕ͗͢ • ϓϩάϥϚʹ͸όΧʹ͞ΕɺσβΠφʔ͕ࡶʹॻ͘ • ยखؒCSS • ίʔυͷైḤͳ؅ཧ

Slide 17

Slide 17 text

CSS ͸ͨͩWebͷϏδϡΞϧσβΠϯ ΛදݱͰ͖Ε͹͍͍΋ͷͰ͸ͳ͍

Slide 18

Slide 18 text

WebαΠτ͸ΞʔτͰ͸ͳ͘ ৘ใγεςϜ

Slide 19

Slide 19 text

CSS ΋ιϑτ΢ΣΞͷҰ෦ͱͯ͠ อक͞ΕΔ΂͖ͩ͠ ϦϑΝΫλϦϯάͷର৅

Slide 20

Slide 20 text

CSS ͪΌΜͱॻ͜͏ͳ

Slide 21

Slide 21 text

طଘͷCSSઃܭख๏

Slide 22

Slide 22 text

طଘͷCSSઃܭख๏ • OOCSS • SMACSS • BEM

Slide 23

Slide 23 text

OOCSS

Slide 24

Slide 24 text

OOCSS • Object Oriented CSS (by Nicole Sullivan) • ʮߏ଄ͱݟͨ໨ͷ෼཭ʯ • ʮίϯςφͱίϯςϯπͷ෼཭ʯ • CSSઃܭͷϕʔεͱͳΔ֓೦ • ଟ͘ͷCSSϑϨʔϜϫʔΫͰ࠾༻

Slide 25

Slide 25 text

OOCSS WebϖʔδΛϨΰͷΑ͏ʹߟ͑Δ

Slide 26

Slide 26 text

OOCSS .btn { property: value; } /* Decoration */ .btn-danger { } .btn-success { } /* Layout */ .btn-large { } .btn-small { }

Slide 27

Slide 27 text

OOCSS Submit

Slide 28

Slide 28 text

OOCSS Submit Delete

Slide 29

Slide 29 text

SMACSS

Slide 30

Slide 30 text

SMACSS • Scalable and Modular Architecture for CSS • ϕʔε͸OOCSS • OOCSS + ໋໊نଇ Έ͍ͨͳ΋ͷ

Slide 31

Slide 31 text

SMACSS • CSS ͷΧςΰϥΠζ • Base • Layout • Module • State • Theme

Slide 32

Slide 32 text

Base • ཁૉͦͷ΋ͷͷσϑΥϧτͷελΠϧ • CSSϦηοτ͕͜Ε body { background: white; } p { margin-bottom: .5rem; }

Slide 33

Slide 33 text

Layout • ϖʔδΛΤϦΞ͝ͱʹ෼ׂ .l-header { margin-bottom: 20px; } .l-footer { border-top: 1px solid gray; } .l-main { float: left; width: 80%; }

Slide 34

Slide 34 text

Module • ࠶ར༻Մೳͳύʔπ • Module͸Layoutͷதʹ഑ஔ͞ΕΔ • ผͷLayoutͰ΋࠶ར༻Ͱ͖ΔΑ͏ʹ׬શʹ ಠཱ

Slide 35

Slide 35 text

Module

Slide 36

Slide 36 text

State • Layout΍Moduleͷಛఆͷঢ়ଶΛද͢ .is-hidden { display: none; } .is-error { color: red; }

Slide 37

Slide 37 text

Theme • ίϯϙʔωϯτͷ૷০ .theme-border { border-color: #ccc; } .theme-background { background-color: #eee; }

Slide 38

Slide 38 text

BEM

Slide 39

Slide 39 text

BEM • Block, Element, Modifier • Yandex੡

Slide 40

Slide 40 text

BEM (Block) • ̍ͭͷίϯϙʔωϯτͷ·ͱ·Γ

Slide 41

Slide 41 text

Element (BEM) • BlockΛߏ੒͢Δཁૉ • ΞϯμʔείΞ2ͭ (__) Λ࢖͏͜ͱ͕ଟ͍ • Block__Element

Slide 42

Slide 42 text

BEM (Modifier) • Block ·ͨ͸ ElementͷόϦΤʔγϣϯ • SMACSSͰ͍͏StateͱTheme • ϋΠϑϯ2ͭ (--) Λ࢖͏͜ͱ͕ଟ͍ (MindBEMding) • Block—Modifier, Element--Modifier

Slide 43

Slide 43 text

BEM

Slide 44

Slide 44 text

ͦͷଞ • ACSS • MCSS • FLOCSS

Slide 45

Slide 45 text

Web੍࡞ऀͷͨΊͷ CSSઃܭͷڭՊॻ

Slide 46

Slide 46 text

ཁ͢Δʹ

Slide 47

Slide 47 text

CSSͷϧʔϧηοτʹ͸ είʔϓ͕ͳ͍͔Β໋໊نଇ ͰͳΜͱ͔͠Α͏

Slide 48

Slide 48 text

CSSઃܭͷຊ࣭

Slide 49

Slide 49 text

ϚϧνΫϥε ͱ γϯάϧΫϥε • ϚϧνΫϥεઃܭɿHTMLͷclassଐੑʹෳ਺ͷ஋ Λ૊Έ߹ΘͤͯελΠϧΛ౰ͯΔ (OOCSS) • γϯάϧΫϥεઃܭɿHTMLͷclassଐੑʹ1ͭͷ஋ ͰελΠϧΛ౰ͯΔ (BEM)

Slide 50

Slide 50 text

ϚϧνΫϥεઃܭ Submit

Slide 51

Slide 51 text

ϚϧνΫϥεઃܭͷϝϦοτ • ϧʔϧηοτͷ࠶ར༻ • ৑௕Ͱͳ͘ͳΓϑΝΠϧαΠζ͕খ͘͞ͳΔ

Slide 52

Slide 52 text

ϚϧνΫϥεઃܭͷ໰୊఺ • ϧʔϧηοτʹڞ௨͢ΔϓϩύςΟ͕͋ͬͨ Β্ॻ͖͞ΕΔ • ϧʔϧηοτؒʹ҉໧ͷґଘؔ܎͕Ͱ͖Δ • ෼ް͍ελΠϧΨΠυ͕ඞཁ • HTMLͷηϚϯςΟοΫεΛଛͶΔ

Slide 53

Slide 53 text

γϯάϧΫϥεઃܭ Submit Submit

Slide 54

Slide 54 text

γϯάϧΫϥεઃܭͷϝϦοτ • 1classଐੑʹରͯ͠1ϧʔϧηοτͳͷͰγϯ ϓϧ • ίϯςϯπͷ಺༰ʹదͨ͠ηϚϯςΟοΫͳ ໊લ

Slide 55

Slide 55 text

γϯάϧΫϥεઃܭͷ໰୊఺ • 1ͭͷϧʔϧηοτ͕େ͖͘ͳΓɺهड़͕৑௕ ʹͳΔ • ϧʔϧηοτͷ࠶ར༻ੑ͕௿͍ • ϑΝΠϧαΠζͷංେԽ • αΠτύϑΥʔϚϯεͷ௿Լ

Slide 56

Slide 56 text

γϯάϧΫϥεઃܭͱ ϚϧνΫϥεઃܭͷ ͍͍ͱ͜औΓΛͨ͠ ͍͖͞ΐ͏ͷઃܭख๏ by @morishitter_

Slide 57

Slide 57 text

CSSઃܭͷຊ࣭͸

Slide 58

Slide 58 text

ηϨΫλͷ໋໊نଇͰ͸ͳ͘

Slide 59

Slide 59 text

ϧʔϧηοτͷ෼ׂཻ౓

Slide 60

Slide 60 text

ཧ૝తͳ CSS ͱ͸Կ͔

Slide 61

Slide 61 text

CSS ʹݶͬͨ࿩Ͱ͸ͳ͍

Slide 62

Slide 62 text

ࠓࣗ෼͕࢖͍ͬͯΔٕज़ɾಓ۩͸ ࣗ෼ʹͱͬͯҰମͲ͏͍͏ଘࡏͳͷ͔

Slide 63

Slide 63 text

࣌ʹ͸ͦͷٕज़ͷࢥ૝͑͞΋͍ٙ ΑΓྑ͍΋ͷΛ࡞Γ͍ͨ

Slide 64

Slide 64 text

ಓ۩ʹৼΓճ͞ΕΔͳ ղܾ͍ͨ͠໰୊͸͍ͭ΋ಉ͡

Slide 65

Slide 65 text

શମΛ၆ᛌ͠ ຊ࣭ΛݟۃΊΔ

Slide 66

Slide 66 text

Thanks :D Any Questions? @morishitter_