2012-07-26 26 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-的类型或最后的类型选择,使默认格在最后,我认为它会消失将在你的情况下工作