2013-08-18 16 views
1

我來自面向對象的Python-land,在學習SASS(+ compass/susy)和CSS時需要幫助解決一個基本問題。在全球範圍內,我正在努力理解如何在Python中理解類和變量。解釋如何向Python思想者使用SASS類

我有一個導航欄,並希望導航欄中的所有h1標籤都是粗體,但所有h1標籤在html文檔的正文中都是藍色的。我如何構建我的screen.scss文件來反映我正在嘗試做什麼?爲了讓它更復雜一點,比方說我有更多的標籤,比如我想要做同樣的事情(除了這一次,我希望h2分別是斜體和紅色)。在這種情況下,我可以開始使用類選擇器而不是ID嗎?有沒有辦法嵌套我的sass文件,這樣h1h2標籤只有修改,如果他們在class='navbar'?在Python中,我會這樣說:

class navbar 
    h1 = make it bold 
    h2 = make it italic 

h1 = make it blue 
h2 = make it red 

在SASS土地,你將如何組織你的screen.sass文件,這樣我可以只分配每個HTML標籤(<htmltag class='navbar'>一切適當的行爲,或,如果有?是一個更好的辦法一噸的元素來做到這一點,我也持開放的態度

謝謝

+4

在(S)CSS字'class'(或真的,HTML )在Python中有不同的含義。不要試圖匹配它們。 – Eric

回答

2

您不需要爲您的用例使用類或變量。假設你有這樣的HTML文檔(注意,我們使用一個nav元素進行導航,因此沒有必要對navbar類):

<!doctype html> 
<html> 
    <head> 
    <title>An example document</title> 
    </head> 
    <body> 
    <nav> 
     <h1>A navigation heading</h1> 
     <h2>A subheading</h2> 
     <!-- etc. --> 
    </nav> 
    <main> 
     <h1>A general heading</h1> 
     <h2>A subheading</h2> 
     <!-- etc. --> 
    </main> 
    </body> 
</html> 

...然後讓所有的你問的影響關於你的問題,下面SASS是不夠的:

nav 
    h1 
    font-weight: bold 
    h2 
    font-style: italic 

main 
    h1 
    color: blue 
    h2 
    color: red 

我從你的方式詞你的問題是,當你說文件「的HTML的身體,你指的是一些「主要假設'內容是與導航欄中的分開,而不是中的所有內容元素(其中包括的導航欄)。如果該假設是錯誤的,你確實想要的一切是彩色的,但只有導航欄標題底氣/斜體,你可以這樣做:

nav 
    h1 
    font-weight: bold 
    h2 
    font-style: italic 

h1 
    color: blue 

h2 
    color: red 
2

你的僞代碼幾乎完全一樣SASS:。

.navbar 
    h1 
     font-weight: bold 
    h2 
     font-style: italic 
body 
    h1 
     color: blue 
    h2 
     color: red 
0

我知道我的答案有點兒通用,但我發現你的問題也是通用的。我會建議閱讀更多關於OOCSS,例如herehere。檢查布拉德的Atomic design也是一個好主意。我認爲預處理器不太重要。這更像是一個概念問題。