JS修改CSS设置的样式

JavaScript019

JS修改CSS设置的样式,第1张

语法:元素.style.样式名=样式值

注意:如果CSS的样式名中含有-,这种名称在JS中是不合法的,比如 background-color 。需要将这种样式名修改为驼峰命名法:去掉-,然后将-后的第一个字母大写,比如 backgroundColor

我们通过style属性设置的样式都是内联样式,而内联样式有较高的优先级,所以通过JS修改的样式往往会立即显示

但是如果在样式中写了!important,则此时样式会有最高的优先级,即使通过JS也不能覆盖该样式,此时将会导致JS修改样式失效

所以尽量不要为样式添加!important

语法:元素.style.样式名

通过style属性设置和读取的都是内联样式,无法读取样式表中的样式

语法:元素.currentStyle.样式名

如果当前元素没有设置该样式,则获取它的默认值

例如: box1.currentStyle.width

这个方法是window的方法,可以直接使用需要两个参数

第一个:要获取样式的元素

第二个:可以传递一个伪元素,一般都传null

该方法会返回一个对象,对象中封装了当前元素对应的样式

可以通过对象﹒样式名来读取样式

如果获取的 样式没有设置 ,则会获取到真实的值,而不是默认值

比如:没有设置width,它不会获取到auto,而是 一个长度

注意:通过currentStyle和getComputedstyle()读取到的样式都是只读的,不能修改,如果要修改必须通过style属性

参数:

obj 要获取样式的元素

name 要获取的样式名

js输入宽和高改变样式有两种情况:第一种情况就是宽高都写在样式表里,就比如#div1{width:120px}。这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度。

第二种情况就是宽和高是写在行内中,比如style="width:120px",这中情况通过上述2个方法都能拿到宽度。(什么是行内,就是直接在html标签上写样式)

准备事件没有放在ready事件里面

<html>

<head>

<title>style改变样式</title>

</head>

<script src="js/jquery-1.10.1.min.js" type="text/javascript"></script>

<style type="text/css">

li{

font-size:12px

color:#000000

background:#f7f7f7

width:104px

height:33px

line-height:38px

float:left

list-style:none

text-align:center

margin-left:2px

}

</style>

<script type="text/JavaScript">

// document.getElementsByTagName("li")获取所有的li标签

$(document).ready(function(){

var len = document.getElementsByTagName("li")

alert(len)

//为每一个li设置事件和效果

for(var i=0i <len.lengthi++){

len [i].onmouseover = function(){

this.style.background="#777777"

}

len [i].onmouseout = function(){

this.style.background="#f7f7f7"

}

}

})

</script>

<body>

<ul>

<li>新闻</li>

<li>视频</li>

<li>小说</li>

</ul>

</body>

</html>