Логово верстальщика
7.9K subscribers
1.19K photos
71 videos
4 files
2.03K links
Логово верстальщиков: HTML, CSS, JavaScript, практики современной верстки, вайбкодинг и использование ИИ в разработке.

Личный блог автора - @just_genych
По вопросам рекламы или разработки: @g_abashkin
Download Telegram
👩‍💻 Seal of gravity

Сцена с кнопкой и анимированным тюленем. Сделана на CSS и JavaScript.

Открыть код
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Главные ошибки новичков-фронтендеров в HTML

Рассказываем про частые ошибки в HTML и о том, как их избежать. Добавляйте в закладки!

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 PHP 8.4: MBString: База данных символов Юникода обновлена до версии 16

Благодаря поддержке Unicode 16 расширение MBString может работать со всеми новейшими символами Emoji, а также имеет самую актуальную информацию о смене регистра и ширине символов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Полное руководство по “this” в JavaScript

Благодаря поддержке Unicode 16 расширение MBString может работать со всеми новейшими символами Emoji, а также имеет самую актуальную информацию о смене регистра и ширине символов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 ISBN-10

Идентификаторы ISBN-10 состоят из десяти цифр. Первые девять символов - это цифры 0-9. Последняя цифра может быть от 0 до 9 или X, чтобы указать значение 10.

Номер ISBN-10 действителен, если остаток при делении суммы произведений цифр и их позиций на 11 равен 0.

Алгоритм:

ISBN: 1 1 1 2 2 2 3 3 3 9
Позиция: 1 2 3 4 5 6 7 8 9 10
Это действительный ISBN, потому что:
(1*1 + 1*2 + 1*3 + 2*4 + 2*5 + 2*6 + 3*7 + 3*8 + 3*9 + 9*10) % 11 = 0

Пример кода:

validISBN10("1112223339") => true
validISBN10("048665088X") => true
validISBN10("1234512345") => false
validISBN10("XXXXXXXXXX") => false
validISBN10("048665088XZ") => false


Решение задачи🔽

function validISBN10(isbn) {
if (isbn.length !== 10) {
return false;
}

let sum = 0;
for (let i = 0; i < 10; i++) {
let char = isbn[i];
let value;

if (i === 9 && char === 'X') {
value = 10;
} else if (char >= '0' && char <= '9') {
value = parseInt(char, 10);
} else {
return false;
}

sum += value * (i + 1);
}

return sum % 11 === 0;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как сделать таймер на CSS

Давайте рассмотрим использование CSS в качестве альтернативы JavaScript для создания простых таймеров. Используем современные свойства CSS, такие, как @property, @keyframes, и псевдоэлементы со значениями counter().

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 5 непростых вопросов по JavaScript

Разберем пять непростых вопросов: о сравнениях, пустых массивах, странном try catch, стрелочной функции и коварном JSON.stringify. Сможете ответить на них правильно?

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⛏ 11 инструментов для ускорения создания пользовательского интерфейса

Предлагаем подборку бесплатных инструментов для стилистического оформления пользовательских интерфейсов. Они помогут фронтенд-разработчикам и дизайнерам существенно сэкономить время и повысить производительность.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Cube & Dots Loader

Анимированная загрузка в виде точек и куба. Сделана на чистом CSS.

Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Удаление дубликатов из массивов и строк в JavaScript

Удаление дубликатов — распространённая проблема в программировании, возникающая в различных контекстах, например, при очистке данных или обеспечении уникальности записей. Этот вопрос могут задать на собеседовании, поскольку он довольно прост и может подготовить собеседника к более сложным вопросам.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Наследование в CSS

Наследование в CSS — это действительно суперспособность, и именно оно превращает разработку в Интернете в удовольствие, если вы принимаете его. В этой небольшой статье я собираюсь обратить вас в супер фанатов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Вычислить IP

Напишите функцию, которая получает два IPv4-адреса и возвращает количество адресов между ними (включая первый, исключая последний).

Все входные данные будут действительными IPv4-адресами в виде строк. Последний адрес всегда будет больше первого.

Пример кода:

ipsBetween("150.0.0.0", "150.0.0.1") => 1
ipsBetween("10.0.0.0", "10.0.0.50") => 50
ipsBetween("10.11.12.13", "10.11.13.0") => 243
ipsBetween("50.0.0.0", "50.1.1.1") => 65793


Решение задачи🔽

function ipsBetween(start, end) {
// Функция для преобразования IP-адреса в число
function ipToNumber(ip) {
return ip.split('.').reduce((acc, octet) => (acc << 8) + parseInt(octet, 10), 0);
}

// Преобразование начального и конечного IP-адреса в числа
const startNum = ipToNumber(start);
const endNum = ipToNumber(end);

// Возвращаем количество адресов между ними
return endNum - startNum;
}

// Примеры использования
console.log(ipsBetween("
150.0.0.0", "150.0.0.1")); // => 1
console.log(ipsBetween("
10.0.0.0", "10.0.0.50")); // => 50
console.log(ipsBetween("
10.11.12.13", "10.11.13.0")); // => 243
console.log(ipsBetween("
50.0.0.0", "50.1.1.1")); // => 65793
Please open Telegram to view this post
VIEW IN TELEGRAM
🔝 Эффективные способы реализации паттерна Singleton в JavaScript и TypeScript

Рассказываем о лучших подходах к созданию паттерна Singleton в JavaScript и TypeScript. Также обсудим его плюсы и возможные недостатки при использовании в проектах.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Предоставление определения типа для CSS с @property

Пишите более безопасный CSS, используя @property, позволяющий определять типы для пользовательских свойств. Узнайте, почему традиционные запасные значения могут не сработать и как функции @property повышают устойчивость определений пользовательских свойств.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Collapsible Timeline

Таймлайн с возможностью раскрывать пункты. Сделан на SVG, CSS и JavaScript.

Открыть код
Please open Telegram to view this post
VIEW IN TELEGRAM
😈 Разработчики dzen.ru, что с вами не так?

Статья о сайте дзен, точнее об отсутсвии простого и известного фунционала на нём, который есть почти на каждом форуме. В статье много боли и вопросов, почему так могло произойти. Подключайтесь, будем выяснять вместе.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Откройте для себя весь потенциал AbortController

В этой статье я расскажу об одном из стандартных API JavaScript, о котором, вы, возможно не слышали. Это AbortController.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Тонкая настройка текстовых полей

Веб формы и поля ввода поддерживают множество дополнительных атрибутов, способных дать подсказку браузеру и улучшить пользовательский опыт заполнения форм в Интернете. Приложив совсем немного дополнительных усилий, можно сделать так, чтобы формы помогали, а не мешали.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Две мощные техники: CSS Reset и normalize.css

В современной веб-разработке CSS сброс и нормализация — две важные техники, позволяющие добиться согласованности стилей в разных браузерах.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Использование CSS анимации, основанной на прокрутке, для индикации прогресса прокрутки на основе секций

Индикатор прогресса прокрутки — довольно простая вещь, которую можно создать с помощью анимации, основанной на прокрутке в scroll()-стиле. Но мы создадим индикаторы для каждого раздела страницы, используя view()-стиль.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM