css – 将鼠标悬停在元素上,并突出显示同一个类的所有元素

前端之家收集整理的这篇文章主要介绍了css – 将鼠标悬停在元素上,并突出显示同一个类的所有元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在网页上有很多同一个类的元素.当我悬停其中一个时,我想强调所有这些元素.如何在CSS中做到这一点?

现在我有这个CSS:

p.un:hover { background-color:yellow;}

和我的HTML:

<div class="book">
  <div class="page left">
    <p class="un">Karen…</p>
  </div>
   <div class="page right">
     <p class="un">Karen ne se retourne pas. Mme Tilford reste là,apparemment confuse et abattue.</p>
   </div>

解决方法

使用纯CSS最好的方法是:
.classname:hover ~ .classname {
    background-color: yellow;
}

但是,这只会突出显示所有带有类别名的兄弟姐妹.

您必须使用JavaScript来突出显示所有元素;

var elms = document.getElementsByClassName("classname");
var n = elms.length;
function changeColor(color) {
    for(var i = 0; i < n; i ++) {
        elms[i].style.backgroundColor = color;
    }
}
for(var i = 0; i < n; i ++) {
    elms[i].onmouSEOver = function() {
        changeColor("yellow");
    };
    elms[i].onmouSEOut = function() {
        changeColor("white");
    };
}

如果您有多个课程,并希望将其推广,请使用以下内容

var classes = ["one","two","three"]; //list of your classes
var elms = {};
var n = {},nclasses = classes.length;
function changeColor(classname,color) {
    var curN = n[classname];
    for(var i = 0; i < curN; i ++) {
        elms[classname][i].style.backgroundColor = color;
    }
}
for(var k = 0; k < nclasses; k ++) {
    var curClass = classes[k];
    elms[curClass] = document.getElementsByClassName(curClass);
    n[curClass] = elms[curClass].length;
    var curN = n[curClass];
    for(var i = 0; i < curN; i ++) {
        elms[curClass][i].onmouSEOver = function() {
            changeColor(this.className,"yellow");
        };
        elms[curClass][i].onmouSEOut = function() {
            changeColor(this.className,"white");
        };
    }
};
原文链接:https://www.f2er.com/css/216656.html

猜你在找的CSS相关文章