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

SMACSS

Max Kovalev
December 17, 2014

 SMACSS

PHP User Group #12 meetup

Max Kovalev

December 17, 2014
Tweet

More Decks by Max Kovalev

Other Decks in Programming

Transcript

  1. Типичные проблемы • Забудьте о масштабируемости • Бардак в структуре

    • Повторяющийся код • Лишние и неиспользуемые стили • ! i m p o r t a n t сплошь и рядом • ... 2
  2. Base b o d y { m a r g

    i n : 0 ; p a d d i n g : 0 ; } a { c o l o r : b l a c k ; } 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 0 6 . 0 7 . 9
  3. Major • Header • Footer • Sidebar • ... Tip

    > Единственные на странице, "l-" префикс 12
  4. Layout (Major) < b o d y c l a

    s s = " l - f l u i d - l a y o u t " > 14
  5. Module < a s i d e i d =

    " s i d e b a r " > < u l c l a s s = " l - s i d e b a r - l i s t " > < l i > < h 2 > T i t l e < / h 2 > < p > t e x t < / p > < / l i > < / u l > < / a s i d e > 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 0 6 . 0 7 . 0 8 . 16
  6. Module < u l c l a s s =

    " l - s i d e b a r - l i s t " > < l i c l a s s = " s i d e b a r - i t e m" > < h 2 c l a s s = " i t e m - t i t l e i t e m - t i t l e - n o r m a l" > T i t l e < / h 2 > < p > t e x t < / p > < / l i > < / u l > 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 0 6 . 17
  7. Module (css) . s i d e b a r

    - i t e m { } . s i d e b a r - i t e m - t i t l e { } . s i d e b a r - i t e m - n o r m a l { } Tip > Независимость от структуры 0 1 . 0 2 . 0 3 . 18
  8. State < d i v c l a s s

    = " m e s s a g e i s - w a r n i n g" > M e s s a g e t e x t < / d i v > Tip > Взаимодействие с js 0 1 . 0 2 . 0 3 . 21
  9. Theme < l i n k r e l =

    " s t y l e s h e e t " h r e f = " s t y l e . c s s " > < l i n k r e l = " s t y l e s h e e t " h r e f = "t h e m e . c s s" > Tip > Перезапись 0 1 . 0 2 . 23
  10. Theme < d i v c l a s s

    = " s o r t i n g - w i d g e t t h e m e - s o r t i n g" > c o n t e n t < / d i v > 0 1 . 0 2 . 0 3 . 24
  11. / * s t y l e . c s

    s * / . s o r t i n g - w i d g e t { c o l o r : r e d ; } / * t h e m e . c s s * / . t h e m e - s o r t i n g { c o l o r : y e l l o w; } 0 1 . 0 2 . 0 3 . 0 4 . 0 1 . 0 2 . 0 3 . 0 4 . 25
  12. Улучшения • Минимизация селекторов • # s i d e

    b a r d i v u l > .class > ul || .list • Использование препроцессоров • SASS, LESS, Stylus, ... • Работает с любым html (4,5) • Дополнительные уровни семантики • Уменьшение специфичности структуры 26
  13. Это винтик, это отвертка, винтик можно крутить отверткой. Это всякие

    железяки, их можно соединять винтиками, закрутив отверткой. Еще бывают гайки и шестеренки. Задание: Постройте синхрофазотрон. “
  14. Структура (style.scss) / / s o m e s e

    t t i n g s @ i m p o r t " c o m p a s s / r e s e t " ; @ i m p o r t " c o m p a s s " ; @ i m p o r t "c o m p o n e n t s / a r t i c l e" ; 0 1 . 0 2 . 0 3 . 0 4 . 33