2011-05-16 99 views
2

我有我的小博客應用程序,我希望能夠從管理頁面更改樣式(不一定全部)。在django項目中實現動態樣式加載的「正確」方式是什麼? 我自己的想法:通過Python的文件I/O從數據庫Django動態css實現

雖然這兩種方案有嚴重的缺點

  • 構建css文件
  • 編輯CSS文件。 非常感謝您的解決方案。

    編輯:我寧願不思路Django的應用程序:)

  • +0

    可能重複:http://stackoverflow.com/questions/3589661/generated-dynamic-css – DrTyrsa 2011-05-16 10:22:53

    +0

    就像渲染模板一樣,渲染CSS也不是不可能的。你可以設置一個url,它將在參數中接收你想要的配置,併爲那種情況生成css。你將擁有css模板,只需要補充它們即可。 less.js庫也可能有用,請務必檢查一下! – tiagoboldt 2011-05-16 10:26:13

    回答

    1

    「正確」的方式做,這將是在頂層div來定義一個類(甚至身體),這就決定了主該頁面的風格。該頁面中的所有樣式化元素都通過級聯的神奇繼承了這種風格:

    .master-default { 
        color: black; 
    } 
    .master-default .bordered { 
        border: green; 
    } 
    .master-blue { 
        color: blue; 
    } 
    .master-blue .bordered 
        border: yellow; 
    } 
    

    等等。現在,你的管理界面只允許用戶確定頂級高手風範,你那麼您的基本模板中使用:

    <div id="master" class="{{ userprofile.master_style }}"> 
        <div class="bordered">Border colour will vary according to master style</a> 
    </div> 
    

    +0

    但是這不會導致CSS爆炸?例如選擇背景字體的邊界... – Kukmedis 2011-05-16 10:37:02

    +0

    不一定 - 你可以實際做到這一點,以便默認的類也在那裏,並且只覆蓋你想要的,更具體的。 – 2011-05-16 10:55:08

    +0

    但說我20種不同的顏色,並想與20個不同的邊界混合。最後,如果我想從全綵色幽靈中選擇,該怎麼辦? – Kukmedis 2011-05-16 11:34:50