2012-07-26 81 views
1

這很難解釋我的意思,所以看到這樣的jsfiddle第一:http://jsfiddle.net/Gsggy/顯示一個div僅當URL沒有片段標識符

當用戶點擊1,格號1所示,同爲別人,很簡單。

然而,用戶點擊一個數字之前,沒有格在那裏,因爲它依賴於在URL

的#值如何設置一個默認的div是有一個空白的網址,例如: www.jsfiddle.com但是當有人點擊一個數字,使得它www.jsfiddle.com/#1

+0

請注意不允許以數字開頭的ID。另外請澄清,如果你的默認div應該是一個有id的元素或者它應該是一個額外的元素。 – 2012-07-26 11:50:42

+0

這只是一個模型,我的實際股利有專有名稱。 它應該是一個兄弟姐妹(所以#1#2和#3的兄弟姐妹),它可以有一個ID,但我不想在url中使用#default – Andy 2012-07-26 11:51:26

回答

2

事情是你不能真正的目標元素的方式來告訴它「做某事,而別人是目標」。

然而,這種困境有一些解決方法。一種解決方案是始終顯示默認內容並顯示上面的目標元素。

你可以使用這樣一個事實,即在dom後面出現的元素通常被渲染到更早出現的節點之上。因此,您可以使用例如負頂部邊距或絕對定位元素來覆蓋默認內容。

提高你的HTML結構:

<div class="default" id="z">0</div> 
<div id="a">1</div> 
<div id="b">2</div> 
<div id="c">3</div> 

這個CSS不工作:

.default { 
    display: block; 
    background: #eff; 
} 

div + div { 
    margin-top: -102px; 
} 

div:target { 
    background: #eef; 
    display: block; 
    position: relative; 
} 

的缺點,以這種特殊的方式是,你需要知道你的默認內容的確切尺寸。

看到這個提琴:http://jsfiddle.net/Gsggy/4/

0

使用第n-的類型或最後的類型選擇,使默認格在最後,我認爲它會消失將在你的情況下工作