2012-06-19 58 views
1

在這個小提琴http://jsfiddle.net/dAHqe/2/我已經爲列表創建了border-radius的2個主要用途(我見過)的例子。容器上的CSS3邊框半徑或內容項目?

  1. 應用border-radius(因此background-color)到容器(一個divul)。
  2. 經由:first-child:last-child僞類應用border-radius(因此background-color),以第一個和最後的內容項(li秒或嵌套div多個)。

乍一看,它看起來像第一種方式(應用到容器)更簡潔,但我總是看到第二種方式。

使用第二種方法有什麼好的理由(即可擴展性)嗎?

更新:這是一個移動應用程序,所以我不需要:hover僞類。

+3

如果爲子元素添加':hover'規則,後面的示例將展示更多的可靠性。 [更新演示](http://jsfiddle.net/davidThomas/dAHqe/3/)。 –

+0

@大衛托馬斯:這是一個很好的觀點,但對於那些無關緊要的移動應用程序呢? – CletusW

回答

2

個人而言,在你給的例子,我永遠只是去與簡單的選擇,並把它放在容器上。

然而,理由做它的其他方式:

  • 也許你沒有一個容器,你不能改變的代碼添加一個。

  • 你有一些理由要靈活地改變的方式,具有單個容器是行不通的個別列表項。也許你想讓它們在懸停時半透明?

  • 你必須解決一個尷尬的HTML結構。我曾經遇到類似這樣的情況,我不得不在複雜的表格中爲單元格添加圓角。所討論的單元格是大表中的子標題行和列,但是它們的組合方式意味着必須將圓角分別放入單獨的單元格中。這是很尷尬和尷尬,但最終看起來他們是如何需要它。

  • 編碼器不知道CSS那麼好,只是嬰兒牀它從別的地方,做這樣的說法。

這些是我能想到的唯一原因。但我懷疑大多數案件都屬於這些案件之一。

希望有所幫助。