如何使用javascript更改css属性

Roh*_*Das 18 javascript css hover

我想用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;
}
Run Code Online (Sandbox Code Playgroud)

而且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>
Run Code Online (Sandbox Code Playgroud)

当hello1 div悬停时,bye1 div应该是可见的,当hello2悬停时,类似的bye2应该出现.

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

Ved*_*Ved 27

你可以使用style属性.例如,如果要更改边框 -

document.elm.style.border = "3px solid #FF0000";
Run Code Online (Sandbox Code Playgroud)

类似的颜色 -

 document.getElementById("p2").style.color="blue";
Run Code Online (Sandbox Code Playgroud)

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

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

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


Apu*_*a07 7

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

document.getElementById("ele_id").style.color="blue";
Run Code Online (Sandbox Code Playgroud)

但是,为了更改多个属性,更可靠的方法是使用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);
Run Code Online (Sandbox Code Playgroud)

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


Tia*_*gel 6

// 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
Run Code Online (Sandbox Code Playgroud)


Dip*_*mar 5

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

var d = document.getElementsByClassName("left1");
d.className = d.className + " otherclass";
Run Code Online (Sandbox Code Playgroud)

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

<div class="somelclass"></div>
Run Code Online (Sandbox Code Playgroud)

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

<div class='someclass'></div>
Run Code Online (Sandbox Code Playgroud)

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

这是个人经验。

  • 关键是你忘记了 `Element` 和 `Class` 之间的 `s`...它应该是 `getElementsByClassName`。 (5认同)
  • 这仍然是不正确的,“getElementsByClassName”返回一个元素列表,而不是单个元素。您必须对其进行迭代并对每个更改应用。 (4认同)
  • 没有诸如getElementByClassName这样的东西。 (3认同)
  • 我敢肯定,单引号和双引号在这种情况下不会有任何区别(浏览器将对它们进行相同的解释;请尝试右键单击带有单引号的元素,然后在Firefox中转到“检查元素”。)它带有双引号)。仅当需要嵌套它们时,才值得区别,例如`document.querySelector('input [type =“ checkbox”]')` (2认同)