• Почему не работает transition для background-image?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Не работает и работает не будет! Надо понимать, что такое переход из состояния в состояние, а что такое дискретность. Дело в том, что есть состояния, которые плавно перетекают, а есть только такое или такое. Например, ребенок растет плавно, вот ребенку один год, вот прошло два месяца и уже год и 2 месяца, как ни странно, а вот ему уже 43, а есть (сейчас не будем про хирургию) дискретное состояние ребенка или человека, это девочка или мальчик, человек либо родился такого пола, либо другого, нет переходного состояния, как в случае с возрастом. Зачем это понимать и знать? Потому что transition отработает только для свойств, которые переходные, но не дискретные. Например, есть ширина 0 пкс, добавим 1 пкс и ширина уже 1пкс, добавим еще 20 - 20пкс, такое свойство можно анимировать. Есть прозрачность 0, а есть 0.1, а есть 0.2, 0.5, 1 - тоже можно. Но, есть display: block, а есть display: none, это дискретные состояния, либо есть, либо нет, анимации не будет, зато можно блок показать/скрыть с помощью анимации на его ширину, высоту, прозрачность... Цвет, как ни странно это тоже величина, которая имеет переходные состояния, например в препроцессорах можно написать #ccc + #eee и получить новый цвет, так как цвета задаются, по сути, просто числом, и увеличивая/уменьшая число получаем анимацию. А какой переход между двумя картинками? Никакого, только такая картинка или такая, поэтому, чтобы сделать плавную анимацию надо пробовать, разве что, прозрачность блока с фоновым изображением.
    Ответ написан
    8 комментариев
  • Как сделать картинку в картинке?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Обе картинки сделать позишеном друг на друга, поиграться z-index. Заднюю картинку повернуть transform: rotate(45deg); или на другой градус. Верхней картинке задать ширину, высоту, border: 20px solid #fff; border-radius: 10px; все числа беру с потолка, надо подгонять, и далее этому div, который рамка background-color: transparent.
    По идее все.
    Ответ написан
    Комментировать
  • Чекбокс (radio) - как менять картинку в зависимости от выбран/не выбран?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    <input type="radio" checked name="dva" id="dva1"/>
    <label for="dva1"><img src="/upload/s1p1.png" class="notChecked"><img src="/upload/s1p2.png" class="ifChecked"></label>
    <style>
    
    input:checked + label img.ifChecked{
      display: block;
    }
    
    input:checked + label img.notChecked{
      display: none;
    }
    
    input + label img.ifChecked{
      display: none;
    }
    
    input + label img.notChecked{
      display: block;
    }
    
    
    </style>


    https://jsfiddle.net/z8b5cune/
    Ответ написан
    2 комментария
  • Две сетки с разным количеством колонок, как быть?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Насчет сетки, могу предложить вот такой инструмент: https://www.npmjs.com/package/smart-grid
    Видео о том, как с ней работать можно посмотреть вот тут:https://www.youtube.com/watch?v=KFVoIzaGPYg&list=P...
    Эту сетку можно сгенерировать под любое кол-во колонок и с любыми межколоночниками. Настройки для генерации сетки задаются в smart-grid.js, а сама генерация происходит через Node.js. Можно задать сначала сетку на 15 колонок и межколоночник в столько-то пикселей, сохранить препроцессорный файл на выходе просто переименовав его, а потом поменять настройки под сетку на 12 колонок, только задать разные префиксы для примесей.
    Сам пользуюсь, и рекомендую. Для кроссбраузерности можно использовать для построения сетки не флексы, а инлайнблоки, а для межколоночника указать значения в процентах. Можно и по деолту все оставить, и сетку на флексах сделать, так как они уже хорошо работают.

    2. Если я правильно понял суть дела, то можно задать флекс-контейнеру flex-direction: column, чтобы они по вертикали строились flex-wrap:wrap, чтобы переносились на новую вертикальную ось, далее надо задать высоту родителю, чтобы блоки переносились на новый ряд, поиграться с justify-content, align-content, align-items, а тем блокам, которые надо вынести вправо задать два самых больших ордера и задать им базис по приблизительно 50% (кальк 50%-20рх).
    Ответ написан
    4 комментария
  • Как вывести произвольные поля внутри content записи?

    dimovich85
    @dimovich85
    https://u-academy.net/
    Если правильно понял проблему, то лично я пользовался плагином CFS - custom field suit, его работу можно и самому через API Wordpress'а реализовать, но в плагине удобнее. После активации плагина в админке появится пункт "Произвольные поля" или как-то так. Внутри него добавляете новое кастомное поле и главное (!) привязываете свое созданное кастомное поле к какому-то типу записи (или сразу ко всем). Далее, в php выводите значение этого поля в цикле: echo CFS()->get('slug_of_your_custom_field');
    Ответ написан
    2 комментария
  • Какой взять слайдер для сайта?

    dimovich85
    @dimovich85
    https://u-academy.net/
    slick slider, owl carousel.
    Ответ написан
    Комментировать
  • Как верстаются кликабельные объекты с использованием иконок в svg?

    dimovich85
    @dimovich85
    https://u-academy.net/
    svg надо вставить кодом прямо html. Когда рисуешь svg в редакторе графики, то в панели слои можно подписать отдельный слой, и подпись попадает в атрибут id, а если объекты сгруппировать, то всем этим слоям внутри группы будет присвоен атрибут class. Зачем это? Теперь, зная id или class слоя можно просто задать ему css стили. Чтобы поменять цвет используйте свойство fill: #... как обычно в css.
    Например, иконка нарисована кривой линией, id у нее line, то можно сделать так:
    #line:hover{
    fill:#777;
    }
    Ответ написан
    6 комментариев
  • Как сверстать углубление как на картинке?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Можно в фотошопе сделать белый прямоугольник с вот таким вырезом, вырез сделать прозрачным и вставить в верстку. Прямоугольник можно вырезать небольшим квадратом, чтобы браузер не грузил белый фон на всю ширину блока.
    Ответ написан
    7 комментариев
  • Как ширину элемента сделать с зависимостью от размеров элементов внутри него?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Если родителю задать display: flex, то все элементы -потомки будут иметь ширину по контенту, и встанут в ряд. Если надо чтобы они выстроились вертикально, то родителю еще добавить стоит flex-direction: column;
    UPD: prntscr.com/hrcg70
    Добавить элементу display: table-cell; :)
    Ответ написан
    Комментировать
  • Изменение содержимого тега DIV?

    dimovich85
    @dimovich85 Куратор тега JavaScript
    https://u-academy.net/
    var div = document.querySelector('.selector');
    div.innerHTML = 'New content';
    Ответ написан
    Комментировать
  • Как вызывать функцию при ресайзе окна по одному разу при одном условии?

    dimovich85
    @dimovich85 Куратор тега JavaScript
    https://u-academy.net/
    $(function(){
    let timer;
    let anyTime = 300; // любое время
    $(window).on('resize', () => {
    if (timer !== undefined){
    clearTimeout(timer);
    }
    else{
    timer = setTimeout(() =>{
    // все, что надо сделать после ресайза, тут всякие проверки и так далее можно
    }, anyTime);
    }
    });

    Суть кода такая, что создаем переменную пустую, когда происходит ресайз окна - ставится таймаут на действие, которое будет выводить сообщение, каждый пиксель будет вызывать функцию, которая обрабатывает ресайз, и внутри функции - проверка, что если таймер уже задан, то его надо обнулить. Это дает нам то, что пока ресайз окна не завершится, никаких сообщений не увидим, а как только ресайз закончится, то отработает самый последний таймаут и после окончания ресайза, через anyTime, например 300мс, увидим сообщение. Таймаут можно ставить любой, просто 300мс не заметит человек, но будет достаточно, чтобы отследить окончание ресайза. Внутри функции в таймауте можно писать любые проверки и код. Такое "отложенное действие" можно запустить после прохождения 800пкс, добавить внутрь обработчика ресайза проверку на ширину окна.
    Ответ написан
  • Бэм и Препроцессоры?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Первый вариант вернет .checkout_bank .chexkout-img, то есть вложенный селектор, если Вы хотите получить такой селектор .checkout_bank-img (с модификатором), то правильно вот так:
    .checkout {
    &_bank{
    &-img
    }
    }
    Ответ написан
    Комментировать
  • Можно ли как то выравнять блоки друг возле друга, без использования float?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    display: inline-block;
    vertical-align: top; //bottom, baseline, middle.
    Ответ написан
    2 комментария
  • Как сделать данный эффект?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Посмотреть код с помощью Ctrl+U, почитать исходники=) Я пока кратко глянул, но каждая буква - отдельный блок...
    Ответ написан
  • Где найти круговой слайдер?

    dimovich85
    @dimovich85 Куратор тега JavaScript
    https://u-academy.net/
    https://www.dropbox.com/s/y1azni4d3axmuk8/3DGaller...
    Вот, скачай и посмотри, кажись он.
    Ответ написан
    Комментировать
  • Почему может не всегда срабатывать клик?

    dimovich85
    @dimovich85 Куратор тега JavaScript
    https://u-academy.net/
    https://developer.mozilla.org/ru/docs/Web/API/Mous... - вот тут есть перевод на русский, можно сделать на объекте прослушку клика (@click="onSomeClick($event)") и передать ивент в обработчик, далее смотрим e.button, switch ... case(1), то есть средняя кнопка мыши, и запускаем какой-нибудь метод this.onClick().
    Ответ написан
    Комментировать
  • Gulp bwSync перестал запускать нужную директорию, как поправить?

    dimovich85
    @dimovich85 Автор вопроса
    https://u-academy.net/
    В моем случае проблема оказалась в самом браузере, помогла чистка кеша, куков и так далее.
    Вот тут подробнее: Как узнать, кто занимает localhost:3000?
    Ответ написан
    Комментировать
  • Как узнать, кто занимает localhost:3000?

    dimovich85
    @dimovich85 Автор вопроса
    https://u-academy.net/
    Всем спасибо, за подсказки! Нет ни одного процесса связанного с локалхост:3000. НО! Я разобрался, тут все запутаннее оказалось. Расскажу, может кому поможет.
    Проблема оказалась в браузере. Помогла полная очистка куков, истории и данных от приложений.
    Я скачал с гитхаба исходники PWA - progressive web app, скачал, чтобы изучить эту технологию. PWA основывается на объекте web worker (js), который как бы "живет" в браузере, как отдельный процесс и позволяет веб приложению работать на базе веб технологий, но при этом выглядеть как нативное. Так как это было приложение-пример, то разработчики сделали web worker, который перехватывает запросы на локалхост:3000 и обрабатывает его сам. Если бы это было реальное приложение, оно бы перехватывало запросы на адреса своих серверов, а другие адреса не трогало, а тут приложение было настроенно на локалхост. Так как это приложение я установил с помощью хрома, который по умолчанию, то проблема была только в хроме, я попробовал перед очисткой истории зайти через ИЕ на локалхост и не получил ответа, тогда как хром по прежнему показывал мне то самое приложение. Очистив куки, кеш и данные приложений все вернулось на места.
    Ответ написан
    2 комментария