JavaScript заметки
Открыть в Telegram
Регулярные заметки по практическому JavaScript. Обучащию посты позволят прокачать навыки во Frontend-разработке. Можно почитать пока компилируется проект :) Сотрудничество: @noname_media Канал на бирже: telega.in/channels/notesjs/card?r=Wj7h1mbl
Больше7 739
Подписчики
+124 часа
-57 дней
-5130 день
Архив постов
7 739
Всем привет!
Ребята создали чат-бота Masterhub, который рассылает разработчикам релевантные Frontend вакансии без спама.
Настрой бота за 1 минуту и получай до 50 вакансий в неделю, отобранных по твоим предпочтениям.
@MasterHuBot
7 739
Размеры и полоса прокрутки: общий вид
У элемента есть рамка
border, внутренний отступ padding и прокрутка. Полный набор характеристик. Обратите внимание, тут нет внешних отступов margin, потому что они не являются частью элемента, для них нет особых JavaScript-свойств.
#браузер #документ #размеры7 739
Размеры и полоса прокрутки: общий вид
У элемента есть рамка
border, внутренний отступ padding и прокрутка. Полный набор характеристик. Обратите внимание, тут нет внешних отступов margin, потому что они не являются частью элемента, для них нет особых JavaScript-свойств.
#браузер #документ #размеры7 739
Размеры и прокрутка элементов
Существует множество JavaScript-свойств, которые позволяют считывать информацию об элементе: ширину, высоту и другие геометрические характеристики. В этой главе мы будем называть их «метрики».
Они часто требуются, когда нам нужно передвигать или позиционировать элементы с помощью JavaScript.
У элемента есть рамка
border, внутренний отступ padding и прокрутка. Полный набор характеристик. Обратите внимание, тут нет внешних отступов margin, потому что они не являются частью элемента, для них нет особых JavaScript-свойств.
#браузер #документ #размеры7 739
Frontend по-флотски — новости и факты о разработке интерфейсов в неформальном стиле 🥤
Что ты можешь узнать нового?
1. Как сделать эффект отражения в одну строчку в CSS
2. Новый и супер быстрый JS-фреймворк
3. Динамическое изменение цвета на основе контраста
Заходи к нам на огонёк в @frontend_pasta 🔥
7 739
Итого по стилям и классам
Для управления классами существуют два DOM-свойства:
-
className – строковое значение, удобно для управления всем набором классов.
- classList – объект с методами add/remove/toggle/contains, удобно для управления отдельными классами.
Чтобы изменить стили:
- Свойство style является объектом со стилями в формате camelCase. Чтение и запись в него работают так же, как изменение соответствующих свойств в атрибуте "style". Чтобы узнать, как добавить в него important и делать некоторые другие редкие вещи – смотрите документацию.
- Свойство style.cssText соответствует всему атрибуту "style", полной строке стилей.
Для чтения окончательных стилей (с учётом всех классов, после применения CSS и вычисления окончательных значений) используется:
- Метод getComputedStyle(elem, [pseudo]) возвращает объект, похожий по формату на style. Только для чтения.
#браузер #документ #стили_классы7 739
Добавлены более 100 слитых приложений и сервисов
https://t.me/+gFfwMwNHBU05ZmIy
Ежедневные обновления
7 739
Стили, применяемые к посещённым :visited ссылкам, скрываются!
Посещённые ссылки могут быть окрашены с помощью псевдокласса
:visited.
Но getComputedStyle не даёт доступ к этой информации, чтобы произвольная страница не могла определить, посещал ли пользователь ту или иную ссылку, проверив стили.
JavaScript не видит стили, применяемые с помощью :visited. Кроме того, в CSS есть ограничение, которое запрещает в целях безопасности применять к :visited CSS-стили, изменяющие геометрию элемента. Это гарантирует, что нет обходного пути для «злой» страницы проверить, была ли ссылка посещена и, следовательно, нарушить конфиденциальность.
#браузер #документ #стили_классы7 739
getComputedStyle требует полное свойство!
Для правильного получения значения нужно указать точное свойство. Например:
paddingLeft, marginTop, borderTopWidth. При обращении к сокращённому: padding, margin, border – правильный результат не гарантируется.
Например, если есть свойства paddingLeft/paddingTop, то что мы получим вызывая getComputedStyle(elem).padding? Ничего, или, может быть, «сгенерированное» значение из известных внутренних отступов? Стандарта для этого нет.
Есть и другие несоответствия. Например, некоторые браузеры (Chrome) отображают 10px в документе выше (см. картинку), а некоторые (Firefox) – нет.
#браузер #документ #стили_классы7 739
Как программисту 👨🏻💻 за 1 год заработать на дом 🏡 даже начинающему? 🤔
Ответ: Подписаться на блог того программиста, который уже смог это сделать 🔥👇🏻
7 739
Вычисленное (computed) и окончательное (resolved) значения
Есть две концепции в CSS:
- Вычисленное (computed) значение – это то, которое получено после применения всех CSS-правил и CSS-наследования. Например,
height:1em или font-size:125%.
- Окончательное (resolved) значение – непосредственно применяемое к элементу. Значения 1em или 125% являются относительными. Браузер берёт вычисленное значение и делает все единицы измерения фиксированными и абсолютными, например, height:20px или font-size:16px. Для геометрических свойств разрешённые значения могут иметь плавающую точку, например, width:50.5px.
Давным-давно getComputedStyle был создан для получения вычисленных значений, но оказалось, что окончательные значения гораздо удобнее, и стандарт изменился.
Так что, в настоящее время getComputedStyle фактически возвращает окончательное значение свойства, для геометрии оно обычно в пикселях.
#браузер #документ #стили_классы7 739
Proglib теперь в Telegram!
Это полноценное медиа для айтишников: разборы кода, обзоры приложений, фишки по трудоустройству и реальные вакансии.
Если хотите подтянуть скилл и найти хорошую работу, подписывайтесь: @proglib_com
7 739
Вычисленные стили: getComputedStyle
Что, если нам нужно, скажем, увеличить отступ на
20px? Для начала нужно его текущее значение получить.
Для этого есть метод: getComputedStyle(element, [pseudo]).
Результат вызова – объект со стилями, похожий на elem.style, но с учётом всех CSS-классов.
#браузер #документ #стили_классы7 739
7 739
Вычисленные стили: метод в лоб
Итак, изменить стиль очень просто. Но как его прочитать?
Например, мы хотим знать размер, отступы, цвет элемента. Как это сделать?
Свойство
style оперирует только значением атрибута "style", без учёта CSS-каскада.
Поэтому, используя elem.style, мы не можем прочитать ничего, что приходит из классов CSS.
Например, здесь style не может видеть отступы.
#браузер #документ #стили_классы7 739
Три закрытых канала для фронтендера + бонус.
@frontend_tests — сборник задач (с их разбором) для прокачки теоретических знаний и подготовки к собеседованиям.
@on_the_frontend — дайджест самых актуальных статей по фронтенду.
@build_html — сотни бесплатных макетов для верстки на русском языке.
@mobileux — уникальная подборка интерфейсов для мобильных приложений.
⚠️ Доступ открыт на 3 дня, кто успеет подписаться, останется навсегда.
7 739
Следите за единицами измерения
Не забудьте добавить к значениям единицы измерения.
Например, мы должны устанавливать
10px, а не просто 10 в свойство elem.style.top. Иначе это не сработает.
Пожалуйста, обратите внимание, браузер «распаковывает» свойство style.margin в последних строках и выводит style.marginLeft и style.marginTop из него.
#браузер #документ #стили_классы7 739
📌 БЕСПЛАТНЫЙ КУРС по дизайну с нуля. Вместе сделаем 3+ мощных кейса тебе в портфолио.
5 дней в сильном комьюнити с живым чатом и проверкой ДЗ от топ дизайнеров.
Вы узнаете как делать лучший дизайн сайтов, презентаций, постов, креативов и зарабатывать на этом от 100к/мес.
Если вы не работал с дизайном, то попробуете себя и изучите основу для новой прибыльной профессии.
А если вы уже варитесь в этой сфере, то поднимете скиллы, узнаете трендовые фишки и полезные инструменты.
👉 Переходите в чат, там вас уже ждут кураторы, уроки, домашки и живое общение! - https://t.me/YudaevSchool2_bot?start=ml2
И всё это бесплатно, кликайте по ссылке пока есть места - https://t.me/YudaevSchool2_bot?start=ml2
7 739
Полная перезапись
style.cssText
Обычно мы используем style.* для присвоения индивидуальных свойств стиля. Нельзя установить список стилей как, например, div.style="color: red; width: 100px", потому что div.style – это объект, и он доступен только для чтения.
Для задания нескольких стилей в одной строке используется специальное свойство style.cssText
Это свойство редко используется, потому что такое присваивание удаляет все существующие стили: оно не добавляет, а заменяет их. Можно ненароком удалить что-то нужное. Но его можно использовать, к примеру, для новых элементов, когда мы точно знаем, что не удалим существующий стиль.
То же самое можно сделать установкой атрибута: div.setAttribute('style', 'color: red...').
#браузер #документ #стили_классы
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
