JavaScript 拾碎[三] 使用className属性

A 三位一体的页面

  网页的结构层(Structure )由HTML 或XHTML 创建;

  网页的表现层(Presentation )由CSS 来创建;

  网页的行为层(Behavior )由Javascript 和DOM 所完成;

  其实,网页的表现层和行为层总是存在的,即使用户没有去定义。因为Web 浏览器会把自身默认的样式和事件加载到网页的结构层上。

  B 使用className 属性

  Javascript 还可以通过className 属性灵活的更改一个标签元素的CSS 类选择器来实现样式的变化。

  代码示例:

  

复制代码 代码如下:

  <html>

  <head>

  <title>追加CSS类别</title>

  <style type="text/css">

  .myUL1{

  color:#0000FF;

  font-family:Arial;

  font-weight:bold;

  }

  .myUL2{

  text-decoration:underline;

  }

  </style>

  <script language="javascript">

  function check(){

  var oMy = document.getElementsByTagName("ul")[0];

  oMy.className += " myUL2"; //追加CSS类,注意" myUL2"前面的空格.

  }

  </script>

  </head>

  <body>

  <ul onclick="check()" class="myUL1">

  <li>HTML</li>

  <li>JavaScript</li>

  <li>CSS</li>

  </ul>

  </body>

  </html>

  运行时,单击列表后,实际上<ul> 的class 属性变为:

  <ul onclick="check()" class="myUL1 myUL2">

  注意:

  i > 如果是直接修改className 属性值,则是对CSS 进行替换;

  ii > 但以上代码不是将原有的CSS 样式覆盖,而是对现有CSS 样式进行追加。

  追加的前提是:保证追加的CSS 与原先的CSS 不重复;

  经验:

  浏览器之间显示的差异,通常都是因为各个浏览器本身对CSS 属性的默认值不同所导致的。

  通常的解决办法是:程序员自己指定该值,而不让浏览器使用其默认值即可。