如何使用javascript更改css属性

IT技术 javascript html css hover
2021-02-02 23:32:27

我想使用 javascript 更改类的 css 属性。我真正想要的是当一个 div 悬停时,另一个 div 应该变得可见。

我的css就像..

.left, .right{
    margin:10px;
    float:left;
    border:1px solid red;
    height:60px;
    width:60px
}
.left:hover, .right:hover{
    border:1px solid blue;
}

.center{
    float:left;
    height:60px;
    width:160px
}

.center .left1, .center .right1{
    margin:10px;
    float:left;
    border:1px solid green;
    height:60px;
    width:58px;
    display:none;
}

和 html 文件就像..

<div class="left">
    Hello
</div>
<div class="center">
       <div class="left1">
           Bye
    </div>
       <div class="right1">
           Bye1
    </div>    
</div>
<div class="right">
    Hello2
</div>

当 hello1 div 被悬停时,bye1 div 应该是可见的,同样当 hello2 被悬停时,bye2 应该出现。

http://jsfiddle.net/rohan23dec/TqDe9/1/

6个回答

您可以style为此使用属性。例如,如果您想更改边框 -

document.elm.style.border = "3px solid #FF0000";

同样的颜色 -

 document.getElementById("p2").style.color="blue";

最好的事情是您定义一个类并执行此操作-

document.getElementById("p2").className = "classname";

(必须相应地考虑跨浏览器工件)。

// select element from DOM using *const*
const sample = document.getElementById("myid"); // using CONST
// or you can use *var*
var sample = document.getElementById("myid"); // using VAR

// change css style
sample.style.color = 'red'; // Changes color, adds style property.
// or (not recomended)
sample.style = "color: red"; //Replaces all style properties. NOT RECOMENDED
我认为代码根本不需要任何解释
2021-04-08 23:32:27

使用document.getElementsByClassName('className').style = your_style.

var d = document.getElementsByClassName("left1");
d.className = d.className + " otherclass";

对包含在 html 属性双引号中的 JS 字符串使用单引号

例子

<div class="somelclass"></div>

然后 document.getElementsByClassName('someclass').style = "NewclassName";

<div class='someclass'></div>

然后 document.getElementsByClassName("someclass").style = "NewclassName";

这是个人经验。

2021-03-14 23:32:27
我很确定单引号和双引号在这种情况下没有区别(浏览器会解释它们相同;尝试右键单击带有单引号的元素并转到 Firefox 中的“检查元素”。你会发现它有双引号)。只有当您需要嵌套它们时,这种区别才值得,例如document.querySelector('input[type="checkbox"]')
2021-03-18 23:32:27
关键是你忘记了s介于ElementClass......应该是getElementsByClassName
2021-04-03 23:32:27
这仍然不正确,getElementsByClassName返回元素列表,而不是单个元素。您必须对其进行迭代并将更改应用于它们中的每一个。
2021-04-05 23:32:27
没有这样的事情getElementByClassName
2021-04-09 23:32:27

考虑以下示例:如果您想更改单个 CSS 属性(例如,颜色为“蓝色”),则以下语句可以正常工作。

document.getElementById("ele_id").style.color="blue";

但是,为了改变多个属性,更健壮的方法是使用Object.assign()or, object spread operator {...};

见下文:

const ele=document.getElementById("ele_id");
const custom_style={
    display: "block",
    color: "red"
}

//Object.assign():
Object.assign(ele.style,custum_style);

展开运算符的工作原理类似,只是语法略有不同。

仅供参考,这可以通过 CSS 完成,只需对 HTML 和 CSS 进行少量更改

HTML:

<div class="left">
    Hello
</div>
<div class="right">
    Hello2
</div>
<div class="center">
       <div class="left1">
           Bye
    </div>
       <div class="right1">
           Bye1
    </div>    
</div>

CSS:

.left, .right{
    margin:10px;
    float:left;
    border:1px solid red;
    height:60px;
    width:60px
}
.left:hover, .right:hover{
    border:1px solid blue;
}
.right{
     float :right;
}
.center{
    float:left;
    height:60px;
    width:160px
}

.center .left1, .center .right1{
    margin:10px;
    float:left;
    border:1px solid green;
    height:60px;
    width:58px;
    display:none;
}
.left:hover ~ .center .left1 {
    display:block;
}

.right:hover ~ .center .right1 {
    display:block;
}

和演示:http : //jsfiddle.net/pavloschris/y8LKM/