Ответы пользователя по тегу Вёрстка
  • Почему не работает range slider?

    neuotq
    @neuotq
    Прокрастинация
    Главная причина в том, что вы отключили pointer events для него в CSS (у range.input : pointer-events: none;).
    Далее, в value вы отправляете просто константу, более того куда и как он будет обновлять значения?

    Обновим немного код, добавив состояния, чтобы потом можно было легко использовать значения в дальнейшей логике.
    import * as React from 'react';
    import styles from './style.module.scss';
    
    export default function App() {
      // состояние для левого
      const [leftVal, setLeftVal] = React.useState(2500);
      // состояние для правого
      const [rightVal, setRightVal] = React.useState(7500);
      //  Константы для ограничения макс и минимального значения
      const MINVAL = 0;
      const MAXVAL = 10000;
      return (
        <div className={styles.main}>
          <div className={styles.slider}>
            <div className={styles.slider__progress} />
          </div>
          <div className={styles.range}>
            <input
              type="range"
              name="range-min"
              min={MINVAL}
              max={MAXVAL}
              value={leftVal}
              onChange={(e) => setLeftVal(parseInt(e.target.value))}
            />
            <input
              type="range"
              name="range-max"
              min={MINVAL}
              max={MAXVAL}
              value={rightVal}
              onChange={(e) => setRightVal(parseInt(e.target.value))}
            />
          </div>
        </div>
      );
    }


    Далее, у вас теперь будет работать только последний(по порядку в коде html/jsx ), тк он будет "наверху" и события мышки просто не могут достучаться до второго. Более того, логика работы нарушается, например он может быть меньше своего левого брата, что не ок. Ну и ещё МНОГО подводных камней. Вся проблема в том, что сам стандартный элемент input range поддерживает только одно значение, а вам нужно да. Логика испольнения этого не то чтобы сложна, но таки не совсем тривиально, нужно немного поработать.

    Вот ссылка, можете изучить пример если идти по вашему пути.
    Либо как это делают через другие html элементы(условно на div), эмулируя порведение.

    На мой взгляд гибое дело с этим возиться, если у вас только не личный интерес поиграться. Если для дела - то берите готовую библиотеку + во всех(или почти всех) UI библиотека он тем или другим способом реализован.
    Ответ написан
    Комментировать
  • Для чего нужен грид в 24 колонки?

    neuotq
    @neuotq
    Прокрастинация
    Чаще всего используют 12 колонок. Причина в сравнении с красивыми 10 проста - большее количество вариаций делений при относительно небольшом числе колонок, учитывая исходные что ширина бОльшей часть экранов кратно 8. Поэтому может вернее будет назвать эту систему системой 8-пиксельной, тк шаг в 8 пикселей для большинства размеров(при хард сетке всё кратно 8, при софт только расстояния между элементами). Таким образом легко быстро выстраивается модульная сетка с приятным ритмом.
    Поэтому многие системы/фреймворки по умолчанию настроены на 12 колонок.
    24 колонки - можно условно считать вариацией для любителей чуть большей вариативности и тонкостей с шириной/расстоянием между колонками и шага в 4 пикселя и тонкой настройки золотого сечения на странице.
    Отдельно стоят любители 16 колонок(относительно популярный вариант), это, как другие менее популярные, уже частные случаи сетки и дизайна, где все в ручную подбирается, либо изначально допускается меньшая вариативность размещения элементов/колонок/модулей. Поэтому прям зацикливаться не стоит, исходите из своих задач и требований, полёта фантазии дизайнера.
    Ответ написан
    Комментировать
  • Блок выходит за пределы, как убрать scroll?

    neuotq
    @neuotq
    Прокрастинация
    Ну так у вас же прокрутку добавляет не section, а другой блок(content). Вот ему и добавляйте новый класс для hidden
    Ответ написан
    4 комментария
  • Как научится понимать Bitrix за один вечер?

    neuotq
    @neuotq
    Прокрастинация
    Перво наперво настойчиво рекомендую сообщить об этом заказчику, саму верстку выполнить в полном объеме согласно принятому описанию заказа, а далее предложить варианты заказчику. Либо вы заканчиваете полностью просто верстку статичных html для последующей интеграцией специалиста по bitrix в саму систему, либо вы сами берете на себя эти доработки но с условиями расширения времени заказа (и может быть оплаты).
    Вашей вины в том что заказчик полностью не описал задачу нет, но и самого заказчика конечно же полностью в этом винить нельзя и будет по честному для заказчика как можно быстрее ему сообщить о проблеме и наиболее легкие пути выхода для всех сторон.
    Если там человек адекватный, он оценит честность и думает пойдет вас на встречу если вы аргументировано обоснуете иные сроки или иные условия выполнения заказа.
    Ну и в крайнем случае можно закрыть заказ по согласовыванию сторон, если же он подаст жалобу, то у вас тоже есть право жаловаться на условия ТЗ, в которых не было раскрыта истинная сложность задания.
    И еще раз повторю, я настоятельно рекомендую быть прежде всего честным с заказчиком, а не стараться сделать то что у вас очень может быть не получится и таким образом неожиданно для заказчика сорвать сроки/качество продукта. Поэтому лучше как можно раньше предупредить, чтобы человек тоже скорректировал свои планы и оценил вашу честность.
    Ответ написан
    Комментировать
  • Как разместить блоки текста над input или на нем?

    neuotq
    @neuotq
    Прокрастинация
    Разу у вас все сверстано, то разумнее всего задать дивам что перекрывают кнопку свойство pointer-events в значение none.
    pointer-events: none;
    Таким образом бразуер будет игнорировать события мыши для этих элементов.
    Ответ написан
    1 комментарий
  • Как использовать ubuntu для верстки с использованием фотошопа или его аналогов?

    neuotq
    @neuotq
    Прокрастинация
    Ну по большому счету особо проблем сегодня нет и под win, есть как минимум GitBash + есть встроенный Ubuntu под Windows этих штук уже для всего хватит(практически). Плюс есть удобная вещь - Vagrant + есть Docker. Все эти штуки помогут развернуть под Windows полноценную среду разработки для практичесик любого уровня Fullstack разработки.
    Что касается "порезок" и прочего, то советую взглянуть на клевый инструмент Zeplin, он своих денег стоит.
    А так в целом работайте там, где вам удобнее. Просто для текущего фронтэнд разработчика(я надеюсь вы понимаете что это не только верстка), желательно иметь POSIX совместимую систему, так как огромное количество инструментов на это завязано, но MS в последние годы много сделало чтобы и под win не было особых проблем.
    Так что дерзайте, настраивайте и планируйте инструменты который вам лично нужны для работы, и уже после этого выбирайте ОС.
    PS кстати, так же в последние годы одной из лучших систем для разоработчика считают MacOS, имеем гораздо более высокую стабильность относительно Линукса(я про пользовательскую часть) и все плюсшки *nix без особых усилий. Но повторюсь, при желании под Windows у вас тоже будет все хорошо скорее всего.
    Ответ написан
    7 комментариев
  • Как кастомизировать повторяющиеся блоки в Pug?

    neuotq
    @neuotq
    Прокрастинация
    Добавлять переменную с идентификацией страницы, и ставить класс в зависимости от значения переменной, а потом проверять, типа того:
    li(class=(page === "woohoo" ? "active" : ""))
    Ответ написан
    3 комментария
  • Как решить проблему валидности используя lazy load?

    neuotq
    @neuotq
    Прокрастинация
    Валидность не то к чему нужно стремится как к абсолюту, оптимизация, скорость важнее. Поэтому считайте что это плата за оптимизацию, можете проверить любую хоть немного сложную страницу любых интернет гигантов, нигде нет 100% валидности.
    Варианты с муляжом, 1 пиксельной картинкой не вариант, это портит весь смысл.
    Короче говоря не парься. Стремится к валидному коду хорошо, но не любой ценой.
    Ответ написан
    Комментировать