• Поддерживается ли во всех браузерах такой поиск элементов по атрибуту?

    profesor08
    @profesor08 Куратор тега JavaScript
    Почему нет? Это обычный CSS селектор, к тому-же с лишней звездой.
    Достаточно: document.querySelectorAll("[data-title]")
    Ответ написан
    Комментировать
  • Как найти элемент который содержит определенный текст и удалить его родитель?

    profesor08
    @profesor08 Куратор тега JavaScript
    https://developer.mozilla.org/ru/docs/Web/API/Docu...

    Обход исключительно текстовых узлов.
    const walk = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false);
    
    let node = null; 
    
    while(node = walk.nextNode()) {
      if (node.textContent.search("text to search") >= 0 && node.parentNode) {
        node.parentNode.remove();
      }
    }
    Ответ написан
    Комментировать
  • Как правильно писать id тоже по БЭМ?

    like-a-boss
    @like-a-boss
    Признайся,тебяТянетНаКодМужика,ты—программный гей
    Главное придерживаться н̶е̶к̶о̶т̶о̶р̶о̶г̶о̶ ̶п̶л̶а̶н̶а̶ единого правила. Я использую БЭМ, id пишу в camelCase. Хочешь быть как я, тоже пиши так.

    2 минуты спустя: *посмотрел свой код* У меня своя методология: в камелКейсе я, оказывается, пишу id для всяких submit'ов, в иных случаях id совпадают с классом чаще всего для простоты ориентирования. Не будь как я. Придерживайся единого правила.
    Ответ написан
    Комментировать
  • Плохо ли использовать data атрибуты?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Это целесообразно в некоторых ситуациях.
    Например, тебе нужно нарисовать собственные title, это очень просто сделать, если есть data-title.

    Записывать же все подряд данные в data не красиво. Если у тебя есть массив с большими данными, из которых ты формируешь html, лучше обращаться по id к массиву при работе. Проще говоря, если с data будет значительно проще - делай через него, нет - лучше используй другие способы.
    Ответ написан
    Комментировать
  • Лучше используя тег или такой длинный класс задать стили?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Смотри тут нужно подключить логику и правила BEM методологии, по BEM нельзя использовать конструкцию с обращением к span, да и еще учитывая что у вас там есть модефикачия ребенка "feature__color__item_first feature__color__item", сегодня у вас span сегодня а завтра будет div и все приехали))!
    По поводу неймина и длинны не переживай это нормально, но стараться нужно писать более логично и с малым набором имен, лучше больше старайся декомпозировать свои компоненты!
    Как уже было написано выше у вас не правильный BEM!

    component: .feature
    block: .feature__color
    modeficator: .feature__color--first или .feature__color_first

    Вот смотри правильно так:
    <div class="feature">
        <div class="feature__color feature__color--first">
            <mark class="feature__color-item feature__color-item--first"></mark>
            <mark class="feature__color-item"></mark>
        </div>
    
        <div class="feature__color feature__color--first">
            <mark class="feature__color-item feature__color-item--first"></mark>
            <mark class="feature__color-item"></mark>
        </div>
    </div>
    
    или :
    <div class="feature">
        <div class="feature__color feature__color_first">
            <span class="feature__color-item feature__color-item_first"></span>
            <span class="feature__color-item"></span>
        </div>
    </div>
    
    или :
    <div class="feature">
        <div class="feature-color feature__color_first">
            <span class="feature-color__item feature-color__item--first"></span>
            <span class="feature-color__item"></span>
        </div>
    </div>


    Если вы уверены что внутри будет один блок то в виде исключения можно написать так(но я не рекомендую так как это нарушает BEM):
    <div class="feature">
        <div class=feature__color"">
            <div class="feature-color-item ">
                <h2>first text</h2>
                <mark>second text</mark>
                last text
            </div>
    
            <div class="feature-color-item feature-color-item--fietst ">
                last text
            </div>
        </div>
    
        <style>
            .feature-color-item {
                font-size: 20px;
            
                h1 {
                    font-size: 30px;
                }
            
                span {
                    font-size: 10px;
                }
            }
        </style>
    </div>


    Если вы используете современный фреймворк, то тогда за счет инкапсуляции можно сократить нейминг, вот на примере ануглар:
    <feature>
        <atricle class="__color">
            <div class="__item"><span>text</span></div>
    
            <div class="__item"><span>text</span></div>
    
            <div class="__item"><span>text</span></div>
        </atricle>
    </feature>
    
    или :
    
    <feature>
        <atricle class="--first">
            <feature-color-item >
                <h2 class="__title">first text</h2>
                <mark class="__mark">second text</mark>
                last text
            </feature-color-item>
    
            <feature-color-item class="--first">
            <h2 class="__title">first text</h2>
            <mark class="__mark">second text</mark>
            last text
            </feature-color-item>
        </atricle>
    
        <style>
          /* componet feature-color-item */
            :host {
                font-size: 20px;
    
                .__title {
                    font-size: 30px;
                }
    
                .__mark {
                    font-size: 10px;
                }
                
                &.--first{
                     color: #red;
                 }
            }
        </style>
    </feature>
    Ответ написан
    Комментировать
  • В чем проблема слайдер на js?

    like-a-boss
    @like-a-boss
    Признайся,тебяТянетНаКодМужика,ты—программный гей
    Слайдер нужно писать в ООП стиле. Вызывать его на некотором контейнере и работать(искать) в этом контексте, если вы желаете получить несколько экземпляров слайдера.
    То, что вы в одном месте поменяли на querySelectorAll, не сделает все остальные querySelector работающими как надо. Удалить и переписать заново, используя приобретённый опыт.
    Ответ написан
    Комментировать
  • Почему некоторые люди утврерждают что плохо использовать jQuery?

    @Kirill-Gorelov
    С ума с IT
    Добавлю еще момент.

    Помимо всего прочего jQuery тяжелее своих аналогов. И работает медленнее чем чистый js.
    Но конечно же это "медленно" для нас практический не заметно. Потому что jQuery можно сказать библиотека/фреймворк для js.
    Ответ написан
    Комментировать
  • Почему некоторые люди утврерждают что плохо использовать jQuery?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Во-первых, jQuery родилась во времена, когда каждый браузер реализовывал JS и DOM API по-своему, её основным назначением было сглаживать эти различия. В наше время это преимущество библиотеки уже утеряно. Во-вторых, jQuery не соответствует основному вызову современности - сложной кодовой базе. В развитом фронте код, использующий jQuery, быстро превращается в трудно сопровождаемую лапшу. Поэтому для простого фронта чаще стали использовать ванильный JS, а для сложного фреймворки типа React, Angular и Vue.
    Ответ написан
    23 комментария
  • Что лучше делать чтоб в будущем устроиться в офис?

    @dimoff66
    Кратко о себе: Я есть
    Самое простое - сделать интернет магазин:
    - список товаров с категориями
    - Добавление редактирование нового
    - Отбор по категории, поиск по названиям
    - Изменение цены с сохранением истории цен
    - Добавление товара в корзину, редактирование корзины
    - Закрытие заказа

    Не огбязательно это делать с бэком, можно вызовы бэка заменить на моковые данные.

    Если этот минимум будет сделан и сделан качественно, то у работодателя не будет причин вас не взять.

    Также ищите на hh.ru вакансии с тестовыми заданиями, они также помогут вам набить руку и узнать много нового. И vue лучше знать не основы, а сделать на нем приложение.
    Ответ написан
    Комментировать
  • Что лучше делать чтоб в будущем устроиться в офис?

    b0nn1e
    @b0nn1e
    Alcohol & Ruby on Rails
    При устройстве в офис на ваше портфолио всем ложить болт, в лучшем случае его в принципе откроют, на много важнее резюме.
    Если ваще резюме пропустит HR, вам скорее всего дадут тестовое задание, и если с тестовым все будет збс - вас позовут на собес, где и будет проверяться глубина ваших знаний.
    Важно не количество языков/фреймворков которые вы знаете, а качество и глубина знаний.
    Ответ написан
    3 комментария
  • Как вычислить line-height в Avacode?

    zoozag
    @zoozag
    Opencart
    как перевести это значение в em

    Поделить line-height в px на размер шрифта в px

    Чем отличается line-height = 1em от line-height = 1

    Пример, когда есть разница
    Ответ написан
    Комментировать
  • Как браузеру прочесть минифицированный css файл?

    @ar2rsoft
    PHP-developer
    Форматирование нужно только человеку, браузер прекрасно все прочитает.

    Html тоже можно минифициолвать, удалить пробелы, табудяции
    Ответ написан
    2 комментария
  • Почему margin не работает?

    Brad9aga
    @Brad9aga
    1.body в верстке никогда не используй, за исключением некоторых моментов(оставлю это тебе).
    2.используй для этого див обертку.
    3.подучи css
    4. (margin: 0 auto;)не правильная запись, достаточно (margin: auto;) указать.
    5.твои точки с запятыми, которые не играют роли, еще как играют роли.
    https://jsfiddle.net/yjb9gnu6/
    p.s margin:auto, этот прием не работает, если элемент не блочный или у него не указана ширина.
    Ответ написан
    3 комментария
  • Как воспроизвести видео при клике на кнопку?

    как-то так, по крайней мере со звуком так) убегаю нет времени глянуть но вроде все одинаково для звуки и видео.
    для аудио тоже самое будет - <audio id="fon" src="audio/fon-1.mp3" preload="auto"></audio>


    <video id="fon">
    <source src="video.mp4" type="video/mp4">
    </video>
    
    <div class="btn-ok">Click Play</div>
    <div class="btn-stop">Click Stop</div>

    const btnOk = document.querySelector('.btn-ok');
    const btnStop = document.querySelector('.btn-stop');
    const wrapperVideo = document.getElementById('fon');
    
    btnOk.addEventListener('click',function(){
      wrapperVideo.play();
    });
    
    btnStop.addEventListener('click',function(){
      wrapperVideo.pause();
    });
    Ответ написан
    Комментировать
  • Как анимировать появление градиента при hover?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Сам по себе градиент не анимируется средствами CSS, потому что это по сути отрендеренная браузером картинка. Его можно заставить делать оное только через JS.

    Но можно анимировать отдельный блок с ним (прозрачность, трансформация и т. п.). В данном случае можно повесть на псевдоэлемент спокойно:


    В будущем есть планы сделать анимируемые градиенты в браузерах, но спецификации для этого до сих не готовы.
    Ответ написан
    Комментировать
  • Обязан ли я использовать Reboot при исползовании Bootstrap?

    iiiBird
    @iiiBird Куратор тега Bootstrap
    Пока ты спишь - твой конкурент совершенствуется
    если ты про reset css, то в Bootstrap уже встроен свой reset css
    Ответ написан
    1 комментарий
  • Какой слайдер js самый лучший?

    тот, который решает текущую задачу
    Ответ написан
    Комментировать
  • Как вызвать функцию ( setInterval )?

    heretic_man
    @heretic_man
    $('document').ready(function(){
        setInterval(function () {
          console.log("shhsha");
        }, 2000)
    });
    Ответ написан
    Комментировать
  • Как вызвать функцию ( setInterval )?

    nikolayshabalin
    @nikolayshabalin
    Автор профессиональных курсов в HTML Academy
    Ответил в комметариях Ивана, но добавлю ещё.

    Заведите себе нормальный текстовый редактор/IDE с подсветкой синтаксиса. У Вас ошибка в синтаксисе. Метод ready не закрыт. Должно быть ready(), в у Вас ready(
    Ответ написан
    Комментировать