JS修改CSS设置的样式

html-css042

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 要获取的样式名

直接从数据库提取的话,你判断一下就可以了,使用不同的样式

页面定义好样式,使用class就可以了

<style>

.top_1 {width:240pxheight:40pxbackground-image:url(图片地址)background-repeat:no-repeat<br/>fonct-size:14pxborder:#666 1px solidbackground-color:#cccpadding-left:40px<br/>padding-top:10px}

.top_2 {background-image:url(图片地址)background-repeat:no-repeat}

.top_3 {background-image:url(图片地址)background-repeat:no-repeat}

.top_4 {background-image:url(图片地址)background-repeat:no-repeat}

ul {list-style:nonepadding:0pxmargin:0px}

li {font-size:12pxpadding-left:10pxlist-style:none}

</style>

<div id=topbox>

<div class='top_1'>记录1</div>

<div id="oTopBox">

<li class=top_2>记录2</li>

<li class=top_3>记录3</li>

<li class=top_other>记录4</li>

</div>

</div>

新浪是序号图片是一个,所以只需定义三个样式,第一个直接用,第二、三个一个样式,其他是一个样式

JS改变从第二到第10个序号图片。

var obj = document.getElementById("oTopBox") //使用确定对象范围

var oItem = obj.getElementsByTagName("li") //返回一个数组

for (i=0i<oItem.length,i++)

{

switch (i)

{

// 在这里设置每个LI的背景,因为图片中每个序号的位置是固定的,只要设置background-position就可以了

case 1: oItem[i].style.backgroundPosition= "-528px -35px"break

case 2: ......

}

//如果图片放置位置有规律,新浪好像是在一列,这样左边距相同,提取高度就可以了,直接设置

oItem[i].style.backgroundPosition = "40px"+ i*20 +"px" //这里的20好比是序号的高度

}

如果你不想在一个图里放需要,那就多定义样式,这样就不需要脚本了。