2013-03-20 77 views
1

我拥有所有这些div都具有相同的ID名称,除了它们在最后具有不同的号码这一事实。选择所有ID,其中唯一的区别是身份证号码中的号码

我知道我可以使用一个类,但它必须是一个ID。

<div id="myid1">text</div> 
    <div id="myid2">text</div> 
    <div id="myid3">text</div> 
    <div id="myid4">text</div> 

    <div id="test1">text</div> 
    <div id="test2">text</div> 

我的问题是使用CSS我怎么能选择他们都只是比这短。

#myid1,#myid2,#myid3,#myid4{ 
    color:red; 
} 

这种类型的事情是否存在,如果是的话,你如何写它?

myid1[*]{ 
    color:red; 
} 
+0

为什么不使用类? – 2013-03-20 14:15:14

+0

它必须是ID - 这只是一个基本的例子 – 2013-03-20 14:16:57

回答

10

尽量只使用预修复属性选择器

[id^="myid"] { 

} 

此选择器针对任何具有ID为“myid”前缀的ID属性的元素 - 引号围绕该值是可选的。此选择器也适用于上面的IE7 &。

2

是的,有一种方法

<div id="myid1" class="foo">text</div> 
<div id="myid2" class="foo">text</div> 
<div id="myid3" class="foo">text</div> 
<div id="myid4" class="foo">text</div> 

<div id="test1">text</div> 
<div id="test2">text</div> 

和CSS

.foo { color:red; } 

UPDATE

如果这些都必须标识,与[id^=myid]

1

,我认为它会工作好了很多供你使用类增量IDS违背HTML和总体规划的原则。你可以重写它像这样:

<div class="myid" data-id="1">text</div> 
<div class="myid" data-id="2">text</div> 

但是,如果必须保持id S作为他们,你可以使用属性选择:

[id^=myid] { 
    color: red; 
} 
+1

“增量ID违背HTML和一般编程原则”?你为什么这么说? html规范指出,不应该从id属性派生出特定的含义,所以增量ID对我来说似乎很好。 http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#the-id-attribute – xec 2013-03-20 14:33:38

+0

@xec ID应该标识唯一元素,因此如果元素通过某种方式相关的数据,你将不得不解析id字符串(例如,拿出'myid'部分来获得实际的ID值)。你应该解析属性本身(如'data-id')。 – 2013-03-20 14:51:38

+0

当然,如果您稍后在脚本中使用ID的数字部分,则在单独的属性中仅使用ID本身的数字部分会更清晰。但是,如果要链接到(或滚动到)生成页面的特定部分,增量ID是一个不错的选择。 (只是例如链接到“#myid2”)。当然,这是所有情况下,只有OP知道他们为什么需要身份证......我只是好奇你的声明的来源是什么。 – xec 2013-03-20 14:58:49

2

CSS3应有助于在这里:​​

div[id^="myid"] 

div[id^="test"] 
0

使用类除了IDS(如果你真的需要IDS):

<div class="mytext" id="myid1">text</div> 
<div class="mytext" id="myid2">text</div> 
<div class="mytext" id="myid3">text</div> 
<div class="mytext" id="myid4">text</div> 

<div id="test1">text</div> 
<div id="test2">text</div> 

那么CSS很简单:

div.mytext { 
    color: red; 
} 
1

你的情况,这将做到这一点:

[id=^"myid"] { 
    //your rules 
} 

选择id属性以“myid”开头的所有元素。

虽然您不受限于id属性。实际上,您可以使用任何其他html元素的属性。

比方说,您想选择所有<a>标签的“href”属性以“http://stackoverflow.com”开头。以下将做到这一点:

a[href=^"http://stackoverflow.com"] {} 

真的有很多选择。我会链接到w3页面,而不是自己指出它们:http://www.w3.org/TR/selectors/#attribute-selectors