• Как найти все символы в строке "abaabaaabaabaaaa", кроме подстроки "aa"?

    @dodo512
    $str = 'abaabaaabaabaaaa';
    $out = preg_split('~(?<!a)aa(?!a)~', $str, -1, PREG_SPLIT_NO_EMPTY);
    print_r($out);
    Ответ написан
    8 комментариев
  • Как во Vue добавить класс без $style.название_класса?

    bingo347
    @bingo347
    Crazy on performance...
    Модульный CSS - это не особенность vue, это особенность связки css-loader + vue-loader для webpack. Роль css-loader тут в замене имен классов (а так же имен keyframes и прочих внутренних штук, но не имен тегов и не id) на хэш от пути к файлу и оригинального имени класса, а так же предоставлении объекта с маппингом оригинального имени класса в сопоставленный ему хэш. А роль vue-loader в добавлении миксина с beforeCreate хуком прокидывающим объект маппинга в this.$style
    Из документации css-loader можно узнать, что любой селектор или его часть можно обернуть в конструкцию :global() чтобы указанные имена классов не переименовывались.

    style[scoped]
    да с этим познакомился, но тогда не будет модульности у классов
    Данная штука работает на уровне самого компилятора vue и она дает модульность за счет добавления атрибута вида v-1234567 (где 1234567 - хэш от содержимого файла .vue) ко всем тегам и добавления селектора по атрибуту. Поставленную задачу это действительно решает, оставляя оригинальные классы и работая даже на имена тегов, но ценной более медленных селекторов по атрибуту.
    Почему нельзя было решить эту задачу добавлением доп класса, как это сделано в svelte например, с которого Эван Ю почти полностью своровал дизайн... Это известно лишь самому Эвану, который впрочем очень часто единолично принимает не самые оптимальные по производительности решения, когда не умеет сделать нормально.

    Еще одним решением будет немного покодить. Указанный в вопросе фрагмент шаблона
    <template>
      <div>
        <div :class="test1">test1</div>
        <div :class="test2">test2</div>
      </div>
    </template>
    будет искать поля с ключами test1 и test2 в this, а значит их вполне можно туда переложить в beforeCreate хуке из this.$style, например так:
    const mixin = {
      beforeCreate() {
        const applyClassNames = () => Object.keys(this.$style).forEach(className => {
          this[className] = this.$style[className];
        });
        if(!this.$style) {
          // наш миксин может оказаться раньше миксина лоадера
          Object.defineProperty(this, '$style', {
            enumerable: true,
            configurable: true,
            get() {},
            set: $style => {
              Object.defineProperty(this, '$style', {
                enumerable: true,
                configurable: true,
                writable: true,
                value: $style
              };
              applyClassNames();
            }
          });
          return;
        }
        applyClassNames();
      }
    };
    export default {
      mixins: [mixin],
      // ...
    };
    Правда минусом подхода будет то, что все имена классов окажутся непосредственно в this компонента, что черевато конфликтами.
    Ответ написан
    Комментировать
  • Как правильно сделать import обычного класса в React компонент?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Ошибка линтера no-unused-expressions. Импортируете модуль, но не используете.

    Учитесь читать и понимать тексты ошибок, а так же самостоятельно гуглить решения проблем. Для этого достаточно вбить в поисковике текст ошибки.
    Ответ написан
    4 комментария
  • Как сделать чтобы flex элемент занимал всю высоту контейнера?

    alams_stoyne
    @alams_stoyne
    Full Stack Developer - #PHP #CSS #JS #DB
    Как показано в твоём примере работать не будет.

    Я модифицировал твой пример - так работает:
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    </head>
    <body>
      <div class='d-flex'>
        <div class='container d-flex flex-wrap'>
          <button>1</button>
          <button>2</button>
          <button>3</button>
          <button class="other">5</button>
          <button>6</button>
        </div>
        <div class='d-flex flex-wrap'>
          <button>4</button>
        </div>
      <div class='container'>  
    </body>
    </html>


    .d-flex {
      display: flex;
    }
    .flex-wrap {
      flex-wrap: wrap;
    }
    .container {
      width: auto;
      max-width: 240px;
    }
    
    button {
      width: 80px;
    }
    
    .other {
      width: 160px;
    }
    Ответ написан
    Комментировать
  • Как сделать чтобы flex элемент занимал всю высоту контейнера?

    AndrewHaze
    @AndrewHaze
    Умею гуглить яндексом
    На flex`е без изменения разметки никак...
    Можно grid`ом
    Ответ написан
    Комментировать
  • Как правильно передать данные между компонентами?

    0xD34F
    @0xD34F Куратор тега React
    this.handleAddNews.bind(this, arguments)

    А не кажется ли вам, что тут есть что-то лишнее?

    Ну и вообще, не надо так. Вместо

    handleAddNews(newPost) {

    пишите

    handleAddNews = (newPost) => {

    и тогда никакого bind использовать будет не надо:

    <Add newsadd={this.handleAddNews} />
    Ответ написан
    5 комментариев
  • Как правильно передать данные между компонентами?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    https://jsfiddle.net/ybeaz/njLx57u4/
    вот простой рабочий пример, надеюсь вы разберетесь
    Ответ написан
    Комментировать
  • Начало верстки. Что не так и какие советы для улучшения?

    tema_sun
    @tema_sun
    Корзину сделай svg, тогда цвет по ховеру менять можно будет на любой.
    По верстке - поддерживать CSS с каскадом очень муторное дело. Попробуй переделать этот макет, например, по БЭМу.
    Сейчас обсуждать особо нечего. Адаптива нет, методологии нет. Простенько, топориком на коленке.
    Ответ написан
    Комментировать
  • Начало верстки. Что не так и какие советы для улучшения?

    @Shinso
    Ну я бы наверное отступы у верхней менюшки сделал в обе стороны а не только слева, ну и для картинок слайдера с помощью js сделать предзагрузку чтобы не мигало при переключении. А корзинку наверное стоит засунуть в фон кнопки ну а там уже просто через ховер менять.
    .user-navigation a {
        background: url(http://i102.fastpic.ru/big/2018/0827/e6/477b04b93dab55d5ff68721423e4a2e6.png)no-repeat left center;
    }
    Ответ написан
    Комментировать
  • Работа псевдокласса :checked в связке с другими классами?

    victory_vas
    @victory_vas
    мне кажется, тут суть не в :checked. Просто логично, что в чекбоксе у вас не может быть вложен другой селектор. А вот рядом стоять (~) может. Поэтому 1й вариант работать не может, а второй - да (сложно утверждать на 100%, не видя вашего HTML)
    Ответ написан
    Комментировать
  • Работа псевдокласса :checked в связке с другими классами?

    @hesrun
    Да, т.к. первый селектор подразумевает, что .slider-controls label находится в инпуте, а такого быть не может...

    По этому рабочий второй вариант, они ищет братьев по дом дереву. Тут два варианта или "+" - если нужен следующий, или "~" - если нужные все следующие братья.

    Ну или по чекеду применяться стили для самого инпута.
    Ответ написан
    Комментировать