假设有多个div标签,如果最内层有一个元素,那么如何访问该元素或为该元素声明css?
<div class="...">
<div class="...">
<div class="...">
.....
<div class="...">
<p>element</p>
</div>
.....
</div>
</div>
</div>
如何在单独的css文件中访问元素<p>
或为其设置背景图像?
答案 0 :(得分:3)
这取决于您希望风格的具体,例如,如果您有:
<div class="page">
<div class="content">
<div class="some-container">
<p class="description">Lorem Ipsum</p>
</div>
</div>
</div>
您可以根据需要将<p>
设置为通用/特定样式:
p
{
color:red; /* Affects all p */
}
p.description
{
color:blue; /* Affects all p with class description */
}
.some-container p
{
color:black; /* Affects all p that is a descendant of an element with some-container class */
}
.page .content .some-container p.description
{
color:white; /* You get the idea */
}
答案 1 :(得分:1)
最简单的方法可能是定义一个css类并将该类用于元素。
.myCssClass{
// --- css properties.
}
<div>
<div>
<div>
<div>
<div>
<input class="myCssClas" />
</div>
</div>
</div>
</div>
</div>
答案 2 :(得分:1)
CSS选择器之间的空格允许您引用后代元素,无论它们在树下多远。
因此,如果您的顶级<div>
有一个topdiv
类,您可以使用一个简单的CSS选择器访问树中它下面的所有<p>
元素:
.topdiv p {
.....
}
如果您需要更具体,可以使用树中更远的其中一个div的类,而不是.topdiv
引用,或者与它一起使用:
.topdiv .middlediv p {
.....
}
将引用<p>
元素中包含的所有middlediv
元素,该元素本身包含在topdiv
元素中。
您可以继续使用此模式,使其尽可能具体,以确保您只引用所需的元素。
如果需要更具体,可以使用尖括号>
替换空格分隔符。这指定选择器中的下一个项目是前一个项目的直接子元素,而不是在树的任何位置。
有许多其他CSS选择器可能很方便了解,但这些是最常用的选择器,并且最有可能在您的情况下提供帮助。
答案 3 :(得分:1)
你真的只需要知道<p>
上方元素的类,所以
<div class="...">
<div class="...">
<div class="...">
.....
<div class="something">
<p>element</p>
</div>
.....
</div>
</div>
</div>
CSS将是
.something p{//background img styles//}
您也可以这样做
div div div div p{}
但是,只有这是页面的确切结构(中间没有元素)并且它没有在其他地方重复。
最好的方法是给<p>
一个class
或id
(如果它是唯一的)和样式
<div class="...">
<div class="...">
<div class="...">
.....
<div class="...">
<p class="paraWithBG">element</p>
</div>
.....
</div>
</div>
</div>
样式为
.paraWithBG{//background styles//}
答案 4 :(得分:0)
部分问题是可能有1个或多个子元素适合您的描述,因此不存在一个“最内层”。如果你想要所有这样的“叶子”元素,你可以尝试使用像jQuery这样的东西:
function tagLeaves() {
if ($(this).children().size() == 0) {
$(this).addClass("leaf");
} else {
$(this).children().each(tagLeaves);
}
}
$(function () {
$("#firstDiv").each(tagLeaves);
});
然后,您可以定义一组.leaf样式以应用于这些元素。
答案 5 :(得分:0)
试试这个,我做了,在这里工作
$(function(){
var t = $('#stefanz'),
total = $('div',t).size() - 1 ;
$('div',t).eq(total).children().css({
'background-color' : '#000',
'color' : '#fff',
'padding' : '5px',
'display' : 'inline-block'
});
});
并且你在这里有html代码
<div id="stefanz">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p>stefanz</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
我在几个方面进行了测试,效果很好。我在等你的反馈
答案 6 :(得分:0)
<style>
.foo p
{
background : yellow;
}
</style>
<div class="foo">
<div class="...">
<div class="...">
.....
<div class="...">
<p>element</p>
</div>
.....
</div>
</div>
</div>
尝试一下。这个对我有用 !!