Как задать переменную ширину в классе CSS или Tailwind?
Я получаю ширину из моего Django View, но я не знаю, могу ли я сделать ее переменной в CSS.
Я пытался установить Tailwind, но представляю, что это не то, что нужно:
{% for movie in movies %}
<div id="bar" class="w-[{movie.score}]"
style="transition: 1s">
{{movie.score}}
</div>
{% endfor %}
Однако я также пытаюсь сделать это непосредственно в CSS, но стиль не принимает переменную как:
{% for movie in movies %}
<div id="bar" style="transition: 1s; width: {{movie.score}}; ">
{{movie.score}}
</div>
{% endfor %}
Я также пытался изменить его с помощью JavaScript, но мне нужно выбрать несколько элементов, потому что там будут разные полосы. Так что это просто не работает. Я получаю сообщения, что ролики были объявлены раньше, если я использую let, но при использовании var ничего не меняется.
def get_context_data(self, **kwargs):
context = super(MoviesRatePage, self).get_context_data(**kwargs)
context['movies'] = movies
return context
{% block javascript %}
<script type="text/javascript">
var movies = "{{movies}}";
for (let i = 0; i < movies.length; i++) {
document.querySelectorAll("#bar")[i].style.width = `${movies[i].score}%`;
}
</script>
{% endblock javascript %}
Таким образом, я хочу сделать ширину полосы такой же, как у оценки фильма.
Второе решение - с установкой ширины непосредственно через атрибут style
технически должно работать. Единственное, чего не хватает - это единицы измерения ширины. Добавьте px
и все будет в порядке:
{% for movie in movies %}
<div id="bar" style="transition: 1s; width: {{movie.score}}px; ">
{{movie.score}}
</div>
{% endfor %}