2010-10-28 60 views
1

我想我被寵壞了JavaScript。如果你想改變關於父代的東西,你可以編寫類似parentNode.style.etc的東西。你可以使用CSS引用某個對象的父對象或子對象嗎?

 

<TABLE id="hasID"> 
    <TBODY> 
    <TR> 
     <TD> 
     <IMG id="hasID2" src="somePicture.png"> 
     <IMG id="hasID3" src="someOtherPicture.png"> 
     </TD> 
    </tr> 
    <tr> 
     <td>other stuff</td> 
    </tr> 
    </tbody> 
</table> 
 

正如你從我的代碼表中可以看到有一個ID,而img標籤有ID。我想要做的是在第一個TD上添加一個stype類,以便所有的圖像都對齊到左側或中間,這種事情。

但是,這裏有一個棘手的部分,我不想使用JavaScript,因爲它看起來很慢。一切都從右邊開始,然後在加載完所有內容後跳到中心。

此外,這是第二個棘手的部分。我無法更改向TD添加類,因爲它由JSF生成。

所以我的主要問題是我可以用CSS來做到這一點。

更新:

我真的不需要引用父母。引用一個孩子也適用於我。

+0

可能重複的[CSS父選擇器](http://stackoverflow.com/questions/1014861/css-parent-selector) – 2010-10-28 19:51:29

+0

我有一個小錯字,但我不知道它是否重要。引用孩子也適用於我。 – 2010-10-28 20:00:07

回答

0

對不起,沒有辦法選擇父母在CSS。

Is there a CSS parent selector?

+0

引用孩子呢?這也適用於我。 – 2010-10-28 20:00:26

+0

#hasId td:第一個孩子img {}但在IE 6中不起作用6 – sunn0 2010-10-28 20:10:47

+0

抱歉#hasId tr:first-child td img – sunn0 2010-10-28 21:20:48

1

您不能選擇通過CSS父。它被提出作爲一項功能,但它甚至不是很接近實施。

我會建議你將任何javascript你必須移動到上面的內容之後,這意味着它將在該部分被渲染後立即運行,從而消除任何延遲。

<TABLE id="hasID"> 
    <TBODY> 
    <TR> 
     <TD> 
     <IMG id="hasID2" src="somePicture.png"> 
     <IMG id="hasID3" src="someOtherPicture.png"> 
     </TD> 
    </tr> 
    <tr> 
     <td>other stuff</td> 
    </tr> 
    </tbody> 
</table> 

<script type="text/javascript"> 
    var img = document.getElementById("hasID2"); 
    img.parentNode.style.textAlign = "right"; 
</script> 

內嵌JavaScript是確定在這些情況下使用。

0

不知道這是否會有所幫助,但我會提到,您可以使用帶有styleClass =「」的JSF添加類,具體取決於您如何生成表。如果你把它們放在一個數據表中,還有一個columnClass =「」。

相關問題