Как использовать переменную в css?

#16 24 марта 2021 в 22:55

Ris, ему такой вариант не подходит, видимо в переменной имя класса.

Нифигаccе о-го-гошеньки

Ris, ему такой вариант не подходит, видимо в переменной имя класса.

Нифигаccе о-го-гошеньки
Не вижу проблемы:
  1.  
  2. <style>
  3. .<?php echo $имя_класса ?> {
  4. параметр: <?php echo $значение_параметра; ?>
  5. }
  6. </style>
#17 24 марта 2021 в 23:12
Видимо да, я плохо объяснил))) Начну по порядку. Есть виджет, который выводит на страницу некий блок. Пусть это будет просто блок с зеленым фоном. Для начала по всем правилам системы создаю файлы и папки, чтобы виджет появился в системе, регистрирую его в базе. Даоее пишу код формы в options.form.php:

  1.  
  2.  
  3. <?php
  4. class formWidgetMyWidgetOptions extends cmsForm{
  5. public function init() {
  6. return array(
  7.  
  8. 'type' => 'fieldset',
  9. 'title' => 'Настройки',
  10. 'childs' => array(
  11. new fieldString('options:block_id', array(
  12. 'title' => "Укажите имя класса"
  13. )),
  14. new fieldColor('options:block_color', array(
  15. 'title' => "Укажите цвет блока"
  16. )),
  17. )
  18. )
  19. );
  20. }
  21. }
  22.  
  23.  
Далее в widget.php объявляем и получаем эту переменную:

  1.  
  2.  
  3. <?php
  4.  
  5. class widgetMyWidget extends cmsWidget {
  6.  
  7. public function run() {
  8.  
  9. $block_id = $this->getOption('block_id');
  10. $block_color = $this->getOption('block_color');
  11.  
  12. return array(
  13.  
  14. 'block_id' => $block_id,
  15. 'block_color' => $block_color
  16. );
  17. }
  18. }
  19.  
  20.  
Нуи теперь самое важное. Выведем все это через шаблон виджета:

  1.  
  2.  
  3. <style>
  4.  
  5. <?php echo $block_id; ?> {background-color: <?php echo $block_color; ?>}
  6.  
  7. </style>
  8.  
  9. <div class="box mt-25px mb-25px wow fadeInLeft <?php echo $block_id; ?>" data-wow-delay="0.7s"></div>
  10.  
  11.  
Так вот — всё работает. Кроме того, как вывод в <style> селектора с точкой. Даже если в настройках виджета в админке прописать селектор с точкой — все равно не работает. При открытии исходного кода этой точки тупо нет((((
#18 24 марта 2021 в 23:13

Не вижу проблемы:

Ris

Вот по логике вещей — это правильный код. Но он не работает. Иначе я бы здесь не писал. Честно, всю голову сломал уже((((
#19 24 марта 2021 в 23:15

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

Нифигаccе о-го-гошеньки

Пардон. Забыл. Ошибки нет. Просто из селектора исчезает точка, если посмотреть исходный код страницы. Ну а исчезновение точки ломает код внутри <style>
#20 24 марта 2021 в 23:18
GWK, не может такого быть)) может у вас кеширование какое-нибудь включено, но не может точка просто так взять и исчезнуть из html-кода.

  1. <style>
  2.  
  3. .<?php echo $block_id; ?>{background-color:<?php echo $block_color; ?>}
  4.  
  5. </style>
Вот так должно работать. Или так:

  1. <style>
  2.  
  3. <?php echo '.'.$block_id; ?>{background-color:<?php echo $block_color; ?>}
  4.  
  5. </style>
#21 24 марта 2021 в 23:18
Вот даже Visual Code упорно подчеркивает эту точку красным цветом, но не говорит год, в чем проблема!

#22 24 марта 2021 в 23:19
Нифигаccе о-го-гошеньки, честно, я сам в шоке. Хотите скину вам виджет — установите в систему, может у вас она не исчезнет? Протестировал на пяти сайтах — факт, она исчезает.
#23 24 марта 2021 в 23:20
Ух, ну и консилиум я тут собрал laugh
#24 24 марта 2021 в 23:24
Так вы перед <style> какой-то тег не закрыли. Посмотрите, как у вас пхп-код подсвечивается, где-то кавычку какую-нибудь забыли написать.

Код целиком из этого файла покажите, если это не секретное что-то.
#25 24 марта 2021 в 23:27
Нифигаccе о-го-гошеньки, ну ёмаё!

Так вы перед <style> какой-то тег не закрыли

Нифигаccе о-го-гошеньки

И точно ведь!!! Какой же я дурак блин. В коде выше забыл закрыть div. Спасибо огромное! Целый день мучался! Отправил вам чуть-чуть на пиво. )
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.