2014-08-30 44 views
2

我有一個三列網格,並使用+span函數可以很好地定義列。所以,如果我想要一個元素跨越一個欄我做的:如何獲取Susy Sass位置並將元素對齊中央列

+span(1 of 3) 

和兩個:

+span(2 of 3) 

等。

我現在想一個元素跨越一列,但在位置2,即在中間列。

超對稱文件說,使用at關鍵字來這樣的指定位置:

+span(1 at 2 of 3) 

然而,這並不工作,我列在左邊的第一個位置即。

導致CSS:

width: 30.303030303%; 
float: left; 
margin-left: 1.5151515152%; 
margin-right: 1.5151515152%; 

當我做

+span(1 at 3 of 3) 

導致CSS:

width: 30.303030303%; 
float: right; 
margin-left: 1.5151515152%; 
margin-right: 1.5151515152%; 

這正常工作和我的專欄是在第三的位置。

如何讓位置工作使我的列處於第二位?

一些圖像,以幫助解釋:

在一列:

enter image description here

在第3欄:

enter image description here

我想要什麼:

float: none 
margin: 0 auto 

我認爲這是一個黑客,這也意味着高度現在是錯誤的,因爲沒有浮動:enter image description here

最後這個例子與實現。我不認爲你應該如何與Susy合作。

版本:

羅盤1.0.1 與Susy 2.1.3

我使用.sass文件,而不是.scss

回答

5

at關鍵字只能放置一個元素如果您使用isolation。這是因爲放置取決於上下文 - 項目相對於其他項目浮動 - 並且Susy無法知道其他項目在附近。隔離通過將每個元素定位在左邊緣之外來解決這個問題。所以一種選擇是使用+span(1 at 2 of 3 isolate)

雖然這並不一定是最好的選擇。爲了簡單地將元素移動到不同的位置,我將使用pushpull mixin。

+span(1 of 3) 
+push(1) 

push混入添加任意數量的列(或任意的跨度),爲給定元素前邊緣 - 從那裏它會一直推動它。