Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 05.09.2021
Сообщений: 70

Запасные значения переменных

27.12.2025, 18:54. Показов 455. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Смотрел сегодня лекцию о CSS-переменных, и зашла речь о запасных значениях (fallback). В частности, было сказано, что иногда CSS-переменная может быть не определена в момент использования. В этом случае браузер не знает, что подставить, и стиль может не сработать вообще. Чтобы этого избежать, можно указать запасное значение (fallback), которое используется, если переменной нет. Это вроде понятно, но в лекции почему-то ни слова не сказано о том, почему css-переменная может быть не определена.

Поэтому вопрос: по каким причинам может быть не определена css-переменная?

Предположение о том, что "разработчик забыл", выглядит глупо, потому что зачем ему тогда указывать fallback. Получается, забыл определить переменную, но при этом не забыл указать запасное значение?

Спасибо! :-)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.12.2025, 18:54
Ответы с готовыми решениями:

Пустая переменная,как узнать ее значение?
Вопрос несколько коварный))) Всем наверно известно о интернет-тестах,для студентов например....

Как обновлять значение переменной на странице
Доброго времени суток всем участникам форума. Есть HTML в котором надо обновлять значение...

Подтягивание значения переменной
Добрый день. Есть код с примером от яндекс касс: <form...

13
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,168
27.12.2025, 19:19
Цитата Сообщение от sergey_reb Посмотреть сообщение
Поэтому вопрос: по каким причинам может быть не определена css-переменная?
Например ее время еще не пришло...
Кнопку не нажали... Данные не получили... Да мало ли чего еще может придумать разработчик.
0
0 / 0 / 1
Регистрация: 05.09.2021
Сообщений: 70
27.12.2025, 19:23  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Например ее время еще не пришло...
Кнопку не нажали... Данные не получили... Да мало ли чего еще может придумать разработчик.
А для чего тогда указывать запасное значение? Оно же сработает, несмотря на то, что время не пришло.
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,385
27.12.2025, 19:36
Цитата Сообщение от sergey_reb Посмотреть сообщение
Поэтому вопрос: по каким причинам может быть не определена css-переменная?
Например есть css библиотека.
Там есть правило
CSS
1
2
3
4
5
.box {
  ....
  color: var(--box-color, black);
  border-color: var(--box-border-color, blue);
}
Предполагается, что пользователь может определить свои значения в каком то своем css файле.
типа
CSS
1
--box-color: red;
А --box-border-color не определил (не захотел или забыл). Ну тогда будет значение по умолчанию.
1
0 / 0 / 1
Регистрация: 05.09.2021
Сообщений: 70
27.12.2025, 19:39  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
Предполагается, что пользователь может определить свои значения в каком то своем css файле.
А в каких случаях такое может быть, чтобы пользователь мог определять свои значения в каком-то своём css-файле?
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,385
27.12.2025, 19:43
Цитата Сообщение от sergey_reb Посмотреть сообщение
А в каких случаях такое может быть, чтобы пользователь мог определять свои значения в каком-то своём css-файле?
В любых
Цепляю
HTML5
1
2
<link rel="stylesheet" href="lib.css">
<link rel="stylesheet" href="my.css">
В my.css могу определять все переменные для библиотеки

В lib.css есть правило
CSS
1
2
3
4
5
.box {
  ....
  color: var(--box-color, black);
  border-color: var(--box-border-color, blue);
}
А в my.css определяю переменные

CSS
1
2
3
4
5
6
7
8
9
10
root {
....
   --box-color: green;
...
}
 
.box.errmsg {
  --box-color: red;
  --box-border-color: red;
}
0
0 / 0 / 1
Регистрация: 05.09.2021
Сообщений: 70
27.12.2025, 20:13  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
В my.css могу определять все переменные для библиотеки
В lib.css есть правило
CSSСкопировано
1
2
3
4
5
.box {
  ....
  color: var(--box-color, black);
  border-color: var(--box-border-color, blue);
}
А в my.css определяю переменные
Это я понимаю, но это вы, как разработчик, их определяете. А мой вопрос – о роли пользователя в этом процессе.
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,385
27.12.2025, 20:16
Цитата Сообщение от sergey_reb Посмотреть сообщение
А мой вопрос – о роли пользователя в этом процессе.
В смысле пользователя, который смотрит страницу? Так ему ничего не доступно. Только то, что разработчик определил.
CSS он вообще для разработчика, а не для пользователя.
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
27.12.2025, 20:44
Цитата Сообщение от voraa Посмотреть сообщение
Например есть css библиотека.
Там есть правило
CSS
1
2
3
4
5
.box {
  ....
  color: var(--box-color, black);
  border-color: var(--box-border-color, blue);
}
Предполагается, что пользователь может определить свои значения в каком то своем css файле.
типа
CSS
1
--box-color: red;
А --box-border-color не определил (не захотел или забыл). Ну тогда будет значение по умолчанию.
Чем это лучше явного определения переменной на необходимом уровне? Например,
CSS
1
2
3
4
5
6
7
8
9
10
root {
  --box-color: black;
  --box-border-color: blue;
}
 
.box {
  ....
  color: var(--box-color);
  border-color: var(--box-border-color);
}
Бонусом получаем диагностику коллизии имён, если вдруг у разных css-файликов переменные будут одинаково называться.
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,385
27.12.2025, 21:18
Цитата Сообщение от Mysterious Light Посмотреть сообщение
Бонусом получаем диагностику коллизии имён, если вдруг у разных css-файликов переменные будут одинаково называться.
Ничего мы не получаем. Просто возьмется из правила, которое определено позже. Без всяких предупреждений.
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
27.12.2025, 21:22
Цитата Сообщение от voraa Посмотреть сообщение
Ничего мы не получаем. Просто возьмется из правила, которое определено позже. Без всяких предупреждений.
Не-не-не, Дэвид Блейн, на вопросы надо отвечать в порядке их возникновения.

Кстати, я ответа не понял, но это не важно, первый вопрос важнее.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,168
27.12.2025, 23:51
Цитата Сообщение от sergey_reb Посмотреть сообщение
А для чего тогда указывать запасное значение? Оно же сработает, несмотря на то, что время не пришло.
Так когда "придет время" сработает и переменная.
Т.е. пока вот так... А когда объявят - будет так как объявят.

Добавлено через 56 секунд
Вообще "значение по умолчанию" - обычная практика в программировании.

Добавлено через 2 минуты
Цитата Сообщение от sergey_reb Посмотреть сообщение
А мой вопрос – о роли пользователя в этом процессе.
Пользователь может динамически создать и подключить стили
https://sky.pro/wiki/javascrip... y-podkhod/

Добавлено через 1 минуту
Т.е. нажимая кнопки, будет запускаться скрипт, который это все будет делать.

Добавлено через 7 минут
Цитата Сообщение от Mysterious Light Посмотреть сообщение
Чем это лучше явного определения переменной на необходимом уровне?
Начинаем теоретизировать на тему "значений по умолчанию"...

Например т.о. разработчик четко, в константах показывает "как он хотел" это видеть.
Но. Дает другим возможность на это повлиять, указав через какие переменные это можно сделать.

А вот делать так или нет - уже решать каждому разрабу самостоятельно.
Это ведь всего лишь такой инструмент, не более того...

Добавлено через 3 минуты
Mysterious Light, может те константы вообще для отладки только используются...
Отключил файл с переменными - и получай "отладочный" режим...

Т.е. тут только фантазия самого разраба.

Добавлено через 6 минут
Такое вот еще пишут...
Обычно «резервные значения» используются для обеспечения работоспособности сайтов в браузерах, которые не поддерживают некие современные CSS-механизмы.
Вот пример для чего можно использовать...
Этот подход к работе с переменными может оказаться полезным в том случае, если значение переменной зависит от некоего действия. Если может случиться так, что в переменной не будет значения, важно предусмотреть использование резервного значения.
https://habr.com/ru/companies/... es/523370/

Т.е. дали в руки вот такое... Как хочешь - так и используй.
1
3012 / 1450 / 262
Регистрация: 16.03.2008
Сообщений: 6,459
Записей в блоге: 2
29.12.2025, 10:18
Мне например такой кейс пришел на ум:

Делаем некий компонент, который может быть подключен на проекте, а может и нет. У элемента есть причины определить некий цвет, в плане компонента он в одном экземпляре и нет смысла выносить в переменную (для самого компонента), но оставляем точку расширения для того, кто будет его внедрять.

Но самое полное это действительно их правильнее, на мой взгляд, называть значением по умолчанию. Опять же кто -то в команде забыл подключить файл с переменными, или при конфигурации переменных эту самую переменную "забыл".

Иногда так же полезно, чтобы блок с переменными был "чистым": т.е. в нем только те переменные, которые мы переопределяем.

Добавлено через 1 минуту
Ну и, конечно же, надо понимать, что тот кто ввел эту переменную "в обращение" и тот кто использует этот элемент- разные разработчики и,даже, из разных команд
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,168
29.12.2025, 10:29
Есть еще веб-компоненты...
Так там "теневое дерево" можно стилизовать из "светлого" только через css-переменные.

Т.е. вы подключаете и используете веб-компонент... Он отрисовывается в своем "дефолтном" стиле.
Если хотите его стилизовать - разработчик может предоставить вам такую возможность, если будет использовать var() со значениями по умолчанию.

Более подробно можно почитать в учебнике https://learn.javascript.ru/sh... svoystvami
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.12.2025, 10:29
Помогаю со студенческими работами здесь

Как изменить значение переменной в sass
Доброго времени суток уважаемые форумчане, кто знает способ как изменить значение переменной в sass...

Передать значения из формы HTML в C# переменные
Хочу реализовать простейшую регистрацию с использованием шарпа. Но никак не пойму, вообще, реально...

В скрытом поле (hidden), передайте переменную student со значением
В скрытое поле (hidden), передайте переменную student со значением &quot;Ваше_ім'я&quot; (student=Ваше_ім'я).

Составить программу обмена значениями двух переменных
Составить программу обмена значениями двух переменных величин. HTML

Создание функции для глобальных переменных для автоматического перерасчета заданного значения из px в rem
Приветствую. У меня есть функции в scss, которая помогает для определенного свойства при введении...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru