Найти - Пользователи
Полная версия: Css в HTML???
Начало » Django » Css в HTML???
1 2
MiK
Второй вопрос из моей серии.
Хотя как ни жаль, но на первый ответить подробно оказалось некому.

Вообщем суть проблемы вот в чём: по современным стандартам все языки должны лежать в отдельных файлах, и, замечу, что это действительно очень удобно. Однако что делать если необходимо ставить джанговские переменные в CSS? Ну например динамическое отображение цветов, или разные картинки для разных ситуаций?

Есть ли какой-то способ, чтобы “динамический” css оставался-таки целиком в своём файле не залезая в пространство html?
terabayt
мне кажется вы сами не знаете чего хотите!
MiK
по современным стандартам все языки должны лежать в отдельных файлах
было бы очень интересно почитать эти стандарты, скиньте ссылочку
MiK
Хотя как ни жаль, но на первый ответить подробно оказалось некому.
а чего вы хотели? какие еще вопросы остались?

и ответ на вопрос:
views.py
def home(request):
    return render_to_response('home.html', {'style': 'p {color: red}'})
home.html
<html>
<head>
<style>{{ style }}</style>
</head>
<body>
<p>Hello world</p>
</body></html>
как известно, стили в style перекрывают стили в файлах подключены через link rel
MiK
terabayt
Там же написано: повторяться неохота. Я честно говоря вообще не могу понять всего этого замута со статикой в джанго.

def home(request):
return render_to_response('home.html', {'style': ‘p {color: red}’})

Предлагаешь вынести таблицу стилей во вьюху?


Ссылок на русском языке не знаю, изучал по книжке. В поиске много бесплатных - не проблема.
Вкратце: сам html остался для разметки структуры, остальное, включая расположение элементов, выносится в отдельные файлы. Решение верное так как адаптивная вёрстка этого очень сильно требует.
terabayt
terabayt
было бы очень интересно почитать эти стандарты, скиньте ссылочку
MiK
Предлагаешь вынести таблицу стилей во вьюху?
нет! только днамические параметры
style.css
body {color: white}
.lala {atrr: value}
 . . .
p {color: black}
 . . .
home.html
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<style>{{ style }}</style>
</head>
<body>
<p>Hello world</p>
</body></html>
views.py
from django.shortcuts import render
from django.shortcuts import render_to_response
import datetime
def home(request, style = ''):
    if datetime.datetime.now().hour <= 18:
        style += 'p {color: red;}'
    return render_to_response('home.html', {'style': style})
MiK
Вообще ты натолкнул меня на мысль - “внедрить динамические параметры css” через наследование шаблонов.

То есть делаем шаблон “название.css”, внутри которого таблица стилей, ну и потом вставляем через наследование в хтмл-файл, если уж нет способа использовать для таких целей внешний ресурс.

Есть получше идеи?

ПС: просто так как ты предложил, будет громоздко при большом количестве переменных, да и попросту неудобно править.
JOHN_16
MiK
в таком случае делать на JS
inoks
так а что нужно стилями делать?
Может нужно все эти стили прописать во внешнем файле и в дальнейшем правильно в шаблоне присваивать классы?
MiK
JOHN_16
На мобилки не все браузеры поддерживают джаваскрипт.

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

Вообщем, получается Джанго отстал от жизни?
JOHN_16
MiK
На мобилки не все браузеры поддерживают джаваскрипт.
Вы счаз не про сматфоны, а именно про обычные мобильные телефоны?

MiK
если для вас так принципиально - напишите свою функцию представления , которая бы воспринимала css как шаблон и возвращала бы его render.
inoks
MiK
Вообщем, получается Джанго отстал от жизни?
а как должно быть в современном фреймворке?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB