• Почему div не может быть дочерним элементом label?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что по стандарту label имеет модель Phrasing content, и может содержать только определённый набор тэгов (исключая вложенный label)
    Ответ написан
    Комментировать
  • Пример проекта который включал бы всю "класссику" фронтенда?

    или более похож на реальный боевой проект

    Куча легаси кода, все тормозит и глючит. Половина проекта с горем пополам переписана на современный манер.

    Не видел ни одного крупного боевого проекта с большой историей, который был бы нормально написан.
    Ответ написан
    1 комментарий
  • Как проверить работоспособность сайта на новой версии php?

    DevMan
    @DevMan
    загнать проект в phpstorm, указать в настройках php7, читать ошибки.
    Ответ написан
    3 комментария
  • Как проверить работоспособность сайта на новой версии php?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    Идём на php.net, ищем раздел с обратной совместимостью и migration guide и проверяем просто по списку. Все
    Ответ написан
    Комментировать
  • Как изменить стили через javascript?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    var el = document.querySelector("a[href='/products/962112']"); // в селекторе хардкод... не будет ссылки с таким href - все сломается
    
    // тут был цикл, но я его убрал, ибо один элемент берем
    
    var products = document.getElementsByClassName('product'); // тут коллекция, ее надо перебирать циклом
    for(var i = 0; i < products.length; i++) {
      products[i].style.height = el.style.height;
    }


    UPD: по просьбе origami1024 добавляю вариант с CSSOM
    Во-первых, нам понадобится новый элемент style, чей CSSOM мы будем править, его стоит разместить ниже других стилевых подключений (не важно через style или link), я же просто добавлю в конец head
    Сам CSSOM элемента style доступен через его свойство sheet - извлеку его сразу в переменную:
    const {sheet} = document.head.appendChild(document.createElement('style'));

    Во-вторых, в CSSOM правила пронумерованы с 0. Притом можно заменять существующие правила по их индексу, а можно вставлять новые в конец (индекс при этом так же нужно указывать, а если указать неверно - выкинет эксэпшн). Нам же удобнее обращаться к правилам по селектору, поэтому я сделаю объект для сопоставления селектора с индексом правила и счетчик индексов:
    const rulesIndexesBySelector = {};
    let nextIndex = 0;

    Ну и наконец реализуем вспомогательную функцию для обновления CSSOM правила по его селектору:
    function updateRule(selector, declarations) {
      const rule = `${selector}{${declarations}}`; // полное правило - селектор + декларации в {}
      if(selector in rulesIndexesBySelector) {
        // индекс селектора уже известен, обновим правило
        const index = rulesIndexesBySelector[selector];
        sheet.deleteRule(index); // сначала удалим старое правило освободив индекс и отменив его свойства
        sheet.insertRule(rule, index); // и вставим на его место новое
      } else {
        // новый селектор
        const index = nextIndex++; // важен именно постинкримент, чтоб самый первый получил 0, второй 1 и т.д.
        rulesIndexesBySelector[selector] = index; // запомним на будущее
        sheet.insertRule(rule, index); // и вставим правило в конец
      }
    }

    Пример примитивный, но каждый думаю спокойно расширит его под себя.
    У меня например declarations собираются из vue объекта, который можно мутировать (реактивные стили оО) + добавляются вендорные префиксы, если браузер не знает каких-то свойств (не автопрефиксер конечно, но зато работает по месту)

    Использовать это все теперь можно крайне просто:
    updateRule('.product', 'height: 40px; width: 50px');
    Ответ написан
    5 комментариев
  • Какое правильное разделение файлов в БЭМ?

    @tomatopotato
    каком файле мы прописываем стили для .wrapper ? Поскольку это не блок, я так понимаю, что создавать файл не надо и стили надо прописывать просто в начале main.scss ?

    Почему не блок? Он вполне может быть блоком без смыслового функционала. Оберточный. Так же через него, через его элементы позиционируются вложенные в него блоки.

    2) В каком файле прописывать стили для header, footer, section-1, section-2 ? Они не являются блоками по БЭМ, насколько я понимаю, значит ли это что их надо описывать в main.scss или все таки надо создавать отдельный файл под стили для каждой секции ?

    Если вы имеете ввиду теги, то это не одобряется БЭМ. БЭМ оперирует только классами. теги стилизуются через них же. Это сделано для атомизации проекта и легкого переноса блоков из проекта в проект.

    Если нам надо изменить это свойство у одного блока, соответственно придется менять и у всех остальных, находящихся в section-1.

    Блоки не должны влиять друг на друга, это основопологающая идея БЭМ. Если блоки связаны или влияют друг на друга это уже не БЭМ, а что-то похожее на него. Так же внутри блока следует избегать использования каскада и наследования, это может внести дополнительную путаницу и увеличить связанность блока.


    Придется лезть в файл каждого блока и менять свойства, что не слишком удобно, особенно если блоков много

    Это вполне удобно и это и есть БЭМ. Ты не лазишь по огромному файлу со стилями, а идешь в маленький конкретный файл где все находится перед глазами.


    это не спасает нас от огромного дублирования кода

    От дублирования кода спасают миксы. Читайте про них здесь

    5) Правильная практика - помещать все медиа запросы, относящиеся к блоку в файл с версткой этого блока, или должен быть отдельный файл под все медиа -запросы ?

    медиа-запросы изменяющие геометрию блока должны находиться в родительском блоке в его элементах. Сам блок не может изменять свою геометрию за это отвечает файл стилей элемента родительского блока. Соответственно, если мы будем изменять размер блока через медиа запрос, то это делается через элемент родительского блока.
    <head class="head"> 
    <div class="block head__block"> </div>
    </head>

    Соответственно блок класса .block c примиксованным классом .head__block является элементом блока .head и можно менять его геометрию и позиционирование через класс .head__block используя медиазапросы например. Естественно элемент head__block с медиазапросами будет храниться в блоке head и лежать в его подпапке с элементами.
    Другой случай это когда через медиа запросы меняется например стиль блока, скажем его цвет. Тогда медиа запрос должен быть внутри блока, а конкретно в его модификаторе например в данном случае у блока block может быть модификатор block_red в котором будет медиазапрос со свойствами при маленьком экране окрашивать элемент в красный. Этот файл с медиазапросами уже будет находиться в родном блоке block в подпапке с модификаторами.
    Если где-то не согласны или я ошибся пишите в комментарии обсудим.
    Ответ написан
    1 комментарий
  • Зачем нужны psd макеты для создания сайтов?

    Я так понимаю инженеру дают чертеж на бумаге, а он по нему строит дом, но для чего это нужно? Зачем вообще чертежи, почему не строить сразу же? Почему архитектор не может построить дом? Инженеру даются поэтажные планы, а он должен их из кирпича строить? Если инженеру не дадут чертеж, а скажут просто построить дом, может ли ему пригодится для поэтажных планов archCAD или его замена?
    Ответ написан
    1 комментарий
  • Как исправить двойное подключение файлов?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Комментировать
  • Планшет или электронная книга?

    @evgeniy_lm
    Немного теории. Человек за миллионы лет эволюции приучен пользоваться отраженным светом. С другой стороны все современные девайсы отображения информации являются прямыми излучателями, т.е. грубо говоря любой экран это "лампочка". Само собой сидеть и пялится на лампочку не есть хорошо. При этом не важно какой абажур на нее натянут хоть TFT, хоть IPS или еще какая хрень.
    Другое дело eInk. По сути это навороченный лист бумаги, само собой чтение электронной книги так же вредно как и обычной (почти ни как). С другой стороны приобретая электронную книгу вы должны понимать, что это всего лишь книга (ну может еще и блокнот для заметок), ни какого интернета и игр. Так же нужно учитывать что почти вся техническая литература имеет большой формат и читать на 6-7" читалке будет проблематично, а большие (10"+) стоят очень дорого, про цветные я вообще молчу.

    В итоге если вам нужна именно книга (только читать) и у вас достаточно денег то ищите 10" книгу может даже цветную, если ваш бюджет строго ограничен то берите планшет 10" на Super AMOLED или хотя бы IPS
    Ответ написан
  • Объясните смысл строчки, JS?

    @VeryLongAgoDid
    Всё возможно
    Булева алгебра и логические операторы в своей красе). Если кратко это всегда false а если запариться и раскрыть скобки по порядку то всё становится очевиднее. Я позволю себе сразу перевести !'String' и Boolean(0) в false, чем они и являются
    false ИЛИ (true ИЛИ (true И false)) И false => 
    false ИЛИ (true ИЛИ false) И false => 
    false ИЛИ true И false =>

    Теперь они начинают выполняться по порядку записи
    true И false =>
    false
    Ответ написан
    Комментировать
  • Как выполнить верстку вот такого блока?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Я сделал на flex, потому такая штука будет работать и в IE11. Хотя проще сделать с помощью grid. А вообще, такое можно сделать хоть на float (но не надо).



    Можете их даже компоновать иначе, ничего не развалится:
    Ответ написан
    4 комментария
  • Как сверстать данную секцию лэндинга?

    Nolis
    @Nolis
    it-гопник
    Опять же, ничего необычного.
    Просто 3 карточки, можно их оформить через Flex.
    Сзади кружок можно влепить задним фоном, думаю смысла спрайт туда пихать нет.
    Ответ написан
    Комментировать
  • Чем отличается react от vue, основное отличие?

    0xD34F
    @0xD34F Куратор тега React
    у одного пять букв в названии, у другого три

    освойте js, и подобные вопросы перестанут вас волновать
    Ответ написан
    Комментировать
  • Как можно перевести jQuery в javascript?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Где...

    Здесь.

    ...или как

    Изучить js, хоть немного - тогда переписать самостоятельно труда не составит.
    Ответ написан
    Комментировать
  • Что значит знать REST API?

    miraage
    @miraage
    Старый прогер
    Как такового REST API нет. Есть архитектурный стиль REST, а есть RESTful Services.
    (Не знаю, кто как, а я никогда не любил вакансии, которые написаны тяп-ляп непонятно кем.)

    https://en.wikipedia.org/wiki/Representational_sta...
    https://stackoverflow.com/a/1568858/790304

    TL;DR: REST лишь задаёт формат общения. И если сервис следует этому формату, то его можно назвать RESTful.
    Ответ написан
    1 комментарий
  • Где найти фриланс студию начинающему программисту?

    Zoominger
    @Zoominger
    System Integrator
    Подскажите пожалуйста, существует ли такой сервис, вроде фриланс студии, где может начинающий программист найти удаленную работу и участвовать в аутсорсинговых проектах.

    Понимаете, если такое место вдруг и появится, то ни один фрилансер даже под страхом расстрела не расскажет о нём другому фрилансеру.

    То есть у программиста нет опыта заниматься фрилансом, а такая студия предоставляет наставничество и работу.

    Сами-то подумайте, зачем им нужны неопытные программисты, которые пороху-то не нюхали. Что они напишут? За какие сроки? Таких контор нет.

    Но вы можете сами за пару лет набить портфолио, найти бесплатную стажировку, потом, может, найти место в веб-студии без оформления на 20 тысяч рублей в месяц, за год дорасти до джуна, потом пойти работать в нормальное место, параллельно набивая стату на фрилансе и вот пото-о-ом, лет через пять, когда у вас будет зарплата тысяч 40-50, возьмите и сделайте такую контору.
    Ответ написан
    2 комментария
  • Имеется ли ответственность за участие в разработке нелегальных сайтов?

    longclaps
    @longclaps
    Излюбленная квалификация в обвинительном заключении (а так же в ходатайстве об аресте до суда, etc) - "в составе организованной группы". От сумы и от тюрьмы не зарекайся )
    Ответ написан
    Комментировать
  • Как бороться с кашей в голове на работе?

    DevMan
    @DevMan
    очень прост: ты либо знаешь, либо не знаешь и усиленно наверстываешь.
    все остальное - из разряда "мне херово, пожалейте".
    Ответ написан
    8 комментариев