• Изменения каких свойств при анимации являются более оптимизированными? transform: translate или top (position: relative)?

    wqertAnna
    @wqertAnna Автор вопроса
    Кажется, я перепутала и всё наоборот.


    1. Макет (layout)
    2. Отрисовка (paint)
    3. Композиция (composite)

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

    Если вы измените свойство CSS, которое не затрагивает ни макет, ни отрисовку, то браузеру остаётся сделать только композицию.
    Для подробной информации, какие процессы запускают различные свойства CSS, см. триггеры CSS

    ________________________________________________
    статья
    Начиная от заголовка Макет, отрисовка и композиция

    свойство top влияет на все 3 шага конвейера
    свойство transform в некоторых браузерах на 3 шага, в других же только на 1
    Ответ написан
    Комментировать
  • Как выровнять чекбокс по первой строке текста из двух строк?

    wqertAnna
    @wqertAnna
    https://codepen.io/anon/pen/EBpzQZ
    теперь это адаптивно, при изменении размера шрифта чекбокс всё равно остаётся по центру.
    .el-checkbox__label {
        white-space: normal;
      font-size: inherit;  // размер шрифта наследуется от .el-checkbox
      line-height: 1.2em; // важно, чтобы значение было такое же, как высота контейнера чекбокса
    }
    .el-checkbox {
      display: flex;
      align-items: flex-start;
      font-size: 14px; // менять шрифт здесь, chekcbox всё равно по центру строки
    }
    
    .el-checkbox__input {
      display: flex;
      align-items: center;
      height: 1.2em; // тоже значение, что и высота строки .el-checkbox__label 
    }
    Ответ написан
    1 комментарий
  • Как сделать border-bottom?

    wqertAnna
    @wqertAnna
    Владимир Проскурин уже ответил вам, как следует адекватно сделать, но если Вы захотите немного псевдоэлементов и оставить структуру кода html, как есть, то переходите по ссылке)

    https://codepen.io/anon/pen/dBKeaz
    Ответ написан
    Комментировать
  • Как сделать такую анимацию галочки?

    wqertAnna
    @wqertAnna
    https://codepen.io/anon/pen/agKYNa

    Вот реализация без js и svg, только css
    и без @keyframes)
    Ответ написан
    3 комментария
  • С какого препроцессора лучше начать?

    wqertAnna
    @wqertAnna
    Я советую SASS.
    Если Вы способны аккуратно писать код и делать отступы, то благодаря его лаконичному синтаксису Вы сильно сэкономите себя время.
    Ответ написан
    Комментировать
  • На моей работе одна группа программистов против css-препроцессоров. Пора отсюда бежать?

    wqertAnna
    @wqertAnna
    В моей компании используют препроцессоры и компонентный подход. К сожалению, приходится поддерживать и проекты, в которых стили представлены css, но это просто неприятная необходимость и все это понимают.

    Я влюблена в sass, очень лаконичный синтаксис, что существенно ускоряет верстку, а также очень легко читается, особенно, учитывая, что в компании приняты именования классов по БЭМ.

    Мне кажется, группа людей в вашей компании, которая против препроцессоров не стремиться понуждать себя к изучению чего-то нового. К тому же ещё придется изучить сборщики.

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

    И да, поддерживать css хоть немного в приличном состоянии намного сложнее.

    Я просто не понимаю, как можно вот это
    .header-sub-menu
    
    		&__link
    			display: block
    			padding: 9px 8px 9px 18px
    			color: $dark-gray
    			+max-width($tablet)
    				padding: 9px 20px 9px 40px
    				// анимация
    				opacity: 0
    				transform: translateY(-25px)
    				transition: transform .4s .4s, opacity .4s .4s
    
    
    			&:hover
    				background-color: rgba(56, 65, 79, 0.04)
    				color: $dark-gray
    				+max-width($tablet)
    					background-color: transparent
    
    
    		&__link-item
    			font: bold 13px $font
    			color: $dark-gray
    			+max-width($tablet)
    				font-size: 17px


    сравнить в этим

    .header-bottom .header-sub-menu__link {
      display: block;
      padding: 9px 8px 9px 18px;
      color: #38414f;
    }
    @media only screen and (max-width: 992px) {
      .header-bottom .header-sub-menu__link {
        padding: 9px 20px 9px 40px;
        opacity: 0;
        transform: translateY(-25px);
        transition: transform 0.4s 0.4s, opacity 0.4s 0.4s;
      }
    }
    .header-bottom .header-sub-menu__link:hover {
      background-color: rgba(56, 65, 79, 0.04);
      color: #38414f;
    }
    @media only screen and (max-width: 992px) {
      .header-bottom .header-sub-menu__link:hover {
        background-color: transparent;
      }
    }
    .header-bottom .header-sub-menu__link-item {
      font: bold 13px "Roboto Condensed", sans-serif;
      color: #38414f;
    }
    @media only screen and (max-width: 992px) {
      .header-bottom .header-sub-menu__link-item {
        font-size: 17px;
      }
    }


    Я понимаю, что приведенный мной css это скомпилированный sass и если изначально писать на css, то это выглядит приличнее, но всё равно, это не сильно меняет картину.
    Ответ написан
  • Как реализовать такой слайдер(желательно slick)(при клике по навигации по слайдам меняется текст в блоке с кнопками)?

    wqertAnna
    @wqertAnna
    Разберитесь, как этот слайдер работает (тот, что на скрине).
    По сути у вас просто 2 связанных слайдера.

    5d1b76f600435520900253.png
    https://kenwheeler.github.io/slick/
    Ответ написан
    Комментировать
  • Как поправить анимацию?

    wqertAnna
    @wqertAnna
    Когда Вы пытаетесь отладить что-то, старайтесь постепенно убрать всё лишнее.
    Например, из трех блоков оставляете только один, смотрите баг сохраняется. Дальше убираете кнопку, ничего не меняется, проблема ещё есть, значит дело не в этом.
    И таким образом старайтесь всё упростить.

    Советую прочитать про свойство animation-fill-mode.
    Что у вас происходило: когда вы убирает курсор с блока, стили .card-block__position становятся теми, что без hover ( это bottom: -41px ), а анимация ещё не применилась, т.к. у вас стоит задержка animation-duration: 200ms; и потом только срабатывает анимация и свойство bottom становится 0 после чего уже постепенно меняется на bottom: -41px
    Это решается установление свойства animation-fill-mode: backwards

    Во время отладки анимации очень полезным будет смотреть её в замедленном режиме, тогда вы сможете понять в чем проблема (см. скрин) Открываете консоль разработчика
    5d194fe96e6c2561409314.png

    вот решенная ваша проблема: https://codepen.io/anon/pen/ZdrjeZ
    5d1950572d8ae486367301.png

    Также используйте сокращенное свойство animation, это хорошая практика и код более читаемый.
    animation: 200ms BackgroundIn linear 0ms 1 normal backwards;


    И вообще у вас есть некоторая проблема с вашим кодом. После загрузки страницы сразу же срабатывает анимация, это не хорошо.

    И да, я в принципе не вижу смысла использовать здесь @keyframes. Это правило используется, когда действительно нужна анимация и иначе сделать нельзя, в вашем случае все делается через transition.

    Вот я переписала анимацию bottomIn
    https://codepen.io/anon/pen/WqMKaL

    5d195639bfa66361172667.png
    Ответ написан
  • Как верстать макеты под разные разрешения?

    wqertAnna
    @wqertAnna
    /* на всех разрешениях больше 1368рх  28px; */
    .title {
        font-size: 28px;
      }
    
    /* на разрешении от  1368рх до 769px будет шрифт 24px; */
    @media screen and (max-width: 1368px) {
      .title {
        font-size: 24px;
      }
    }
    
    /* на разрешении от 768px и ниже будет шрифт 20px; */
    @media screen and (max-width: 768px) {
      .title {
        font-size: 20px;
      }
    }
    Ответ написан
    Комментировать
  • Как получить чистый html код?

    wqertAnna
    @wqertAnna
    Мой вариант на основе регулярных выражений
    https://codepen.io/anon/pen/orEzbE

    const string = `<div draggable="true" ondragstart="drag(event)" id="item_col-2" class="layout_el col-2 gap">
        <div class="g-grid" ondrop="drop(event, this)" ondragover="allowDrop(event)">123</div>
        <div class="g-grid" ondrop="drop(event, this)" ondragover="allowDrop(event)">321</div>
    </div>`;
    
    const reg = /<\w+|class=".+?"|>|<\/\w+>|[^>]+?(?=<)|/igm;
    const result = string.match(reg).join(" ").replace(/\s\s+/g, ' ');
    
    console.log(result);


    Просто поместите нужную вам строку в переменную string
    Ответ написан
  • Плавающий текст при скролле?

    wqertAnna
    @wqertAnna
    функция, которая инициализирует параллакс у тебя повешена на событие скролла
    5d173b435c69f396637667.png
    Когда страница загружается к блоку с текстом применяются сss стили, в данном случае top: 25%,
    5d173b52b5ce8876754753.png
    а после скролла страницы js изменяет свойство top на необходимое для параллакса
    5d173b6486e6f881433985.png

    решение: инициализируй параллакс в том числе и при загрузке страницы, а не только при скролле.

    т.е. при первом скролле текст делает рывок не только в первой секции, а во всех, просто ты их не видишь.
    Рывок логичен, ведь свойство top за мгновение меняется с 25% до 1px
    Ответ написан
  • Как принудительно поправить значение без селектора?

    wqertAnna
    @wqertAnna
    Вообще-то есть один вариант изменить это в css
    Я понимаю, что ситуации бывают разные, но выглядит это немного по-извращенски)

    div[style="position: fixed; top: 0px; left: 0px; z-index: 100001; display: none;"] {
    	position: absolute !important;
    }
    Ответ написан
    Комментировать
  • Слайдер вложенный в слайдер. Как сделать чтобы css не распространялся на вложенный?

    wqertAnna
    @wqertAnna
    Вот так должно работать

    .SliderPanel > .slick-list >.slick-track > .slick-slide {
      display: block;
      opacity: .1;
      transition-delay: 0s;
      transition-duration: 0.2s;
      transition-property: opacity;
      transition-timing-function: ease-out;
    }
    
    .SliderPanel > .slick-list > .slick-track > .slick-current {  
      display: block;
      opacity: 1;
      transition-delay: 0.3s;
      transition-duration: 0.2s;
      transition-property: opacity;
      transition-timing-function: ease-in;
    }
    Ответ написан
  • Как расположить блок по центру без костылей (ссылка на codepen внутри)?

    wqertAnna
    @wqertAnna Автор вопроса
    Решение найдено
    https://codepen.io/anon/pen/xopBZw
    5d17123760577310368315.png

    блок сверху светло-фиолетовый (фон добавила для наглядности, так разумеется он прозрачный) это :before
    со стилями:
    {  
      min-height: 20px;
        max-height: 80px;
        flex-grow: 8;
        width: 100%;
    }


    т.е. от текста до верхней и нижней границы блока .box (тот, что с розовым border) одинаковое расстояние (стрелки) вне зависимости от количества текста, если нет переполнения.
    При переполнении верхний блок сжимается
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы кавычки (fontawesome) переносились на другую строчку с последним словом, а не изолированно?

    wqertAnna
    @wqertAnna Автор вопроса
    Всё оказалось весьма прозаично)
    Просто добавить абсолютное позиционирование последней кавычке и относительное родительскому блоку.
    Ответ написан
  • Оценка первой верстки?

    wqertAnna
    @wqertAnna
    1. отзывчивый интерфейс!
    Это безумно важно.
    Всё что интерактивно, должно реагировать на действия пользователей
    нужны стили для псевдокласса :hover на кнопки
    при наведении на ссылки соц.сетей, они тоже должны как-то реагировать. Например, самое простое opacity: .8
    И также не забудьте про cursor: pointer для всего с чем можно взаимодействовать

    2. не видела макет, но Вы уверены, что у кнопок должен быть этот серый сомнительный border?
    Мне кажется, так лучше (зеленая стрелка) border: 0
    уберите оранжевый outline при :focus (синяя стрелка)
    5cf439fd3ee49933461037.png

    3. телефон должен быть ссылкой и тогда он кликабельный
    <a href="tel:+74956660266">+7 (495) 666-02-66</a>
    4. КАК НАС НАЙТИ? в footer, как я понимаю, это тоже должны быть ссылка

    5. я бы убрала outline у input при focus
    и placeholder должен исчезать, когда курсор в поле, а он исчезает у вас только при вводе

    Вы правильно сделали padding-left у полей ввода, но почему нет padding-right. В общем, это не очень красиво.
    5cf43a1be49f4012430270.png

    Правильно делаете, что используете тег time)

    Насчет семантики
    В общем, зеленые стрелки означают, что вы правильно использовали теги h2 и p
    Красные говорят о неправильном использовании этих тегов
    5cf43a848f547575902900.png

    Там где красные стрелки я бы посоветовала использовать div и span
    Смотрите div и span это просто строительные блоки без семантики

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

    Когда я начинала, старший наставник скинул это сообщение:
    Параграфы/Абзацы на уровне семантики должны быть использованы исключительно для разметки контента, не должен использоваться в сквозных блоках, т.к. они контентом не являются.
    По сути параграф/абзац это та же самая штука что и в русском языке, и должны использовать исключительно для разметки текста.


    6. footer не прижат к низу
    5cf43c84e503a132867640.png
    Ответ написан
    9 комментариев