Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Review the OOCSS

Review the OOCSS

CSS Talk Vol.01 の発表資料です。

Manabu Yasuda

October 24, 2016
Tweet

Other Decks in Technology

Transcript

  1. 02 Review the OOCSS ҆ా ֶ (yasuda manabu) גࣜձࣾ TAM

    ϚʔΫΞοϓΤϯδχΞ https://github.com/manabuyasuda @ Gaku0318
  2. 05 Review the OOCSS 01. CSSʹઃܭ͕ٻΊΒΕΔཧ༝ 02. ආ͚Δ΂͖CSS ʢΞϯνύλʔϯʣ 03.

    OOCSSͷ֓ཁ 04. OOCSSͷ2ͭͷݪଇ 05. ΦϒδΣΫτͷ໾ׂͱ෼཭͢Δཻ౓ ΞδΣϯμ
  3. 10 Review the OOCSS େ੾ͳ͜ͱ ɾCSS ͷઃܭख๏͸େ·͔ͳϧʔϧΛఆٛͯ͘͠ΕΔ΋ͷɻ ɾઃܭͷ࣮ફʹ͸খ͞ͳܾఆ͕ͨ͘͞Μ͋Δɻ ɾCSS ʹ͸ආ͚Δ΂͖Ξϯνύλʔϯ͕͋Δɻ

    ɾCSS ͸ΞϯνύλʔϯͷੵΈॏͶͰഁ୼͢Δɻ ɾສೳͳઃܭख๏͸ͳ͍ͷͰ࠷దͳख๏Λબ୒͢Δඞཁ͕͋Δɻ
  4. 17 Review the OOCSS #main {} #main #content {} #main

    #content p {} #main #content ul {} #main #content ul li {} #main #content ul li a {} CSS
  5. 18 Review the OOCSS IDηϨΫλ 2ͭͷࢦఆ͸Ҿ͖ܧ͕ͳ͍ͱ্ॻ͖Ͱ͖ͳ͍ɻ ηϨΫλ͕௕͍ͷͰݟ௨͠΋ѱ͍ɻ #main {} #main

    #content {} #main #content p {} #main #content ul {} #main #content ul li {} #main #content ul li a {} /* ௥Ճ */ #main #content .text {} CSS
  6. 21 Review the OOCSS a λάͷελΠϧΛΫϥε 1 ͭͰ্ॻ͖Ͱ͖ͳ͍ɻ <a href="#"

    class="link"> ϦϯΫ </a> a:link { color: red; } /* దԠ͞Εͳ͍ */ .link { color: blue; } CSS HTML
  7. 22 Review the OOCSS /* * 0,0,0,1ʢཁૉηϨΫλʣ * 0,0,1,0ʢΫϥεηϨΫλʣ *

    0,0,1,0ʢٖࣅΫϥεʣ */ /* 0,0,1,0 ʢٖࣅΫϥε + 0,0,0,1 ʢཁૉηϨΫλ */ a:link { color: red; } /* 0,0,1,0 ʢΫϥεηϨΫλ */ .link { color: blue; } CSS
  8. 24 Review the OOCSS .content h2 { position: relative; margin-bottom:

    25px; padding: 0.5em 0.8em; border-radius: 5px; color: #fff; font-size: 20px; font-weight: bold; background: crimson; } .content h2:after { content: ""; position: absolute; z-index: 1; bottom: -15px; left: 3em; margin-left: -15px; border: 15px solid transparent; border-top-color: crimson; border-bottom-width: 0; } CSS h2ݟग़͠
  9. 25 Review the OOCSS CSS h2ݟग़͠ h2ݟग़͠ .content .heading {

    padding: 0.5em; border: 0; /* Ϧηοτ */ border-bottom: 1px solid; border-left: 6px solid; border-radius: 0; /* Ϧηοτ */ color: #000; background-color: #fff; /* ্ॻ͖ */ } .content .heading:after { content: none; /* Ϧηοτ */ }
  10. 31 Review the OOCSS OOCSSͱ͸ ɾϖʔδ୯ҐͰ͸ͳ͘ɺΦϒδΣΫτ ʢ෦඼ʣ ୯Ґɻ ɾখ͘͞࡞ͬͯ૊Έ߹ΘͤΔ͜ͱͰϖʔδΛ࡞Δ ʢLegos

    firstʣ ɻ ɾجຊతʹΫϥεηϨΫλ͚ͩΛ࢖͍ɺ ϚϧνΫϥεͰࢦఆ͍ͯ͘͠ ʢৄࡉ౓Λ௿͘อͭʣ ɻ ɾΞϯνύλʔϯΛආ͚ΔϕετϓϥΫςΟεͷ ٧Ί߹Θͤɻ
  11. 32 Review the OOCSS ࢀߟϦϯΫ ɾstubbornella/oocss: Object Oriented CSS Framework

    ɾstubbornella/oocss-accessibility-guidelines: The accessibility guidelines used by the OOCSS open source project ɾObject Oriented CSS | SlideShare ɾWeb ੍࡞ऀͷͨΊͷ CSS ઃܭͷڭՊॻ
  12. 37 Review the OOCSS OOCSSͷ 2ͭͷݪଇ ᶃ ߏ଄ͱݟͨ໨Λ෼཭͢ΔʢSeparate Structure and

    Skinʣ ᶄ ίϯςφͱίϯςϯπΛ෼཭͢Δ ʢSeparate Container and Contentʣ
  13. 39 Review the OOCSS OOCSS͸ϚϧνΫϥεʢෳ਺ͷΫϥεΛࢦఆ͢Δ͜ͱʣ ͕લఏʹͳΔɻ ͦͯ͠ɺΫϥεͷ 1 ͭ 1

    ͭʹ໾ׂΛ΋ͨͤͯ෼཭͢Δɻ ͜ͷ ʮ໾ׂ͕ΫϥεΛ෼͚Δཻ౓ͷ୯Ґʯ ʹͳΔɻ ໾ׂͷ1ͭʹʮߏ଄ͱݟͨ໨ʯ͕͋Δɻ
  14. 43 Review the OOCSS .button { display: inline-block; padding: 0.75em;

    line-height: 1; text-align: center; text-decoration: none; } CSS ͦΕͧΕͷϘλϯΛ࡞ΔͨΊͷ ࠎ΍ے೑ʹͳ͍ͬͯΔཁૉΛ ʮߏ଄ʯ ͱݺͿɻ OOCSSͰ͸ ߏ଄ͱ͍͏໾ׂͰ෼཭͢Δɻ ࠓճ͸ .buttonͱ͍͏ΫϥεΛ࢖༻ɻ
  15. 44 Review the OOCSS .button-top { color: #fff; background-color: blue;

    } .button-more { color: #fff; background-color: orange; } .button-send { color: #fff; background-color: red; } CSS ಛ௃తͩͬͨ৭͸ɺ ʮݟͨ໨ʯ ͱ͍͏ ໾ׂͰɺ ͦΕͧΕผͷΫϥε΁ɻ ߏ଄Λ୲౰͢ΔΫϥεͷ໊લΛ Ҿ͖ܧ͙ͱؔ܎ੑΛࣔ͢͜ͱ͕Ͱ͖Δɻ
  16. 48 Review the OOCSS σϝϦοτ ɾCSS ͸γϯϓϧʹอͯΔ൓໘ɺ HTMLʹෳ਺ͷΫϥεΛ ࢦఆ͢ΔͷͰෳࡶʹͳΔɻ ɾখ͞ͳύʔπ͕ଟ͘ͳΔͷͰɺ

    ελΠϧΨΠυΛͭͬͯ͘ ૊Έ߹ΘͤΔύλʔϯΛڞ༗͢Δඞཁ͕͋Δɻ ɾ૊Έ߹Θͤͯ΋ׯব͠߹Θͳ͍ΦϒδΣΫ τΛ࡞Δͷʹ Ұఆͷ εΩϧ͕ඞཁɻ
  17. 58 Review the OOCSS #articleͱ͍͏৔ॴʹґଘ͍ͯ͠ΔͷͰ࢖͍ճ͢͜ͱ͕Ͱ͖ͳ͍ɻ /* Bad */ #article .button

    {} #article .button-primary {} /* Good */ .button {} .button-primary {} CSS
  18. 64 Review the OOCSS ͜ͷΑ͏ͳίʔυΛݟͨ͜ͱ͸͋Γ·ͤΜ͔ʁ <div class="container"> <div class="row"> <div

    class="col-md-8">.col-md-8</div> <div class="col-md-4">.col-md-4</div> </div> </div> HTML
  19. 65 Review the OOCSS BootstrapͷάϦουγεςϜͷίʔυʢҎ߱άϦου ΦϒδΣΫτͱݺͿʣ ɻ ͜Ε΋ίϯςφʹ͋ͨΔɻ <div class="container">

    <div class="row"> <div class="col-md-8">.col-md-8</div> <div class="col-md-4">.col-md-4</div> </div> </div> HTML
  20. 72 Review the OOCSS ͜͜Ͱ͸.gridͱ.grid-cellͱ͍͏Ϋϥε໊ʹ͢Δɻ <div class="grid"> <div class="grid-cell grid-cell--md-6">

    <img src="#" alt=""> </div> <div class="grid-cell grid-cell--md-6"> <h2> ݟग़͠ </h2> <p> ςΩετ </p> </div> </div> HTML
  21. 75 Review the OOCSS <div class="grid"> <div class="grid-cell grid-cell-md-6"> <img

    src="#" alt=""> </div> <div class="grid-cell grid-cell-md-6"> <h2> ݟग़͠ </h2> <p> ςΩετ </p> </div> </div> @media screen and (min-width: 768px) { .u-offset-top-md { /** * line-height ͕ 1.4 ͷ৔߹ : * (1.4 - 1) / 2 = 0.2em */ margin-top: -0.2em; } } HTML CSS
  22. 78 Review the OOCSS <div class="grid"> <div class="grid-cell grid-cell-md-6 u-mb

    u-mb0-md"><!-- ௥Ճ --> <img src="#" alt=""> </div> <div class="grid-cell grid-cell-md-6"> <h2 class="u-offset-top-md"> ݟग़͠ </h2> <p> ςΩετ </p> </div> </div> .u-mb { margin-bottom: 0.5rem; } @media screen and (min-width: 768px) { .u-mb0-md { margin-bottom: 0; } } HTML CSS
  23. 82 Review the OOCSS OOCSSͰ͸ʮߏ଄ͱݟͨ໨ʯ΍ʮίϯςφͱίϯςϯπʯ Ͱ෼཭͢Δɻ ͭ·Γɺ ໾ׂ΍ػೳͰΦϒδΣΫτΛ෼͚ͯɺ ૊Έ߹Θͤͯ࢖͏ͱ͍͏͜ͱɻ ઌ΄Ͳͷྫ΋ɺ.gridͱ͍͏൚༻తͳΦϒδΣΫ

    τͰ͸ͳ͘ɺ ʮը૾ͱςΩετ͕εϚϗͰ͸ॎʹɺλϒϨοτҎ߱Ͱ͸ ԣʹฒͿʯ ͱ͍͏۩ମతͳΦϒδΣΫτͷ .block-gridΛ ࡞ͬͨ΄͏͕มߋ͠΍͍͢ɻ
  24. 84 Review the OOCSS ػೳʹ੍ݶΛ͔͚Δཧ༝ ɾແݶʹ֦ு͍ͯ͘͜͠ͱ͸Ͱ͖ͳ͍ɻ ɾ֦ு͢Δ͝ͱʹෳࡶ͕͞૿͢ͷͰ࣮૷͕೉͘͠ͳΔɻ ʮػೳͷෳࡶ͞ ʷ ػೳͷ਺

    = ޻਺ʯʹ͸ͳΒͳ͍ɻ ɾ੍ݶΛ͔͚ͳ͚Ε͹ɺػೳ͚ͩͰͳ͘޻਺΋͔͔Γଓ͚Δɻ ɾόϦΤʔγϣϯ͕গͳ͍΄͏͕ӡ༻໘Ͱͷෛ୲͕গͳ͍ɻ