Html 设置当前元素的父元素的样式
在这段代码中,我希望我的Html 设置当前元素的父元素的样式,html,css,Html,Css,在这段代码中,我希望我的ul有一条用activateli颜色着色的边框线。例如,如果.activate元素为灰色,则ul边框底部必须为灰色。我如何使用下面的标记来实现这一点 <nav> <ul> <li class="gray"><a href="#">All</a></li> <li class="blue"><a href="#">Item 1</a&
ul
有一条用activateli
颜色着色的边框线。例如,如果.activate
元素为灰色,则ul
边框底部必须为灰色。我如何使用下面的标记来实现这一点
<nav>
<ul>
<li class="gray"><a href="#">All</a></li>
<li class="blue"><a href="#">Item 1</a></li>
<li class="activate orange"><a href="#">Item 2</a></li>
<li class="green"><a href="#">Item 3</a></li>
</ul>
</nav>
如果你想设置样式,只需在
上添加一个类即可。CSS4选择器也可以,尽管它们目前根本不是标准的
ul!>li.activate.gray {border-bottom-color:gray}
ul!>li.activate.blue {border-bottom-color:blue}
ul!>li.activate.orange {border-bottom-color:orange}
ul!>li.activate.green {border-bottom-color:green}
:
E!>F元素的E元素父元素
到目前为止,还没有跨浏览器兼容的唯一CSS解决方案,下面是一个使用jQuery的解决方案:
小提琴演示:
<ul id="menu">
<li class="gray"><a href="#">All</a></li>
<li class="blue"><a href="#">Item 1</a></li>
<li class="orange"><a href="#">Item 2</a></li>
<li class="green"><a href="#">Item 3</a></li>
</ul>
$('#menu').on('click', 'li', function(event){
event.preventDefault();
var $item = $(event.currentTarget);
$item.siblings().removeClass('active');
$item.addClass('active');
$item.parent().css('border', '1px solid ' + $item.css('color'));
});
.gray,
.gray a {
color: gray;
}
.blue,
.blue a {
color: blue;
}
.orange,
.orange a {
color: orange;
}
.green,
.green a{
color: green;
}
标记:
<ul id="menu">
<li class="gray"><a href="#">All</a></li>
<li class="blue"><a href="#">Item 1</a></li>
<li class="orange"><a href="#">Item 2</a></li>
<li class="green"><a href="#">Item 3</a></li>
</ul>
$('#menu').on('click', 'li', function(event){
event.preventDefault();
var $item = $(event.currentTarget);
$item.siblings().removeClass('active');
$item.addClass('active');
$item.parent().css('border', '1px solid ' + $item.css('color'));
});
.gray,
.gray a {
color: gray;
}
.blue,
.blue a {
color: blue;
}
.orange,
.orange a {
color: orange;
}
.green,
.green a{
color: green;
}
样式:
<ul id="menu">
<li class="gray"><a href="#">All</a></li>
<li class="blue"><a href="#">Item 1</a></li>
<li class="orange"><a href="#">Item 2</a></li>
<li class="green"><a href="#">Item 3</a></li>
</ul>
$('#menu').on('click', 'li', function(event){
event.preventDefault();
var $item = $(event.currentTarget);
$item.siblings().removeClass('active');
$item.addClass('active');
$item.parent().css('border', '1px solid ' + $item.css('color'));
});
.gray,
.gray a {
color: gray;
}
.blue,
.blue a {
color: blue;
}
.orange,
.orange a {
color: orange;
}
.green,
.green a{
color: green;
}
您将无法仅使用CSS来实现这一点。您愿意看到jQuery解决方案吗?或者你想知道它是否仅用CSS就可以实现吗?可能是