2012-12-13 173 views
2

藏匿孩子,我有以下HTML:隱藏內容,而在CSS

  • 我想刪除使用CSS
  • 的「Hello World」的字符串:

    遊戲
    <span class="parent"> 
        Hello world 
        <a href="#">Link 1</a> 
        <a href="#">Link 2</a> 
    </span> 
    

    規則

  • <a>標籤仍應可見
  • 我不能碰的HTML代碼
  • 沒有JavaScript的

因此,解決辦法是隻喜歡圍繞着「Hello World」的字符串<span>元素上設置display:none。問題是沒有這樣的<span>,我不能創建一個。

回答

8

display:none;總是隱藏孩子並覆蓋他們的display屬性。

您可以嘗試使用visibility代替:

.parent { visibility: hidden;} 
.parent a { visibility: visible;} 
+0

這實際上似乎工作,即使它在我看來是完全意外的行爲 –

+1

這是行不通的,因爲a元素仍然在一個不顯示的父元素內。可見性只保留隱藏元素的已用位置。 –

+1

@Sven Bieder:它確實有效:http://jsfiddle.net/AJKeM/ 雖然'Hello World'部分仍然佔用一些空間 (在Chrome和Firefox中測試過)。但就像我說的那樣,這是完全意外的行爲 –

2

那是不可能的。這就像你手中拿着一面旗幟,你期望當你坐在一個封閉的盒子裏時,有人仍然能看到你手中的旗幟。你能達到這個目標的唯一方法就是把孩子從父母身邊帶走,並把他們安置在其他地方。這將是dom-manipulation(javascript)。

編輯: 經過深入研究了可見性屬性和通緝行爲的技術定義後,我發現這個答案是不正確的。 jfrej已經給出了正確的答案。

+0

+1爲封閉的箱子類比。爲了讓你的比喻能夠承受被接受的答案,你可以考慮當可見性設置爲隱藏時盒子是透明的而不是消失(而不是當顯示器被設置爲無時盒子完全消失)。 –