css动态赋值

html-css019

css动态赋值,第1张

一行有四个标签时,给它设置一个类名,style_4,三个时,设置类名style_3。

PS:其实我不知道你是什么的布局,按照你描述的需求,我个人觉得一般每行放几个标签,是根据浏览器的分辨率来分的。比如我把标签设置成220像素宽,浏览器一行是1000像素,放四个刚刚好,那么就放四个;浏览器是800像素,只能放三个,那么就放三个。我觉得每个标签应该设置成一样的,而不是先放了几个,再设置标签的宽度。就是说先有了标签宽度,再确定一行放几个,而非一行放了几个了再确定宽度。

简单说一下

比如在新闻页

在最上面定义一个

page="news"

因为不知道你是用什么语言,所以我就用ASP来举例子。

然后在你菜单那个文件里

<li<%if page="index" then%>class="active" <%end if%>><a href="index.asp">首页</a></li<%if page="news then%>class="active" <%end if%>><li><a href="news.asp">新闻</a></li>

大概是这样子,原理就是在每个页面page值直接在菜单那里,判断

也有用JS,JQ来做的

其实原理都是一样的

每个页面定义一个ID,或者直接把你所有菜单数做成一个数组,

在菜单页面判断ID或者读取这个数组,用JS或者JQ来写个class就行了。

<div id="did" class="defcls"></div>

js 使用  ...style.[css属性(第二个首字母大写)]

var dom = document.getElementById( "did" )

      dom.style.color = "#000"

      dom.style.fontSize = "30px"

因为js选择元素很麻烦,所以建议引入jquery 库,操作元素很方便。也是常用的做法。

jquery

$('.defcls').css({color:'#000',fontSize:'20px'})

以上是直接修改元素的属性。直接修改 CSS样式表 就很麻烦了,一般不这样做。

js直接修改页面中的CSS样式表

var Hsheet = window.frames.wpages.document.styleSheets[0]//找到样式表

function setRules(name){

   for(var i = 0 i < Hsheet.cssRules[0].cssRules.length i++){

     if(Hsheet.cssRules[0].cssRules[i].selectorText===name){ //找到样式

Hsheet.cssRules[0].cssRules[i].style.color = "#000"

break

     }

   }

}

setRules('defcls')

这个方式比较罕见,只有在即为特殊的情况下,才会直接修改样式表,也是效率最低的一种。