Задать вопрос
  • Как указать высоту для main?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Хорошо, конечно, что вы уверены, что высота точно 60. Что вас не волнует никакое переполнение шапки ни по какой из причин (увеличенный шрифт у пользователя, отвалился дизайнерский шрифт, использование переводчиков и другие банальные причины)
    Если так, то да, calc и вперед.

    Разумнее, задать родителю высоту 100vh и грид. В котором первой строке задан min-content, а для main 1fr, т.е. все оставшееся пространство.
    grid-template-rows: min-content 1fr
    Аналогично можно сделать и флексом и flex-grow для main.

    Так получится универсальное решение, не зависящее от высоты шапки.
    Ответ написан
    Комментировать
  • Как сделать развертывание аккордеона плавным?

    @Azperin
    Дилетант
    Можно гриды попробовать https://youtu.be/B_n4YONte5A?si=9r_06AFYgXvLqdMH&t=122
    Ответ написан
    Комментировать
  • Как перемещать элемент по клику на кнопки?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Вместо выдёргивания координат из стилей лучше будет сделать массив с координатами, обновлять этот массив, и уже на его основе задавать translate элементу. А чтобы не делать отдельные обработчики клика всем кнопкам, можно записать им в data-атрибут информацию о том, на сколько какие координаты должна изменить данная кнопка.

    <button data-steps="1,0">right</button>
    <button data-steps="-1,0">left</button>
    <button data-steps="0,1">down</button>
    <button data-steps="0,-1">up</button>
    <button data-steps="1,1">right down</button>
    <button data-steps="0,-2">double up</button>

    const coord = [ 0, 0 ];
    const stepSize = 30;
    
    const box = document.querySelector('#box');
    const buttons = document.querySelectorAll('[data-steps]');
    
    buttons.forEach(n => n.addEventListener('click', onClick));
    
    function onClick() {
      this.dataset.steps.split(',').forEach((n, i) => coord[i] += n * stepSize);
      box.style.transform = `translate(${coord.map(n => `${n}px`).join(',')})`;
    }
    Ответ написан
    Комментировать
  • Как стилизовать данный элемент?

    dicem
    @dicem
    Ответ написан
    Комментировать
  • Почему не получается вытащить значение переменной из функции наружу?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    return в функцию добавьте
    <?php
    function register() {
        return add_menu_page( <...> );
    }
    
    $getted_hook_suffix = register();
    Ответ написан
    4 комментария
  • Почему берет одну запись по селектору?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Для самого свежего хрома можно обойтись css:
    [role="row"]:has(.fraud) {
      background-color: #f1f7bc;
    }

    Для иных браузеров можно использовать такую извращенную классику(с оговорками):
    [role="row"] {
      position: relative;
      background-color: transparent;
    }
    [role="row"] .fraud::before {
      content: "";
      display: block;
      position: absolute;
      z-index: -1;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      background-color: #f1f7bc;
    }


    Ну либо использовать MutationObserver и следить за появлением новых [role="row"].
    Ответ написан
    Комментировать
  • Как сделать плавное увеличение высоты текста?

    imko
    @imko
    Senior Scratch Developer
    100% величина относительно родителя, у родителя высоты тоже своей нет, она не может быть высчитана, переход от 0 к ничему соответственно не может быть плавным. У тебя классический баян должен получиться. Если можно гарантировать что текст не будет выше какой-либо высоты (как в комменте 300 пикселей например) то проще всего менять max-height с нуля до этой величины, а так по хорошему текст надо кинуть в обертку, у нее менять высоту/максимальную высоту с нуля до ее scrollHeight, которая будет равна высоте ее контента - текста. Есть еще хак с grid-template-rows 0fr/1fr но не везде работает
    Ответ написан
    1 комментарий
  • Как сделать такой custom border?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    1 комментарий
  • Как сделать диаграмму полукругом?

    Stalker_RED
    @Stalker_RED
    Простая дуга в SVG
    Длина закрашенной части это радиус * π * проценты / 100.
    Если "живое" поведение не нужно, то можно выбросить весь js код с обработчиком инпута, а заранее рассчитанное число захардкодить в свойство stroke-dasharray в атрибуте фигуры или в css.
    Ответ написан
    Комментировать
  • Z-index головоломка - как расположить фигуры внахлест одну за другой?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Как вариант:
    Ответ написан
    Комментировать
  • Как регулярным выражением получить дату из строки?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    "2023-02-01 13:00:00".split(' ')[0].split('-')[2] // 01
    // или
    "2023-02-01 13:00:00".match(/\d{4}-\d{2}-(\d{2})\s\d{2}:\d{2}:\d{2}/)[1] // 01
    // или
    "2023-02-01 13:00:00".replace(/\d{4}-\d{2}-(\d{2})\s\d{2}:\d{2}:\d{2}/, '$1') // 01
    // или
    new Date("2023-02-01 13:00:00").getDate() // 1
    // или
    new Date("2023-02-01 13:00:00").getDate().toString().padStart(2,0) // 01
    Ответ написан
    1 комментарий
  • Как можно вывести все посты кроме того на котором находишься?

    anatoly_kulikov
    @anatoly_kulikov
    Помог ответ? Отметь решением!
    Самое банальное - в запросе указать posts_not_in, но существует мнение, что на сайтах с огромным количеством постов это будет работать медленно, поэтому можно указать в запросе +1 пост, и если там попадется текущий - игнорировать его.
    Ответ написан
    1 комментарий
  • Как отключить Slick Slider на определенной ширине и сделать так, чтобы он вновь включился?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Да забудьте вы уже про resize!
    Есть же matchMedia. Сделайте два медиавыражения
    (min-width: 1024px)
    (max-width: 1023px)
    В одном инициализируйте плагин, в другом удаляйте. Обработчик matchMedia вызывается один раз при срабатывании медиа-выражения, а не на каждый чих, как resize, проблем не будет.
    Ответ написан
    Комментировать
  • Как правильно вывести строку через условные теги WordPress и условные операторы?

    Denkuwus
    @Denkuwus
    15 y.o
    Похоже, вы хотите отобразить строку «Главная страница» для главной страницы и заголовок страницы для всех остальных страниц.

    Одна проблема с вашим кодом заключается в том, что оператор else не связан ни с одним из операторов if. Это означает, что он всегда будет выполняться, независимо от того, верны ли какие-либо из предыдущих операторов if.

    Чтобы исправить это, вы можете использовать оператор elseif вместо оператора else. Оператор elseif будет выполнен только в том случае, если предыдущий оператор if ложен, а условие в операторе elseif истинно.

    Вот как вы можете изменить свой код для достижения желаемого поведения:

    <meta property="og:description" content="
    
    <?php
    
    if ( is_front_page() ) {
        echo 'Main page';
    } elseif ( is_404() ) {
        echo 'Error 404';
    } elseif ( is_search() ) {
        echo 'Search page';
    } else {
        echo the_title();
    } ?>
    
    ">


    Это должно отображать правильную строку для каждой страницы.
    Ответ написан
  • От чего всплывает ошибка в скрипте при подключении в functions.php?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Вот что тебе не понятно в ошибке?
    Он тебе пишет "не могу прочитать appendChild у null".
    Включаем голову и глаза на ней: откуда он хочет прочитать appendChild в данном месте?
    Из document.body, так?
    В каком случае document.body === null?
    Очевидно, когда никакого body нет на странице.
    Когда body нет на странице?
    В тот момент когда кусок разметки с body ещё не прочитан.
    Когда такое возможно?
    Когда скрипт выполняется в head и не ждёт загрузки документа.

    Из этого можно сделать вывод, что раньше ты пихал скрипт внутрь body и всё работало, а сейчас wp подключает его в head, как принято.
    Соответственно, тебе либо надо найти как пихать скрипт в body в wp, либо, что лучше, дожидаться в скрипте загрузки документа(DOMContentLoaded).
    Ответ написан
    Комментировать
  • Нужны ли препроцессоры CSS в 2022/2023?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    А нужны ли вообще препроцессоры в 2к22, уже почти 2к23 году

    Да.

    Переменные давно реализованы в нативном CSS

    Рили? Ниже переменная (она же map), можно пример в "нативном CSS"?
    $palette: (
    
      light: (
        1: "0deg 100% 99%",
        2: "0deg 100% 98%",
        3: "0deg 100% 96%",
      ),
      
      dark: (
        1: "0deg 0% 0%",
        2: "0deg 0% 0%",
        3: "0deg 0% 0%",
      ),
    
    );


    вложенность также

    Можно пример вложенности ниже в "нативном CSS" (не строкой `.car .car--model`, а именно, как "Nesting" в Sass)?
    .car {
      color: red;
      
      &--model {
        background: black;
        
        &-tesla {
          color: blue;
        }
      }
    }


    Какие преимущества остались у препроцессоров?

    Преодполжим, в переменную выше (она же map) залетает 99 палитр, разных оттенков, реализуйте в "нативном CSS" автоматическую генерацию css классов на основе этой переменной, чтобы получать на выходе примерно такое (по дороге, желательно вешать брекпоинты для дисплеев разных размеров и наследоваться от пользовательских цветовых тем, чтобы например, темное было на темном):
    .palette--light-1 { color: hsl(0deg 100% 99%) }
    .palette--light-2 { color: hsl(0deg 100% 98%) }
    // ...
    .palette--dark-3 { color: hsl(0deg 0% 0%) }
    Ответ написан
    Комментировать
  • Не понимаю пока еще работу с this, что тут надо сделать?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    pet_1 = { name: "Шарик", age: 10 };
    pet_2 = { name: "Жучка", age: 5 };
    
    function getName() {
      return [this.name, this.age].join(' ');
    }
    
    pet_1.getName = getName;
    pet_2.getName = getName;
    
    pet_1.getName(); // Шарик 10
    pet_2.getName(); // Жучка 5


    Или вот раздача бесплатных примесей (mixin) через Object.assign():
    mixin
    pet_1 = { name: "Шарик", age: 10 };
    pet_2 = { name: "Жучка", age: 5 };
    
    function getName() {
      return [this.name, this.age].join(' ');
    }
    
    const mixin = { getName };
    
    Object.assign(pet_1, mixin);
    Object.assign(pet_2, mixin);
    
    pet_1.getName(); // Шарик 10
    pet_2.getName(); // Жучка 5
    Подготовить объект с единственным свойством "getName" в котором лежит одноимённая функция. Скопировать все свойства (в данном случае одно) этого объекта поверх существующих свойств объектов pet_1 и pet_2 с помощью Object.assign().
    Ответ написан
    Комментировать
  • Как убрать границу лесенкой?

    @pvshvb Автор вопроса
    Нашёл решение
    outline: 1px solid transparent;
    Ответ написан
    Комментировать