2011-04-03 29 views
0

爲了這個問題,我們假定我有一個容器元素,該容器中有三列,右邊距爲10像素,在第三列I想要將右邊距設置爲0像素。創建佈局的最佳實踐(使用服務器端代碼)

現在有兩種方法可以做到這一點,我可以做到這一點使用jquery選擇第n孩子,但我也可以做這個服務器端使用簡單的循環計數來獲得第三個元素。我的問題是實現這樣的建議做法是什麼?做到服務器端意味着,即使在用戶瀏覽器上禁用JavaScript,佈局也能夠完美工作。然而,使用服務器端代碼出於這些美化原因的想法可能不是理想的實踐,並且服務器端應該嚴格用於功能。

我想知道人們對此的看法。

+1

你似乎在使用虛假的二分法,客戶端和服務器端。如何使用CSS進行演示? – 2011-04-03 16:00:02

+0

一般而言,我使用CSS進行演示,但也有像上面的例子那樣的情況,我無法使用CSS,因此它是JQuery或服務器端。另一個例子是如果我想添加項目特定的類名稱。我可以在JQuery中輕鬆完成此操作,但如果用戶禁用了JavaScript,則會成爲問題。 – sidewinder 2011-04-03 16:05:10

回答

1

怎麼樣使用CSS :last-child

#container div:last-child { margin-right: 0; } 

如果你真的關心IE6,你可以添加某種在最後一列的服務器端代碼類(如final-column),但沒有內嵌樣式。

#container div:last-child, #container div.final-column { margin-right: 0; } 

最後,請勿將Javascript用於樣式目的。

+0

列表中的每個第三項如何?我可以使用CSS nth-child僞類,但它在IE中不起作用。 – sidewinder 2011-04-03 16:07:21

+0

正如我寫的,如果你想擔心舊瀏覽器,你可以在服務器端添加類。 – kapa 2011-04-03 16:08:32

+0

好的,所以我通常不應該使用JQuery進行這些佈局更正?正如我所設想的那樣。 – sidewinder 2011-04-03 16:21:47

0

如果佈局在渲染後不會改變,我相信使用服務器端HTML生成應該是一個更強大的方法。

+0

是的,多數民衆贊成它是一個更強大的方式,但它也意味着很多凌亂的服務器端代碼。 – sidewinder 2011-04-03 16:25:09