Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
RazerVG

Владимир Голубь

FrontEnd
  • 35
    вклад
  • 371
    вопрос
  • 128
    ответов
  • 32%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как настроить автоматические отступы от скобок при автоимпорте в phpStorm?

    s0xzwasd
    Даниил Маслов @s0xzwasd
    Preferences/Settings | Editor | Code Style | JavaScript | Spaces | Within | ES6 import/export braces.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как сделать spread из функции в переменные, которые уже объявлены?

    miraage
    Mikhail Osher @miraage
    Старый прогер
    function getA() {
      return {
        a: 10,
      }
    }
    
    let a = 'string';
    
    ({ a } = getA());
    
    console.log(a);// 10
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Можно ли задать имя группе в регулярном выражении в javascript?

    Stalker_RED
    Stalker_RED @Stalker_RED
    mdn → regex → using named groups
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Какой выбрать backend framework с rest api, Если фронт React или Angular?

    alexey-m-ukolov
    Алексей Уколов @alexey-m-ukolov Куратор тега Веб-разработка
    Любой. Что там на бэкенде фронту совершенно не важно. REST API же можно сделать на любом хоть сколько-нибудь не эзотерическом фреймворке.
    Открывайте рейтинг фреймворков и/или Хэдхантер и выбирайте. При таких расплывчатых требованиях за вас этого никто не сделает.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Можно ли совместить два запроса с группировкой?

    Akina @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT priority,
           SUM(time >= '2021-06-04' AND time < '2021-06-05') AS today,
           SUM(time >= '2021-06-03' AND time < '2021-06-04') AS yesterday
    FROM  tableX
    WHERE time >= '2021-06-03' AND time <= '2021-06-05'
    GROUP BY priority
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Почему не добавляется mixin?

    dima9595
    Дмитрий Кузнецов @dima9595
    Junior PHP
    Не mixin, а mixins, наверное.
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Когда использовать jpg а когда png?

    Stalker_RED
    Stalker_RED @Stalker_RED
    PNG для тех изображений, где нужна прозрачность или где много одноцветных областей, но при этом вектора почему-то нет.

    JPEG для фоточек, и всего такого, где много мелких разноцветностей.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Когда использовать jpg а когда png?

    SmthTo
    Rustam Bainazarov @SmthTo Куратор тега Вёрстка
    Все перепёлки мира будут оплакивать мою смерть.
    Типичные примеры использования:

    JPG — фото, иллюстрации без прозрачности, где важны цвета, переходы, оттенки и т. п. В таком случае JPG выигрывает у других форматов в плане соотношения качество/цветность/размер. Так себе для контрастных схем и текстов.

    PNG — фотографии, схемы, графические элементы с прозрачностью, всякие вылетающие за границы элементы, где относительно много цветов (фото людей, инопланетян и т. п.). При соотносимом с JPG размере файла, PNG содержит гораздо меньше цветов, а сравнимые с JPG по количеству цветов файлы PNG будут весить очень много (поэтому для фото используют JPG). Если дело доходит до схем и текстов, PNG предпочтительнее JPG в силу отсутствия артефактов на контрастных краях.

    GIF — анимации. Ну тут вообще отдельная песня. Ему на смену пророчат APNG и MP4, но воз и ныне там.

    SVG — иконки, иллюстрации. Поддерживает прозрачность, бесконечно тянется. Обычно те же иконки в SVG весят меньше, чем в PNG при одинаковом фактическом размере использования. Можно анимировать (отдельная тема и куча особенностей) и управлять с помощью CSS и JS, если встраивать inline (можно и через #use, но с ограничениями). Наверное, самый чувствительный к ошибкам формат, потому что состоит из кода: сложный SVG-файл может убить производительность. Можно очень легко зашить вредоносный код, поэтому запрещён в вёрстке писем.

    P. S. Я не могу описать все случаи, бывают уникальные, так как процесс выбора формата зависит от контента вашего изображения. В каждом конкретном нетипичном случае — думайте сами. К примеру, если векторная иллюстрация весит много, то есть смысл перевести её в JPG или PNG. Иногда SVG-иконка может весить в разы больше её PNG-аналога (при одинаковом фактическом размере использования, например, 100 на 100 пикселей при 1:1 размере viewport к физическому разрешению экрана) — тут многое зависит от методов и качества создания таких иконок. Как правильно отметил @Adamosу, иногда затраты на рендеринг SVG (на стороне клиента) не окупают его преимуществ, и приходится использовать растровые изображения. Ну и т. д… Особенностей использования форматов — куча.

    P. P. S. Почитайте о Retina, ибо нет никакого «для ретины следует юзать JPG».
    Ответ написан более трёх лет назад
    22 комментария
    22 комментария
  • Unserialize в js?

    alexey-m-ukolov
    Алексей Уколов @alexey-m-ukolov Куратор тега JavaScript
    https://github.com/naholyr/js-php-unserialize
    Ну и здесь еще много вариантов.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как решить проблему с Map и async/await "No overload matches this call"?

    bingo347
    Дмитрий Беляев @bingo347 Куратор тега TypeScript
    Crazy on performance...
    Задайте явно дженерик для внутреннего Map
    public async getContent() {
    
        const a = new Map([
          [
            'AA',
            new Map<string, string | string[]>([
              ['desc', [await this.i18n.t('Hello'), await this.i18n.t('Hello')]],
              ['a', 'b']
            ])
          ]
        ]);
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Могу ли я в чистом javascript в асинхронной функции подождать возникновения события?

    lazalu68
    Kovalsky @lazalu68
    Salmon
    Конечно можете. После await у вас должен идти промис, который будет ресолвиться из обработчика события. Если речь о событиях DOM, то как-то так:

    HTMLElement.prototype.waitFor = function(event_name) {
        if (event_name) {
            return new Promise((res, rej) => {
            	const listener = function() {
            		res()
            		this.removeEventListener(event_name, listener)
            	};
    
            	this.addEventListener(event_name, listener);
            })
        } else {
            throw 'No event passed to waitFor method!';
        }
    }
    
    async function foo() {
    	const start = new Date();
    	await document.querySelector('body').waitFor('click');
    	console.log('uspeshno dojdalis clicka, jdali celih ' + ((new Date().getTime() - start.getTime())/1000) + ' sekund');
    }
    
    foo();
    Ответ написан более двух лет назад
    7 комментариев
    7 комментариев
  • Как при автоматической вставке импорта, заменить кавычки на одинарные?

    s0xzwasd
    Даниил Маслов @s0xzwasd
    Preferences | Settings | Editor | Code Style | Язык, который используете, например JavaScript | Punctuation | Use single/double quotes always/in new code.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как подняться на уровень выше в sass?

    Emchik
    Эмиль Рахматуллин @Emchik
    Что-то прикольное сделать могу
    Переменная $this.
    Типичная проблема при создании self-controlled компонентов (особенно при использовании методологии BEM) — это создание селекторов внутри модификаторов.

    Вместо:
    .filter-block {
        &__title {
            color: black;
        }
            
        &--expandable {
            .filter-block__title {
                color: blue;
            }
        }
    }


    Можно:
    .filter-block {
        $this: &;
        &__title {
            color: black;
        }
        &--expandable {
            #{$this}__title {
                color: blue;
            }
        }
    }
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Что мне нужно изучить, чтобы автоматизировать работу с сайтом?

    Araya @Araya
    Selenium
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как подключить и компилить глобальный sass файл в Nuxt.js?

    Сергей Песков @SergeyPeskov
    Выполнить
    npm i @nuxtjs/style-resources -D

    И добавить в nuxt.config.js
    module.exports = { 
      modules: [
        '@nuxtjs/style-resources',
      ],
      styleResources: {
       sass: [
        '~/assets/globals.sass', // путь к вашему файлу
       ],
      },
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как убрать выделение у кнопок при нажатии?

    UnluckySerivelha
    Dymok @UnluckySerivelha
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
    -webkit-tap-highlight-color: transparent;
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как спрятать scrollbar в div и отставить возможность скроллинга?

    saneq1 @saneq1
    scrollbar-width: none; для мозилы
    ::-webkit-scrollbar для остальных
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Я использую Node js. Как я могу изменить цвет заливки ячейки или цвет ячейки в google spreadsheets?

    aif88
    Игорь @aif88 Автор вопроса
    Реализовал через условное форматирование, может кому-то поможет:

    function data(auth) {
    const sheets = google.sheets({version: 'v4', auth});

    var myRange = {
    sheetId: 0,
    startRowIndex: 1,
    endRowIndex: 2,
    startColumnIndex: 1,
    endColumnIndex: 2
    };

    var requests = [{
    addConditionalFormatRule: {
    rule: {
    ranges: [ myRange ],
    booleanRule: {
    condition: {
    type: 'NOT_BLANK'
    },
    format: {
    backgroundColor: { red: 1, green: 0.1, blue: 0.1 }
    }
    }
    },
    index: 0
    }
    }];

    var body = {
    requests
    };
    var sId='mySpreadsheetID';

    sheets.spreadsheets.batchUpdate(
    {
    spreadsheetId: sId,
    resource: body
    }, function(err, response) {
    if(err) {
    // Handle error.
    console.log(err);
    }
    });
    }

    Если кто-то знает как сделать проще на node - пожалуйста - дайте знать.
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Создание локальной библиотеки компонентов React, NPM?

    alvvi
    alvvi @alvvi
    export default apathy;
    Если это webpack, то можно использовать alias-ы:

    webpack.config.js
    resolve: {
        alias: {
          'Components': path.resolve(__dirname, 'src/components/'),
          '@': path.resolve(__dirname, 'src')
        }
      },


    SomeNestedComponent.jsx
    import {Something} from '@/styles/MyUiKit';
    import SomeComponent from 'Components/SomeComponent';
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Создание локальной библиотеки компонентов React, NPM?

    Coder321 @Coder321
    Создайте папку node_modules у себя в src, и первым делом модули будут искаться там
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • Следующие →
Самые активные сегодня
  • Evgenii
    • 11 ответов
    • 0 вопросов
  • Drno
    • 8 ответов
    • 0 вопросов
  • Enokin
    Владислав
    • 8 ответов
    • 0 вопросов
  • mayton2019
    • 7 ответов
    • 0 вопросов
  • sharp97
    sharp97
    • 4 ответа
    • 1 вопрос
  • OpenAI
    OpenAI
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации