Ответы пользователя по тегу CSS
  • Как бы вы поступили на моем месте бы с заказом?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    На вашем месте я бы отказался от заказа но сверстал бы. Или обсудил вопрос сроков и вероятность неудачи (долго и могу не справиться, но если все получится - оплатить, а если нет... на нет и суда нет).

    В любом случае попробуйте закончить. Хотя бы верстку сделать а после отдать каким знакомым на ревью (у кого опыта побольше).
    Ответ написан
    Комментировать
  • Как быстро продвинуться в верстке вэб сайтов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    БЭМ, less/sass/stylys, jade/haml, автоматизация рутины (gulp, spritesmith и т.д.).
    Ответ написан
    Комментировать
  • Как прижать футер к низу?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    philipwalton.github.io/solved-by-flexbox/demos/sti...

    ну или как альтернатива - galengidman.com/2014/03/25/responsive-flexible-hei...

    варианты с position:absolute вчерашний день.
    Ответ написан
    5 комментариев
  • Самый лучший способ адаптивной верстки?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я, кнешн, плохо знаю этот фреймворк

    Так зачем вы его используете?

    А еще meta viewport плохо знаете....
    Ответ написан
    6 комментариев
  • Как добавить (создать) псевдоэлемент:after с помощью jQuery?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Никак. Только вставив стили в тег style. У вас нет доступа из JS к псевдоэлементам. Потому они так и называются.
    Ответ написан
    Комментировать
  • Как разбить элементы на колонки?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Сделайте директиву и внутри разрезайте нормально. Есть правда такой момент что если вы разрешите коллекцию на 3 массива, то придется отслеживать изменения коллекции и мэпить как-то. С другой стороны, можно воспользоваться фильтром limit внутри директивы.
    Ответ написан
    Комментировать
  • Что такое Less и Sass?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Лень двигатель прогресса. Хороший пример - принцип DRY - Don't repeat yourself. Я весьма подозреваю что вы стараетесь соблюдать этот принцип когда делаете макеты или чем вы там занимаетесь. Так же я весьма уверен что вы хотя бы пытались чуть автоматизировать рутину своей повседневной работы. Так же у вас могли быть ситуации когда вы переиспользовали какие-то элементы. Мало ли.

    Так вот... CSS это тупая таблица стилей. Селектор и стили, ничего сверх умного тут придумать нельзя. Лет 5-10 назад было довольно модно держать один мегажирный CSS файл на 10К+ строк и радоваться жизни внося все больше изменений и т.д. Соответственно даже если вы соблюдаете всякие правила модульной верстки и все такое, у вас возникает несколько проблем:
    • организация стилей, то есть держать все в одном файле не удобно особенно когда проект длится годами
    • Дублирование стилей и селекторов. По мере развития проекта появляются какие-то снипиты которые можно реюзать. Так же у вас может появиться масса однообразных селекторов отличающихся лишь немного. При модульных подходах вложенности редко имеет место быть но все же имеет. Но не будем забывать что большинство фигачит селекторы просто так. В итоге если мы переместили блок или переименовали класс какого-то блока нужно отредактировать еще массу селекторов.
    • Привязка размеров и параметров к другим стилям, например у вас в стилях задана ширина блока, от нее зависят другие параметры, отступы для других блоков и т.д. Да, в css3 появился calc для этого но это было относительно недавно и только с недавних пор можно почти без опаски использовать эту штуку.
    • Таблицы стилей, как и HTML ориентированы на удобный разбор этого добра машиной, но не человеком. Человек же существо ленивое и как-то вот лень лишний раз скобку поставить или точку с запятой. Просто лень.


    Есть так же хорошее правило, или идея если хотите.... Если код можно сгенерить - его лучше сгенерить. То есть для решения всех выше перечисленных проблем придумали препроцессоры. Они как бы были и раньше всех этих scss/less/stylus но как-то не решали всех проблем и т.д. Что в итоге было предложено (перечисляю в том же порядке что и в списке выше).

    • У CSS есть такая штука как @ import. Но не очень круто импортировать сотню стилей в продакшене. Стоит сделать так что бы все стили были склеены при сборке проекта. Эта идея в итоге развилась и если разработчик использует это дело правильно, можно зайти в любой файл со стилями и увидеть список всего от чего зависят эти стили. Какие стили подключаются и т.д. Причем один файл с зависимостями может быть подключен в нескольких файлах а препроцессор сам разберется как и куда все вставлять сгенерив максимально оптимизированный по структуре файл. А разработчик получил четкую структуру файлов и возможность быстро найти где что и от чего зависит.
    • С селекторами проблему предложили решить наиболее логичным вариантом. Если у нас есть вложенные селекторы, то имеет смысл определять их внутри блока этого селектора. Это существенно упрощает поддержку стилей. Так же для управления снипитами и прочим добавили миксины - эдакие параметризованные или нет функции которые выплевывают шматок CSS. До появления штук вроде autoprefixer это был единственный способ писать поддерживаемые стили, использовать плюшки CSS3 и вообще новые плюшки и не сойти с ума от префиксов. Префиксы это только пример, там могут быть самые разные штуки позволяющие грамотно производить реюз стилей
    • Проблему зависимостей значений стилей друг от друга решили... собственно самым очевидным способом - переменные. Это удобно, легко поддерживать и в умелых руках это мощный инструмент. Нужно поменять базовые цвета - не нужно лазить по 100500 блоков и править значения руками, можно поправить переменные и все будет хорошо.
    • Насколько я помню SCSS/LESS не стремились решить эту проблему. Какие-то решения образовывались сами собой с течением времени. В плане минимализма и выразительности пожалуй сейчас самая крутая штука это stylus.


    Что в итоге произошло. В один прекрасный момент какие-то там рубисты придумали SCSS (они вообще не любят все что не в стиле ruby в плане минимализма и выразительности). Затем чуваки подумали и сказали, SCSS это круто но почему-то они используют синтаксис знакомый именно Ruby разработчикам а не обычные для CSS конструкции. В итоге реализовали LESS, причем его уже реализовали на javascript, что с наличием node.js позволило это все добро еще на одной платформе собирать. А так как под эту платформу и так плодили препроцессоры оно удачно вписалось.

    Далее уже шли какие-то модификации дальнейшие, вроде того же Stylus, где синтаксис упростили просто до нельзя.

    Личное мнение. На сегодняшний день я не вижу смысла использовать чистый CSS хоть на малых хоть на больших проектах. Вот вообще никакого.
    Ответ написан
    3 комментария
  • Перерисовывает ли AngularJS DOM?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    чта? фильтры дергаются на каждый $digest цикл. Если фильтр меняет значение, то меняется DOM. Меняется DOM - вне зависимости от того каким образом он меняется, выполняется перерисовка страницы или ее части.

    Либо уточните вопрос. Подозреваю что вас интересуют случаи комбинации ngRepeat и фильтров для коллекций. Если вместо "перерисовывания" вы имеете в виду создание нод - то ngRepeat старается использовать уже существующие ноды. Уточните.
    Ответ написан
  • Существует ли линтер для.sass файлов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    scss-lint 0.27.0 was the last version to support Sass 3.3

    Насколько я понимаю версии на JS нет.
    Ответ написан
  • Стоит ли оптимизировать сайт склеиванием всех файлов в один?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Если сайт состоит из одной страницы в этом... определенный смысл конечно же есть... если бы браузер умел загружать только один ресурс одновременно.

    С другой стороны, современные браузеры спокойно справляются с паралельной загрузкой ресурсов страницы. То есть чисто теоритически время необходимое для полной отрисовки страницы и инициализации приложения будет сильно меньше, если все ресурсы будут грузиться паралельно и без блокировок.

    Так что лучше держать скрипты и стили отдельно, и инлайнить только то, что на самом деле важно. Например above-the-fold стили или любые другие критичные стили. Из скриптов заинлайнить имеет смысл то, что нужно для инициализации приложения. Скажем загрузчик модулей или что-либо подобное. Но не все приложение.
    Ответ написан
    Комментировать
  • Какой сервис, программа или плагин для webstorm может автоматически экспортировать структуру html в css?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Госпади какой ужас... Пощадите тех кто будет эту верстку потом поддерживать. Почитайте про модульный CSS, BEM и т.д.

    В селекторах вида body .wrapper нет ровным счетом никакого смысла.

    Но если вы хотите, рекомендую вам перейти на jade вместо html и stylus вместо less, это почти полностью решит вашу проблему.

    Ваш пример на Jade
    body
      .wrapper
         .left-box
         .right-box
           p
              span


    и Stylus (color взял просто так...)
    body
      color: #fff;
      .wrapper
         color: #f00;
         .left-box
             color: #0f0;
         .right-box
           color: #ff0;
           p
               color: #f0f;
             span
               color: #34f;


    Как видите - мы просто копируем шаблон jade и... все

    Но еще раз хочу заметить - вообще это все очень плохо. Даже less вам не поможет в этом случае нормально организовать структуру стилей. Не соблюдается семантика и т.д. Приоритеты стилей в разнобой - сложно поддерживать...
    Ответ написан
    Комментировать
  • Как встретить новый год без мыслей о HTML, CSS, PHP, jQuery, etc?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да дались вам эти праздники... можно же покодить! Вот если б мы дожили до нового галактического года - тут можно было бы и выпить.
    Ответ написан
  • Как выровнять пагинацию по центру без известной ширины?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    display: inline-block и центрируем все через text-align.
    codepen.io/anon/pen/QwGWye

    Есть так же вариации с margin: auto для ul а так же с flexbox но это уже от задачи зависит.
    Ответ написан
    Комментировать
  • Почему хром не кеширует/криво/несвоевременно обрабатывает css?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Template not found: /templates/default/static-main.tpl

    Удачи вам
    Ответ написан
  • Верстать ли Pixel perfect?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    медленно и все-равно не получится (сглаживание шрифтов и все такое).
    Ответ написан
  • Gulp как настроить что б он создавал и конкатенируемую версию и минифицируемую?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    gulp.dest можно использовать несколько раз... как бы намекаю... + gulp.rename
    Ответ написан
    Комментировать
  • Кроссбраузерный чёрно-белый фильтр на CSS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    demosthenes.info/blog/532/Convert-Images-To-Black-...

    И читаем примичание по поводу IE10+
    Ответ написан
    Комментировать
  • В опере transition для :after и :before не поддерживается?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Комментировать
  • Flexbox или Bootstrap ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    без использования внешних библиотек и кучи медиа запросов

    Смотря что делать.

    Подвох в кросбраузерности. Если вам плевать на IE старше 10-ки то смело используйте flexbox-ы или решения на базе оных
    philipwalton.github.io/solved-by-flexbox

    Но если придется суппортить старые IE то вы будете плакать... Полифилы типа flexie/reflexie довольно сырые (flexie использовать можно но оно поддерживает только очень старый синтаксис и без префиксов), а до reflexie я пока не добрался, но это в планах. В любом случае использовать эти полифилы для сложных не статичных лэйаутов лучше не стоит... Всегда есть display: table.

    Twitter bootstrap же я лично предпочитаю использовать тогда, когда лень придумывать свой UI. Так же существует масса других фреймворков и библиотек.

    Единственное что я вам порекомендую - использование препроцессоров и решений на базе оных.
    Ответ написан
    3 комментария
  • Что мне делать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    futer


    colintoh.com/blog/display-table-anti-hero
    philipwalton.github.io/solved-by-flexbox/demos/hol...

    И хватит страдать с этими float-ами.
    Ответ написан
    Комментировать