Ответы пользователя по тегу CSS
  • У меня не первый раз first-child в Brackets просто не работает, может у кого-то тоже?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Вы просто не понимаете что такое :first-child. Вот вам пример для размышлений. А в вашем случае нужно использовать :first-of-type.
    Ответ написан
    Комментировать
  • Как поставить 2 цвета в placeholder?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Можно использовать label - с его стилизацией проблем не будет, а при фокусе на input его поднимать/уменьшать/убирать.
    Ответ написан
    Комментировать
  • Code review верстки новичка + вопросы?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Нужна конструктивная критика

    Ну давайте покритикуем... постараюсь все аргументировать.

    Начнем не с кода, а с юзабилити так сказать: есть люди, которые используют tab для перемещения по странице. Это факт. В вашем случае получается, что в верхнем меню перемещаться можно только по словам (но не по иконкам), а по остальной странице - вообще нельзя. Т.е. формально перемещение идет, но ничего не выделяется и совершенно не понятно где мы находимся. Имеет смысл добавить для focusable-елементов стили для :focus.

    Второе - при уменьшении экрана в некоторых местах надписи начинают наезжать (несильно, но глаз режет) друг на друга. Возможно вам стоит почитать статью про изменение размера шрифта в зависимости от размера экрана - иногда это очень полезно.

    Ну а теперь перейдем собственно к коду. Скриптов у вас немного, поэтому буду говорить про CSS. Вопрос: у вас css файл на 2606 строк - вы пишете все в нем? Если да - вам стоит посмотреть в сторону систем сборки (grunt / gulp) - имеет смысл отдельные компоненты делать в отдельных файлах, а затем это все склеивать. Так проще ориентироваться в происходящем (и те, кто будут работать с вашим кодом после вас скажут вам спасибо). Опять же префиксы для браузеров можно будет расставлять автоматически.

    Дальше:
    .work_pic1-part1:hover span,
    .work_pic1-part1:hover:before,
    .work_pic2-part1:hover span,
    .work_pic2-part1:hover:before,
    .work_pic3-part1:hover span,
    .work_pic3-part1:hover:before,
    .work_pic4-part1:hover span,
    .work_pic4-part1:hover:before,
    .work_pic1-part2:hover span,
    .work_pic1-part2:hover:before,
    .work_pic2-part2:hover span,
    .work_pic2-part2:hover:before,
    .work_pic3-part2:hover span,
    .work_pic3-part2:hover:before
    ...

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

    К концу файла глаза довольно сильно устают. Префиксы раздражают, как и множество одинаковых (и совершенно ни о чем не говорящих) чисел. Так что префиксы лучше расставлять автопрефиксером, а в будущем посмотреть на less / sass - препроцессоры упрощают работу и имеют разные плюшки вроде переменных (например длина анимаций просто напрашивается на вынесение в переменную), наследования стилей и.т.д.

    Еще по поводу размера css: есть такое понятие как critical css - стили для первого видимого экрана. Их можно выделить автоматически (см. системы сборки) и встроить прямо в html. А все остальные стили загружать уже потом. Это создаст у пользователя впечатление быстрой загрузки. У Виталия Фридмана есть занятная лекция на youtube, где он рассматривает этот и другие вопросы оптимизации загрузки на примере smashingmagazine.

    Комментарии. Их нет. В большинстве случаев они и правда не нужны, но после нарезки такого рода окончаний
    </div>				
                    </div>
                </div>
            </div>
        </footer>
    </div>

    может что-то потеряться и потом искать не закрытый div очень непросто. Имеет смысл крупные контейнеры оборачивать в комментарии, показывающие начало и конец этого блока (помнится emmet умеет вставлять такие сразу с двух сторон).

    Да и напоследок: названия классов очень разнородные - то дефисы, то подчеркивания, то длинные, то короткие, иногда в них видится система, но эта система переодически дает сбой. Не люблю я БЭМ, но, вероятно вам стоит почитать о нем более подробно (или про аналоги, решающие те же задачи - недавно тут на тостере был вопрос о том, что делать, если бэмоподобные классы перестали нравиться - пришли к выводу, что rscss тоже неплох).

    P.S.: планшета под рукой нет, поэтому про тормоза ничего сказать не могу - на слабом нетбуке все работает более-менее нормально.
    Ответ написан
  • Как собрать стайлгайд?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Пробовал использовать DSS (если быть точнее grunt-dss, поскольку все остальное собиралось с помощью grunt). Несмотря на то, что этот проект давно не обновляется, использовать его вполне можно. Вся идея состоит в том, чтобы в css (less/sass/...) писать комментарии вида
    // @name Button
    // @description Button component
    //
    // @state -small     - Smaller button
    // @state -large     - Larger button
    // @state -dangerous - Indicates danderous action
    // @state -ghost     - Button with transparent background
    //
    // @see button-group
    //
    // @markup
    //      <a class="button" href="">button</a>

    и из них генерируется стайлгайд. Инструмент очень простой и поэтому легко кастомизируется - можно дописывать свои парсеры для чего-то кастомного (например если нужна информация о js для компонента или что-то еще), шаблон для всего этого - обычный html со вставками вида {{property}}.
    Ответ написан
    1 комментарий
  • Какой стиль шрифта более похож на семейство Ubunto?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    9 различных шрифтов на странице? Это в любом случае будет тормозить при загрузке. Обычно используют 2-3 шрифта, не больше. Здесь скорее нужно не менять шрифты, а уменьшить их количество. Или, если по какой-то причине они правда нужны все сразу - уменьшить наборы символов в них (скорее всего они содержат языки и спецсимволы, которые вы никогда на своем сайте не будете использовать).
    Ответ написан
    Комментировать
  • Как выровнять текст относительно иконки?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    .data {
        line-height: 32px;
    }
    Ответ написан
    Комментировать
  • Как реализовать с помощью SVG?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Хорошее руководство по SVG есть на developer.mozilla.org, особенно полезно почитать про пути - сколько я видел такие волны делают через кривые Безье. А примеры как всегда есть на codepen, например вот этот. Но стоит помнить, что в общем случае может быть проще нарисовать то, что нужно, в графическом редакторе и экспортировать, чем подбирать числа руками.
    Ответ написан
    Комментировать
  • Как стилизовать radio button таким образом?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Просто стилизуйте не сам radio button, а label для него - пример на codepen.
    Ответ написан
    Комментировать
  • Как прижать footer?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Ответ написан
    Комментировать
  • Какие измерения дать шрифтам?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Есть очень неплохой вариант с использованием calc: он позволяет плавно менять размер шрифта в пределах от минимального до максимального размера вашей сетки (например от 320px до 1100px) - https://www.smashingmagazine.com/2016/05/fluid-typ...
    Ответ написан
    Комментировать
  • Как сделать так чтобы видео на сайте вело себя как background сделанный через background-size: cover?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Есть свойство object-fit. Собственно оно позволяет делать именно то, что вы описываете - codepen.
    Ответ написан
    1 комментарий
  • Textarea в firefox?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    почему так происходит?

    Потому что у вашего textarea margin в 1px сверху и снизу:
    c0100e21ca134563895a73bc10ffced6.png
    как это исправить?

    • Добавить margin: 0 для textarea
    • В будущем использовать normalize.css
    Ответ написан
  • Как сделать чтобы сумма отнималась при выборе checkbox?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В демке есть специальный скрипт, который позволяет выбрать только 1 checkbox из двух

    Не придумывайте велосипед и используйте radio button.
    Ответ написан
  • Можно ли один и тот же текст расположить в два слоя поверх друг-друга?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Можно воспользоваться data-аттрибутами в html
    <div data-text="Lorem ipsum..."></div>

    И поиспользовать attr() для их использования
    div:before,
    div:after {
        content: attr(data-text);
    }


    Общая идея должна быть понятна, но codepen тоже приложу.
    Ответ написан
    1 комментарий
  • Правильно ли вносить изменения в стандартный bootstrap.css файл?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    К словам aleserkan хочется также добавить, что bootstrap достаточно хорошо кастомизируется с помощью изменения соответствующих переменных и его пересборки. При этом вы у себя храните только эти сами переменные - пересобрать можете в любой момент. Должно остаться очень небольшое количество стилей, которые вам нужны для дополнительной кастомизации - там и important в количестве нескольких штук в отдельном файле сгодится (не очень красиво, но понятно что и где меняется).

    Если же у вас получается свой файл размером с половину bootstrap, в котором вы переписываете его стили, стоит поставить вопрос ребром - скорее всего логично будет отказаться от его использования и написать все руками. Да, я знаю, что такую постановку вопроса обычно не любят, но не стоит забывать о таком варианте: бывают такие дизайны, что при верстке от bootstrap остается только сетка и пара кнопок - в таком случае его использование теряет смысл.
    Ответ написан
    Комментировать
  • Как пофиксить этот hover?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Это известная проблема с округлениями в хроме. Можно таким образом подкостылить (проверил в Chrome 53):
    .fun-hover {
        background-size: calc(200% + .5px);
    }
    .fun-hover:hover {
        background-position: calc(-100% - .5px);
    }
    Ответ написан
    1 комментарий
  • Круг из центра превращается в квадрат на весь экран?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Ответ написан
    Комментировать
  • Как выровнять по центру блок span со спрайтом с разним размером картинок?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В случае с вашим спрайтом можно использовать такую штуку у span и не думать об их расположении:
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    Ответ написан
    2 комментария
  • Какую методологию для CSS используете вы?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Некоторое время назад наткнулся на не очень популярный у нас rscss. Попробовал. Потом еще раз попробовал... Потом еще раз...
    Ответ написан
    2 комментария
  • Лучшая практика для оформления комментариев в HTML, CSS?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Хочется также добавить к ответу Сергей , что в долгоживущих проектах может оказаться очень не лишним из комментариев css вроде таких:
    // @name Button
    // @description Your standard form button.
    // 
    // @state :hover - Highlights when hovering.
    // @state :disabled - Dims the button when disabled.
    // @state .primary - Indicates button is the primary action.
    // @state .smaller - A smaller button
    // 
    // @markup
    //   <button>This is a button</button>

    генерировать человеко-дизайнеро-понятные стайлгайды со всеми компонентами, которые у вас есть (небольшой личный опыт показывает, что можно отдельные компоненты верстать и сразу смотреть на них в этом стайлгайде - grunt/gulp в помощь, а потом уже вставлять их в реальные страницы). В результате можно спустя некоторое время с помощью одного взгляда вспомнить что происходит, какие у вас вообще компоненты есть и как они выглядят - сразу с примерами html для них - и быстро что-то доделать / добавить / убрать.
    Ответ написан
    1 комментарий