Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 19, 2015 17:36:42

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Css в HTML???

Второй вопрос из моей серии.
Хотя как ни жаль, но на первый ответить подробно оказалось некому.

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

Есть ли какой-то способ, чтобы “динамический” css оставался-таки целиком в своём файле не залезая в пространство html?

Офлайн

#2 Янв. 19, 2015 18:09:28

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Css в HTML???

мне кажется вы сами не знаете чего хотите!

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



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Янв. 19, 2015 18:39:22

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Css в HTML???

terabayt
Там же написано: повторяться неохота. Я честно говоря вообще не могу понять всего этого замута со статикой в джанго.

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

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


Ссылок на русском языке не знаю, изучал по книжке. В поиске много бесплатных - не проблема.
Вкратце: сам html остался для разметки структуры, остальное, включая расположение элементов, выносится в отдельные файлы. Решение верное так как адаптивная вёрстка этого очень сильно требует.

Отредактировано MiK (Янв. 19, 2015 18:47:28)

Офлайн

#4 Янв. 19, 2015 18:59:23

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Css в HTML???

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})



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Янв. 19, 2015 18:59:52)

Офлайн

#5 Янв. 19, 2015 19:35:47

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Css в HTML???

Вообще ты натолкнул меня на мысль - “внедрить динамические параметры css” через наследование шаблонов.

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

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

ПС: просто так как ты предложил, будет громоздко при большом количестве переменных, да и попросту неудобно править.

Отредактировано MiK (Янв. 19, 2015 19:37:55)

Офлайн

#6 Янв. 19, 2015 22:35:07

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Css в HTML???

MiK
в таком случае делать на JS



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Янв. 19, 2015 22:50:50

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Css в HTML???

так а что нужно стилями делать?
Может нужно все эти стили прописать во внешнем файле и в дальнейшем правильно в шаблоне присваивать классы?

Офлайн

#8 Янв. 20, 2015 05:11:13

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Css в HTML???

JOHN_16
На мобилки не все браузеры поддерживают джаваскрипт.

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

Вообщем, получается Джанго отстал от жизни?

Офлайн

#9 Янв. 20, 2015 09:00:51

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Css в HTML???

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

MiK
если для вас так принципиально - напишите свою функцию представления , которая бы воспринимала css как шаблон и возвращала бы его render.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#10 Янв. 20, 2015 09:34:00

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Css в HTML???

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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version