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

#6 ScssとCompass 再入門

sekaie
September 11, 2015
930

#6 ScssとCompass 再入門

sekaie

September 11, 2015
Tweet

Transcript

  1. 4BTTͱ 4DTTʢ4BTTZ$44ʣͷ ҧ͍͸ ʁʁ ެࣜαΠτɿ
 IUUQTBTTMBOHDPNEPDVNFOUBUJPOpMF4"44@3&'&3&/$&IUNMTZOUBY
 
 ߏจͷҧ͍
 ɾ4DTT
 $44ͷߏจΛ֦ுͨ͠΋ͷ


    ֦ுࢠ͸TDTTΛ࢖͍·͢ɻ ɾ4BTT
 ݹ͍ߏจͰΠϯσϯτߏจͱͯ͠஌ΒΕ͍ͯΔ΋ͷͰ͢ɻ\^ͳͲ ͸࢖Θͳ͍ɻ
 ֦ுࢠ͸TBTTΛ࢖͍·͢ɻ
  2. body
 color: #000 TBTT TDTT body {
 color: #000;
 }

    ೾ׅހʨʩɺηϛίϩϯʀ ɹɹɹɹɹෆཁɹɹɹɹɹɹɹɹɹɹɹɹඞཁ ɹɹɹɹɹɹɹɹ!NJYJO  !JODMVEF ೾ׅހʨʩɺηϛίϩϯʀ
  3. Variablesม਺ TDTT DTT $font-stack: Helvetica, sans- serif; $primary-color: #333; body

    { font: 100% $font-stack; color: $primary-color; } body { font: 100% Helvetica, sans- serif; color: #333; }
  4. Variablesม਺ TDTT DTT $font-stack: Helvetica, sans-serif; $primary-color: #333; body {

    font: 100% $font-stack; color: $primary-color; } body { font: 100% Helvetica, sans-serif; color: #333; } ม਺ͷఆٛ ม਺ͷݺͼग़͠
  5. NestingೖΕࢠ TDTT DTT nav { ul { margin: 0; padding:

    0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } } nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; }
  6. NestingೖΕࢠ TDTT DTT nav { ul { margin: 0; padding:

    0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } } nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; } ೖΕࢠ
  7. NestingೖΕࢠ਌ͷࢀর TDTT DTT nav { ul { margin: 0; padding:

    0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; &:hover { text-decoration: underline; } } } nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; } nav a:hover {
 text-decoration: underline; }
  8. NestingೖΕࢠ਌ͷࢀর TDTT DTT nav { ul { margin: 0; padding:

    0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; &:hover { text-decoration: underline; } } } nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; } nav a:hover {
 text-decoration: underline; } ਌ͷࢀর
  9. !JNQPSUσΟϨΫςΟϒͰಡΈࠐΈ·͢ɻ
 ʮ@ʯ֦ுࢠTDTTͷهड़ೖΓ·ͤΜɻ ImportΠϯϙʔτ TDTT DTT // _reset.scss html, body, ul,

    ol { margin: 0; padding: 0; } // base.scss @import 'reset'; body { font: 100% Helvetica, sans-serif; background-color: #efefef; } html, body, ul, ol { margin: 0; padding: 0; } body { font: 100% Helvetica, sans-serif; background-color: #efefef; }
  10. !JNQPSUσΟϨΫςΟϒͰಡΈࠐΈ·͢ɻ
 ʮ@ʯ֦ுࢠTDTTͷهड़ೖΓ·ͤΜɻ ImportΠϯϙʔτ TDTT DTT // _reset.scss html, body, ul,

    ol { margin: 0; padding: 0; } // base.scss @import 'reset'; body { font: 100% Helvetica, sans-serif; background-color: #efefef; } html, body, ul, ol { margin: 0; padding: 0; } body { font: 100% Helvetica, sans-serif; background-color: #efefef; } ੜ੒͞Εͳ͍ CBTFDTT CBTFTDTT
  11. ϛοΫεΠϯͰ͍͔ͭ͘ͷελΠϧఆٛΛάϧʔϐϯά͓͖ͯ͠ݺͼग़͢͜ͱ͕Ͱ͖· ͢ɻ
 !NJYJOϛοΫεΠϯ໊ ม਺ \^
 ݺͼग़͠ˠɹ!JODMVEFϛοΫεΠϯ໊ QY  MixinϛοΫεΠϯ TDTT

    DTT @mixin border-radius($radius) { -webkit-border-radius: $radius; -moz-border-radius: $radius; -ms-border-radius: $radius; border-radius: $radius; } .box { @include border-radius(10px); } .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px; }
  12. ϛοΫεΠϯͰ͍͔ͭ͘ͷελΠϧఆٛΛάϧʔϐϯά͓͖ͯ͠ݺͼग़͢͜ͱ͕Ͱ͖· ͢ɻ
 !NJYJOϛοΫεΠϯ໊ ม਺ \^
 ݺͼग़͠ˠɹ!JODMVEFϛοΫεΠϯ໊ QY  MixinϛοΫεΠϯ TDTT

    DTT @mixin border-radius($radius) { -webkit-border-radius: $radius; -moz-border-radius: $radius; -ms-border-radius: $radius; border-radius: $radius; } .box { @include border-radius(10px); } .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px; } ελΠϧͷఆٛ ݺͼͩ͠ ม਺΋౉ͤΔ ݺͼग़͠ઌͰల։͞ΕΔ
 Ҿ਺΋࢖͑Δ
  13. !FYUFOEΛ࢖͏͜ͱʹΑͬͯDTTϓϩύςΟʔΛଞͷηϨΫλʔͰ ܧঝ͢Δ͜ͱ͕Ͱ͖·͢ɻ Extend/Inheritanceܧঝ TDTT DTT .message { border: 1px solid

    #ccc; padding: 10px; color: #333; } .success { @extend .message; border-color: green; } .error { @extend .message; border-color: red; } .warning { @extend .message; border-color: yellow; } .message, .success, .error, .warning { border: 1px solid #cccccc; padding: 10px; color: #333; } .success { border-color: green; } .error { border-color: red; } .warning { border-color: yellow; }
  14. !FYUFOEΛ࢖͏͜ͱʹΑͬͯDTTϓϩύςΟʔΛଞͷηϨΫλʔͰ ܧঝ͢Δ͜ͱ͕Ͱ͖·͢ɻ Extend/Inheritanceܧঝ TDTT DTT .message { border: 1px solid

    #ccc; padding: 10px; color: #333; } .success { @extend .message; border-color: green; } .error { @extend .message; border-color: red; } .warning { @extend .message; border-color: yellow; } .message, .success, .error, .warning { border: 1px solid #cccccc; padding: 10px; color: #333; } .success { border-color: green; } .error { border-color: red; } .warning { border-color: yellow; } ελΠϧͷఆٛ ܧঝݩʹηϨΫλ͕௥Ճ͞ΕΔ
  15. !FYUFOEΛ࢖͏͜ͱʹΑͬͯDTTϓϩύςΟʔΛଞͷηϨΫλʔͰ ܧঝ͢Δ͜ͱ͕Ͱ͖·͢ɻ Extend/InheritanceܧঝϓϨʔεϗϧμʔ TDTT DTT %message { border: 1px solid

    #ccc; padding: 10px; color: #333; } .success { @extend %message; border-color: green; } .error { @extend %message; border-color: red; } .warning { @extend %message; border-color: yellow; } .success, .error, .warning { border: 1px solid #cccccc; padding: 10px; color: #333; } .success { border-color: green; } .error { border-color: red; } .warning { border-color: yellow; }
  16. !FYUFOEΛ࢖͏͜ͱʹΑͬͯDTTϓϩύςΟʔΛଞͷηϨΫλʔͰ ܧঝ͢Δ͜ͱ͕Ͱ͖·͢ɻ Extend/InheritanceܧঝϓϨʔεϗϧμʔ TDTT DTT %message { border: 1px solid

    #ccc; padding: 10px; color: #333; } .success { @extend %message; border-color: green; } .error { @extend %message; border-color: red; } .warning { @extend %message; border-color: yellow; } .success, .error, .warning { border: 1px solid #cccccc; padding: 10px; color: #333; } .success { border-color: green; } .error { border-color: red; } .warning { border-color: yellow; } ελΠϧͷఆٛ DTTʹ͸ग़ྗ͞Εͳ͍
  17.    BOE͕࢖͑·͢ɻ Operatorsԋࢉࢠ TDTT DTT .container { width:

    100%; } article[role="main"] { float: left; width: 600px / 960px * 100%; } aside[role="complimentary"] { float: right; width: 300px / 960px * 100%; } .container { width: 100%; } article[role="main"] { float: left; width: 62.5%; } aside[role="complimentary"] { float: right; width: 31.25%; }
  18. DPOHJHSC
 TBTT
 TUZMFTIFFUT # Require any additional compass plugins here.

    # Set this to the root of your project when deployed: http_path = "/" css_dir = "css" sass_dir = "scss" images_dir = "img" javascripts_dir = "js" cache = false # You can select your preferred output style here (can be
  19. # Require any additional compass plugins here. # Set this

    to the root of your project when deployed: http_path = "/" css_dir = "css" sass_dir = "scss" images_dir = "img" javascripts_dir = "js" cache = false # You can select your preferred output style here (can be overridden via the command line): # output_style = :expanded or :nested or :compact or :compressed output_style = :expanded # To enable relative paths to assets via compass helper functions. output_style = :expanded or :nested or :compact or :compressed expanded nested compact compressed
  20. # Require any additional compass plugins here. # Set this

    to the root of your project when deployed: http_path = "/" css_dir = "css" sass_dir = "scss" images_dir = "img" javascripts_dir = "js" cache = false # You can select your preferred output style here (can be overridden via the command line): # output_style = :expanded or :nested or :compact or :compressed output_style = :expanded # To enable relative paths to assets via compass helper functions. line_comments = false or true line_comments = true
  21. .box-sizing-example { background: red; padding: 20px; border: 10px solid green;

    margin: 20px; width: 200px; }  DPOUFOUCPY\ !JODMVEFCPYTJ[JOH DPOUFOUCPY  ^  CPSEFSCPY\ !JODMVEFCPYTJ[JOH CPSEFSCPY  ^ TDTT
  22. .box-sizing-example { background: red; padding: 20px; border: 10px solid green;

    margin: 20px; width: 200px; } #content-box { -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; } #border-box { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } compiled DTT