С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434

Изменение свойства CSS через JavaScript

22.01.2023, 21:22. Показов 608. Ответов 8

Студворк — интернет-сервис помощи студентам
есть такой класс на css
CSS
1
2
3
4
5
6
7
8
9
.overlay-inner:before {
    content: '';
    position: absolute;
    display: block;
    width: 1000px;
    height: 200px;
    background-color: #5875ac;
    opacity: 0.3;
}
как из javascript можно поменять значение height у этого класса ?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2023, 21:22
Ответы с готовыми решениями:

Изменение свойства CSS на JavaScript
Приветствую вас, форумчане! Помогите пожалуйста, как можно реализовать подобное?: Есть регулятор влево-вправо (как буд-то регулятор...

Изменение CSS свойства fill при нажатии
Подскажите пожалуйста хотя бы саму логику, как это реализовать: Есть карта с регионами, при нажатии на регион с определенным id...

Изменение css стилей на javascript
вот css код #upname { background-image: url(img/up.png); background-repeat: no-repeat; height: 15px; width: 15px; position:...

8
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3813 / 1651 / 428
Регистрация: 14.03.2022
Сообщений: 4,123
22.01.2023, 21:51
Цитата Сообщение от nill Посмотреть сообщение
как из javascript можно поменять значение height у этого класса ?
Можно создать еще один элемент style. Записать в него нужные значения и добавить в ДОМ после, содержащего приведенный стиль, элемента style.

Остальное все сделает каскадность стилей.

Добавлено через 5 минут
JavaScript
1
2
3
4
5
6
7
8
9
10
const css = '.overlay-inner:before { height: 100%; }'
const style = document.createElement('style');
if (style.styleSheet){
  // This is required for IE8 and below.
  style.styleSheet.cssText = css;
} else {
  style.appendChild(document.createTextNode(css));
}
const head = document.head || document.getElementsByTagName('head')[0]
head.appendChild(style);
0
 Аватар для NTHing
1818 / 962 / 388
Регистрация: 26.11.2014
Сообщений: 1,962
Записей в блоге: 1
23.01.2023, 00:20
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
:root {
  --height: 200px;
}
 
.overlay-inner:before {
  content: '';
  position: absolute;
  display: block;
  width: 1000px;
  /* height: 200px; */
  height: var(--height);
  background-color: #5875ac;
  opacity: 0.3;
}
JavaScript
1
2
3
4
overlayInner = document.querySelector('.overlay-inner')
    overlayInner.addEventListener('click', ()=>{
        document.documentElement.style.setProperty('--height', '150px')
    })
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,149
Записей в блоге: 43
23.01.2023, 07:19
Цитата Сообщение от nill Посмотреть сообщение
как из javascript можно поменять значение height у этого класса ?
Если совсем коротко, то вот пример
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<html>
 
<head>
    <title>Page</title>
    <style>
        .overlay-inner:before {
            content: '';
            position: absolute;
            display: block;
            width: 1000px;
            height: 200px;
            background-color: #5875ac;
            opacity: 0.3;
        }
    </style>
</head>
 
<body>
    <button id="btn">height300</button>
    <div class="overlay-inner">
 
    </div>
    <script>
        document.getElementById("btn").addEventListener("click", function (evt)
        {
            let css = document.styleSheets[0];
            [...css.cssRules].find((rule) =>
                rule.selectorText == ".overlay-inner::before"
            ).style.height = "300px";
        });
    </script>
</body>
 
</html>
Там кнопочку нажимаешь и высота меняется на 300px.

Чтобы понять как это все работает надо изучить следующие документы
StyleSheetList - Web APIs | MDN
CSSStyleSheet - Интерфейсы веб API | MDN
CSSRuleList - Web APIs | MDN
CSSRule - Интерфейсы веб API | MDN
CSSStyleRule - Web APIs | MDN
Ну и по ссылочкам там походить.

Трудности могут возникнуть с поиском нужного стиля. Кроме того обрати внимание на то, что правила могут быть разного типа и некоторые имеют вложенные правила. А также на то, что селекторы могут выглядеть не совсем так как написано. В твоем примере это видно, там селектор имеет псевдокласс и он отделен одинарным двоеточием, а при поиске надо использовать двойное, это видно в коде. Ну и во всяких таких нюансах еще разобраться надо.
0
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
23.01.2023, 10:08  [ТС]
ни один пример не заработал, нужно чтобы css менялось при загрузке

krvsa, что за styleSheet он не определен? и почему height: 100% в процентах у меня же пикселях ?
NTHing, непонятно а куда кликать надо чтобы сработало? у меня не получилось
diadiavova, нужно без кнопок просто при загрузке
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,149
Записей в блоге: 43
23.01.2023, 10:19
Цитата Сообщение от nill Посмотреть сообщение
нужно без кнопок просто при загрузке
Вопрос был о том, как можно поменять. Я сделал демонстрационный пример, иллюстрирующий как можно это сделать. От этого уже можно плясать. Я все равно не знаю как там у тебя страница устроена и как это все должно запускаться. Для того чтобы в моем примере это заработало достаточно одну строчку поменять
JavaScript
1
2
3
4
5
6
7
       addEventListener("DOMContentLoaded", function (evt)
        {
            let css = document.styleSheets[0];
            [...css.cssRules].find((rule) =>
                rule.selectorText == ".overlay-inner::before"
            ).style.height = "300px";
        });
Но это не значит, что ты можешь это вставить в свою страницу и все заработает. Разберись как это работает, тогда сможешь прикрутить это к своей странице.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3813 / 1651 / 428
Регистрация: 14.03.2022
Сообщений: 4,123
23.01.2023, 12:19
Цитата Сообщение от nill Посмотреть сообщение
ни один пример не заработал, нужно чтобы css менялось при загрузке
Пора и тебе делать тестовый пример...

Добавлено через 15 минут
Цитата Сообщение от nill Посмотреть сообщение
ни один пример не заработал
Х/з как ты там делал...
Мой пример рабочий.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
.overlay-inner:before {
    content: '';
    position: absolute;
    display: block;
    width: 1000px;
    height: 200px;
    background-color: #5875ac;
    opacity: 0.3;
}
</style>
</head>
<body>
<div class='overlay-inner'></div>
  
<script>
const css = '.overlay-inner:before { height: 100%; }'
const style = document.createElement('style');
if (style.styleSheet){
    // This is required for IE8 and below.
    style.styleSheet.cssText = css;
} else {
    style.appendChild(document.createTextNode(css));
}
const head = document.head || document.getElementsByTagName('head')[0]
head.appendChild(style);
 
</script>
 
</body>
</html>
0
 Аватар для NTHing
1818 / 962 / 388
Регистрация: 26.11.2014
Сообщений: 1,962
Записей в блоге: 1
23.01.2023, 13:49
Лучший ответ Сообщение было отмечено nill как решение

Решение

CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
:root {
  --height: 200px;
}
 
.overlay-inner:before {
  content: '';
  position: absolute;
  display: block;
  width: 1000px;
  /* height: 200px; */
  height: var(--height);
  background-color: #5875ac;
  opacity: 0.3;
}
.overlay-inner {
  position: relative;
  height: 200px;
}
JavaScript
1
2
3
4
window.addEventListener('load', function() {
  overlayInner = document.querySelector('.overlay-inner')
  document.documentElement.style.setProperty('--height', '150px')
});
1
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
24.01.2023, 22:35  [ТС]
NTHing,
этот пример сработал спасибо!

так у себя использую
CSS
1
2
3
4
5
6
:root {
    --height: 200px;
}
.overlay-inner:before {
  height: var(--height);
}
JavaScript
1
2
overlayInner = document.querySelector('.overlay-inner')
document.documentElement.style.setProperty('--height', height77+'px')
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.01.2023, 22:35
Помогаю со студенческими работами здесь

Изменение CSS-свойств с использованием JavaScript
Есть кнопка, которая изменяет размер шрифта: HTML код: &lt;a href=&quot;#&quot; onclick='changeStyleDiv()'&gt;Кнопка&lt;/a&gt; ...

Замена backgroundImage в CSS через Javascript
Прошу помочь, не могу разобраться Задача: при клике на блоки preview1, preview2, preview3 (background-image прописан в CSS),...

Как подключить два css через javascript
Всем привет. Господа, подскажите, пожалуйста, как подключить два css через javascript. В зависимости от времени суток на компьютере...

Как подключить файл стилей CSS через JavaScript
вызов js скрита находится в теле документа. как мне в таком случае подключить CSS файлик &lt;link rel=&quot;stylesheet&quot;...

Изменение параметров hover через javascript
Всем привет! Понадобилось изменять hover через js К примеру у меня есть div и мне нужно изменить через js его стили при наведении Как...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru