zoukankan      html  css  js  c++  java
  • CSS控制表格隔行变色与鼠标滑过变色

    (1)用expression

    鼠标滑过变色:

    <style type="text/css">
    <!--
    table { background-color:#000000; cursor:hand; 100%; }
    td {

    onmouseover: expression(onmouseover=function (){this.style.borderColor ='blue';this.style.color='red';this.style.backgroundColor ='yellow'});

    onmouseout: expression(onmouseout=function (){this.style.borderColor='';this.style.color='';this.style.backgroundColor =''});
    background-color:#ffffff;
    }

    -->
    </style>

    <table>
    <tr><td>第1行</td><td>第1列</td></tr>
    <tr><td>第2行</td><td>第2列</td></tr>
    <tr><td>第3行</td><td>第3列</td></tr>
    <tr><td>第4行</td><td>第4列</td></tr>
    <tr><td>第5行</td><td>第5列</td></tr>
    </table>

    ----------------------------

    简单的隔行变色:

    <style type="text/css">
    <!--
    tr {background-color:expression((this.sectionRowIndex%2==0)?"#E1F1F1":"#F0F0F0")}
    -->
    </style>

    <table>
    <tr><td>第1行</td><td>第1列</td></tr>
    <tr><td>第2行</td><td>第2列</td></tr>
    <tr><td>第3行</td><td>第3列</td></tr>
    <tr><td>第4行</td><td>第4列</td></tr>
    <tr><td>第5行</td><td>第5列</td></tr>
    </table>

    -------------------------------

    每个单元格变色:

    <style type="text/css">
    <!--
    tr {background-color:expression((this.sectionRowIndex%2==0)?"red":"blue")}
    td {background-color:expression((this.cellIndex%2==0)?"":((this.parentElement.sectionRowIndex%2==0)?"green":"yellow"))}
    -->
    </style>

    <table>
    <tr><td>第1行</td><td>第1列</td></tr>
    <tr><td>第2行</td><td>第2列</td></tr>
    <tr><td>第3行</td><td>第3列</td></tr>
    <tr><td>第4行</td><td>第4列</td></tr>
    <tr><td>第5行</td><td>第5列</td></tr>
    </table>

    ------------------------

    以上都用到expression,实现变得很方便,但是,经测试,在IE6(其它版本我不知道)上很正常,在firefox上无任何反应…… ,要想在firefox上也有此效果,就要用第二种方法

    (2)用JS

    鼠标滑过变色:

    <script language="javascript">
    window.onload=function showtable(){
    var tablename=document.getElementById("mytable");
    var li=tablename.getElementsByTagName("tr");
    for (var i=0;i<=li.length;i++){
    li[i].style.backgroundColor="#FFB584";
    li[i].onmouseover=function(){
    this.style.backgroundColor="#FFFFFF";
    }
    li[i].onmouseout=function(){
    this.style.backgroundColor="#FFB584"
    }
    }
    }
    </script>

    <table id="mytable">
    <tr><td>第1行</td><td>第1列</td></tr>
    <tr><td>第2行</td><td>第2列</td></tr>
    <tr><td>第3行</td><td>第3列</td></tr>
    <tr><td>第4行</td><td>第4列</td></tr>
    <tr><td>第5行</td><td>第5列</td></tr>
    </table>

    ------------------------

    隔行变色:

    <script language="javascript">
    window.onload=function showtable(){
    var tablename=document.getElementById("mytable");
    var li=tablename.getElementsByTagName("tr");
    for (var i=0;i<=li.length;i++){
    if (i%2==0){
    li[i].style.backgroundColor="#FFB584";
    }else li[i].style.backgroundColor="#FFFFFF";
    }
    }
    </script>

    <table id="mytable">
    <tr><td>第1行</td><td>第1列</td></tr>
    <tr><td>第2行</td><td>第2列</td></tr>
    <tr><td>第3行</td><td>第3列</td></tr>
    <tr><td>第4行</td><td>第4列</td></tr>
    <tr><td>第5行</td><td>第5列</td></tr>
    </table>

    ------------------------

    以上都要用到JS,还需要table有个id,可以对指定的table操作,但是,假如遇到某人的firefox装了NoScript的话……可以无视了

    ------------------------

    隔行变色的鼠标经过变色


    <html>
    <head>
    <title>隔行变色的鼠标经过变色</title>
    <style type="text/css" media="screen">
    table {border-collapse:collapse;border:solid #999;border-1px 0 0 1px;}
    table td {border:solid #999;border-0 1px 1px 0;}
    .t1 {background-color:#fff;}
    .t2 {background-color:#eee;}
    .t3 {background-color:#ccc;}
    </style>
    <script type="text/javascript">
    var Ptr=document.getElementsByTagName("tr");
    function recolor() {
    for (i=1;i<Ptr.length+1;i++) {
    Ptr[i-1].className = (i%2>0)?"t1":"t2";
    }
    }
    window.onload=recolor;
    for(var i=0;i<Ptr.length;i++) {
    Ptr[i].onmouseover=function(){
    this.tmpClass=this.className;
    this.className = "t3";
    };
    Ptr[i].onmouseout=function(){
    this.className=this.tmpClass;
    };
    }
    </script>
    </head>

    <body>
    <table width=400 align=center>
    <tr><td>1</td><td>2</td></tr>
    <tr><td>1</td><td>2</td></tr>
    <tr><td>1</td><td>2</td></tr>
    </table>

    </body>
    </html>

    ------------------------

    表格隔行换色+鼠标点击变色


    <html>
    <head>
    <title>表格隔行换色+鼠标点击变色</title>
    <style type="text/css"><!--
    #senfe {
    300px;
    border-top: #000 1px solid;
    border-left: #000 1px solid;
    }
    #senfe td {
    border-right: #000 1px solid;
    border-bottom: #000 1px solid;
    }
    --></style>
    <script language="javascript"><!--
    function senfe(o,a,b,c,d){
    var t=document.getElementById(o).getElementsByTagName("tr");
    for(var i=0;i<t.length;i++){
    t[i].style.backgroundColor=(t[i].sectionRowIndex%2==0)?a:b;
    t[i].onclick=function(){
    if(this.x!="1"){
    this.x="1";//本来打算直接用背景色判断,FF获取到的背景是RGB值,不好判断
    this.style.backgroundColor=d;
    }else{
    this.x="0";
    this.style.backgroundColor=(this.sectionRowIndex%2==0)?a:b;
    }
    }
    t[i].onmouseover=function(){
    if(this.x!="1")this.style.backgroundColor=c;
    }
    t[i].onmouseout=function(){
    if(this.x!="1")this.style.backgroundColor=(this.sectionRowIndex%2==0)?a:b;
    }
    }
    }
    --></script>
    </head>
    <body>
    <table border="0" cellpadding="0" cellspacing="0" id="senfe">
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    <tr><td> </td><td> </td><td> </td><td> </td></tr>
    </table>
    <script language="javascript"><!--
    //senfe("表格名称","奇数行背景","偶数行背景","鼠标经过背景","点击后背景");
    senfe("senfe","#fff","#ccc","#cfc","#f00");
    --></script>
    </body>
    </html>


    ------------------------

    鼠标放置后变色


    <html >
    <head>
    <title> 鼠标放置后变色 </title>

    <script type="text/javascript">
    <!--
    //分别是奇数行默认颜色,偶数行颜色,鼠标放上时奇偶行颜色
    var aBgColor = ["#FFFFFF","#f2faff","#FFFFCC","#FFFFCC"];
    //从前面iHead行开始变色,直到倒数iEnd行结束
    function addTableListener(o,iHead,iEnd)
    {
    o.style.cursor = "normal";
    iHead = iHead > o.rows.length?0:iHead;
    iEnd = iEnd > o.rows.length?0:iEnd;
    for (var i=iHead;i<o.rows.length-iEnd ;i++ )
    {
    o.rows[i].onmouseover = function(){setTrBgColor(this,true)}
    o.rows[i].onmouseout = function(){setTrBgColor(this,false)}
    }
    }
    function setTrBgColor(oTr,b)
    {
    oTr.rowIndex % 2 != 0 ? oTr.style.backgroundColor = b ? aBgColor[3] : aBgColor[1] : oTr.style.backgroundColor = b ? aBgColor[2] : aBgColor[0];
    }
    window.onload = function(){addTableListener(document.getElementById("tbColor"),0,0);}
    //-->
    </script>
    </head>


    <body>
    <table border="1" width="100%" id="tbColor">
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    <tr><td>11</td><td>11</td><td>11</td></tr>
    </table>
    ? : 问号和冒号是一起用的,叫条件运算符。
    语法:

    条件表达式 ? 真值 : 假值

    这个表式式由三部分组成的,如果条件表达式的值为真,则整个表达式的值为“真值”的值,反之为“假值”的值。
    </body>
    </html>
     

  • 相关阅读:
    hdu5119 DP
    poj3692 最大点权独立集/最大独立集
    poj2125 最小点权覆盖集
    二分图总结
    poj2531 Network Saboteur
    poj1573 Robot Motion
    poj2632 Crashing Robots
    poj1068
    动态规划的思考(三)
    代刷题目分类(三)
  • 原文地址:https://www.cnblogs.com/ITRoad/p/1572411.html
Copyright © 2011-2022 走看看