Как вызвать класс css как функцию в элементах html?

как я могу вызвать класс css как функцию? Я не хочу генерировать классы для каждого значения ширины? есть ли решение, подобное следующему?

I am trying to update style's width value according to back-end code (width represents product's amount).

<style>
    .dynamicWidth(@param){
    width:@param px;
    }
</style>

    <div class='dynamicWidth(40)'></div>

Я могу решить эту проблему, используя встроенный код стиля, но я не хочу использовать встроенный код стиля из-за политики безопасности контента.

//I don't want to use it like this.

<style>
  .dynamicWidth{
        dynamicWidth:var (--param);
  }
</style>
<div class = "dynamicWidth" style = "--param : 40;"></div>

стиль = "ширина: XXpx;" но это не очень хорошая идея (вы должны знать, какую ширину на каких элементах вы используете)

Pavel Třupek 07.06.2019 14:41

Вы не можете использовать класс css как функцию в html. вы можете использовать функцию JQuery для достижения вашей задачи

Hardik Leuwa 07.06.2019 14:48

@PavelTřupek Я не хочу использовать встроенный стиль

more 2 know 07.06.2019 15:11

@HardikLeuwa, могу ли я добиться этого с помощью LESS или SCSS?

more 2 know 07.06.2019 15:12

@more2know, значит, вы не хотите style = "", но можно ли добавить атрибут style через JS? Или это также попадет в вашу политику безопасности контента, поскольку она в основном делает то же самое? Я не думаю, что это возможно без атрибута style (добавляется либо вручную, либо с помощью JS). За исключением случаев, когда вам разрешено использовать data-attributes (например, data-width = "50px")?

elveti 07.06.2019 15:21

@elveti нет проблем с использованием стиля в js, с этим можно справиться, добавив к нему некоторые атрибуты хеширования CSP.

more 2 know 07.06.2019 15:23

Можете ли вы использовать атрибут данных (data-width), а не атрибут класса? Было бы гораздо безопаснее.

isherwood 07.06.2019 15:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
7
1 952
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это с помощью javascript:

var elements = document.getElementsByClassName("dynamicWidth");

Array.from(elements).forEach((element) => {
  element.style.width = element.getAttribute("data-width") + "px";
});
.dynamicWidth {
  height: 20px;
  background: red;
}
<div class='dynamicWidth' data-width='40'></div>
<div class='dynamicWidth' data-width='60'></div>
<div class='dynamicWidth' data-width='90'></div>

Впечатляет, но очень хрупкий на практике. Если есть что-то еще (преднамеренно или через бэкэнд или JS-библиотеку), добавленное к значению класса, kablooey.

isherwood 07.06.2019 15:14

Другие вопросы по теме