1

我尝试了一些不同的方法来让第一个元素将其显示属性设置为阻塞,其余的应该设置为无。但是我不能只得到元素的第一次出现,每次我使用选择器时,我都会得到所有元素或一个都没有。也许你们中的一些人知道一些 CSS 技巧来解决我的问题。

这是我的代码:

<div class="some_class">
<p>...</p>
<p>...</p> 
<p> <object height="300" width="480"></object></p> 
<p> <object height="300" width="480"></object></p> 
<p> <object height="300" width="480"></object></p> 
<p>...</p></div>

我需要第一次出现“对象”。我无法更改 HTML,必须找到一种方法来通过使用一个不错的 CSS 选择器来解决这个问题。有人有想法吗?

我试过这样的代码:.some_class p > object:first-of-type 但是这样每个“对象”都会被选中......因为每个“对象”都是其父级“p”的第一个类型。

4

3 回答 3

1

注意:这仅在元素是静态的情况下有效,可以更改 nth-of-type()for p,但如果元素是动态的,则需要使用 JavaScript

尝试这个

.some_class p:nth-of-type(1) object {
   /* Styles goes here */
}

这将选择p元素中的所有对象,所以如果你在 p 中只有一个对象元素,请使用它,如果你有多个而不是使用这个

.some_class p:nth-of-type(1) object:nth-of-type(1) {
   /* Styles goes here */
}
于 2013-05-06T09:31:15.490 回答
0

如果有兴趣,一行简单的 JS 就可以做到这一点:

document.querySelector("p object").style.display = "block";

(只是玩得开心querySelector(),因为它对我来说是新的。)

于 2013-05-06T09:44:02.790 回答
0

你有没有尝试过类似的东西

div.some_class:first-child p object { display:block;}

我不确定这是否有效,但它适用于这种结构

div.some_class:first-child .some_class2 { display:block;}

于 2013-05-06T09:38:14.140 回答