2012-07-26 72 views
1

在Drupal的禪宗主題中,我注意到,側邊欄和主要的div都浮動到左側,每個div的保證金權重新設置到頁面的0位置。您可以看到演示here。我知道有很多方法可以達到同樣的效果,但我只是對使用這種方法的優勢感到好奇。爲什麼不只是側邊欄第二個漂浮在右邊?提前致謝!浮動工具條的方式在Drupal禪宗主題

#main { 
    float: left; 
    margin-left: 20%; 
    margin-right: -80%; 
    width: 60%; 
    background-color: #eee; 
} 

#sidebar-first { 
    float: left; 
    margin-left: 0; 
    margin-right: -20%; 
    width: 20%; 
    background-color: #FFFF66; 
} 

#sidebar-second { 
    float: left; 
    margin-left: 80%; 
    margin-right: -100%; 
    width: 20%; 
    background-color: #FFFF66; 
} 

+0

我不是100%確定原因,結果可能非常相似,但在我看來,這似乎是一種使元素始終保持相互衝突的方式。如果因爲某種原因容器比其3個孩子大,中間和右邊之間會有差距。至少這是我的要求。 – Chad 2012-07-26 02:51:47

回答

0

浮現在腦海中的第一件事是,浮動他們都向左側會保持對接趕上別人每個容器。如果第二個側欄浮動到右側,並且包含的​​div大於其子div的總和,那麼第二個側欄將會從其他側欄中取出空間。保持佈局的流暢性使它們全都漂浮在左側更容易。

第二件事浮現在腦海中,而且可能更根本重要的是,這只是一般情況好於只應用之類的花車和利潤的一個方向。當他們都朝着一個方向前進時,在開發過程中跟蹤更容易。利潤率下降,推高或浮動的情況只會給開發者添加一層混淆。

也有一些關於浮標的方向與邊緣方向有關的IE錯誤,雖然我完全不記得它們......認爲這就像不在浮標的相同方向上應用邊距......因此他們左轉並且保證金(?)是正確的。

P.S:

哈利羅伯茨CSS的嚮導寫了why to keep margins and things all in one direction.

一個偉大的文章,在IE Bug when adding a margin in the same direction of a float.的第一篇文章。問題是它會使IE5/6的邊距翻倍。恕我直言,我認爲我們不需要再爲IE5設計,但它仍然可能是最好的做法,把邊際和浮動方向相反。

0

從我從我的Drupal天記住,主要的原因是禪宗主題是建立這種方式使實際的頁面內容可以在HTML先打印出來。 (其中幾個Drupal主題實際上使用了這種方法,儘管我認爲禪宗是最重要的例子)。

然後,他們漂浮一切離開,並使用一些瘋狂的保證金數學使其出現,導航是在頂部,即側邊欄一個顯示在左邊的內容,然後側邊欄2顯示在內容的右側。

這樣做的目的是在無障礙方面向屏幕閱讀器,機器人更友好等

我相信,這個老名單除了文章一般解釋使用方法:http://alistapart.com/article/negativemargins