zoukankan      html  css  js  c++  java
  • 【转载】用div+css模拟表格对角线

    本文引用蓝色理想论坛。

    首先声明

    这只是探讨一种CSS模拟表格对角线的用法,实际在工作中可能觉得这样做有点小题大作,这不是本主题讨论的重点。如果对此深以为然的朋友,请一笑过之。。。

    有时在插入文档时,要用到表格对角线,常见的作法是用图片的方式来处理,还有就是用vml来画对角线,能不能用html+css方式来实现呢?答案是肯定的,下面我们来摸拟一个表格对角线。

    原理

    用边框线来摸拟斜线,我们知道,如果将一个DIV的边框线设置得足够宽并定义了不同的颜色时,其相邻的两条边框线交界处就是斜线。知道了这个原理,我们就可以用border-left和border-top来模拟出斜线的效果。

    我们先创建一个结构:

    <div class="out">
        <b>类别</b>
        <em>姓名</em>
    </div>

    我们用<div class="out">作为对角线的容器,我们来设置斜线样式,关键代码如下:

    .out{
       border-top:40px #D6D3D6 solid;/*上边框宽度等于表格第一行行高*/
       0px;/*让容器宽度为0*/
       height:0px;/*让容器高度为0*/
       border-left:80px #BDBABD solid;/*左边框宽度等于表格第一行第一格宽度*/       
      position:relative;/*让里面的两个子容器绝对定位*/
    }

    <b>和<em>两个标签来设置两个分类,分别将它们设置为块状结构display:block;清除其默认的字体样式font-style:normal;因其父容器设置了相对定位,所以设置其为绝对定位,这样可以将它偏移到你想指定的位置了。

    b{font-style:normal;display:block;position:absolute;top:-40px;left:-40px;35px;}
    em{font-style:normal;display:block;position:absolute;top:-25px;left:-70px;55x;}

    这样一个斜线对角线就模拟出来了。知道了原理,你可以变成很多有趣的东西出来,祝你好运!

    这种对角线模拟法也有缺点:

    1. 宽高度必须是已知的
    2. 宽高的长度不能差得太大,你可以试试将宽度拉得比高度长好几倍,看看效果。(给你们留点作业练习练习)
    3. 还有就是斜线条不能设置颜色。

    另:以上代码只测试了ie6和ff3,其它浏览器未做测试,请朋友们测试一下。

    下面是完整的代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>用div+css模拟表格对角线</title>
    <style type="text/css">
    *{padding:0;margin:0;}
    caption{font-size:14px;font-weight:bold;}
    table{ border-collapse:collapse;border:1px #525152 solid;50%;margin:0 auto;margin-top:100px;}
    th,td{border:1px #525152 solid;text-align:center;font-size:12px;line-height:30px;background:#C6C7C6;}
    th{background:#D6D3D6;}
    /*模拟对角线*/
    .out{
       border-top:40px #D6D3D6 solid;/*上边框宽度等于表格第一行行高*/
       0px;/*让容器宽度为0*/
       height:0px;/*让容器高度为0*/
       border-left:80px #BDBABD solid;/*左边框宽度等于表格第一行第一格宽度*/    
       position:relative;/*让里面的两个子容器绝对定位*/
    }
    b{font-style:normal;display:block;position:absolute;top:-40px;left:-40px;35px;}
    em{font-style:normal;display:block;position:absolute;top:-25px;left:-70px;55x;}
    .t1{background:#BDBABD;}
    </style>
    </head>
    <body>
    <table>
      <caption>用div+css模拟表格对角线</caption>
      <tr>
        <th style="80px;">
            <div class="out">
                <b>类别</b>
                <em>姓名</em>
            </div>
        </th>
        <th>年级</th>
        <th>班级</th>
        <th>成绩</th>
        <th>班级均分</th>
      </tr>
      <tr>
        <td class="t1">张三</td>
        <td>三</td>
        <td>2</td>
        <td>62</td>
        <td>61</td>
      </tr>
      <tr>
        <td class="t1">李四</td>
        <td>三</td>
        <td>1</td>
        <td>48</td>
        <td>67</td>
      </tr>
      <tr>
        <td class="t1">王五</td>
        <td>三</td>
        <td>5</td>
        <td>79</td>
        <td>63</td>
      </tr>
      <tr>
        <td class="t1">赵六</td>
        <td>三</td>
        <td>4</td>
        <td>89</td>
        <td>66</td>
      </tr>
    </table>
    </body>
    </html>

      

      

      

    生命是一场忧伤的观望,恰如陌路花开,终究是个过客。
  • 相关阅读:
    CCPC长春赛重现
    2016弱校联盟十一专场10.3,BNU52308,大模拟
    2016弱校联盟十一专场10.3,BNU52308,大模拟
    UVA12264 二分最大流,注意pdf的样例是错的
    UVA12264 二分最大流,注意pdf的样例是错的
    UVA1658海军上将,拆点费用流
    UVA1658海军上将,拆点费用流
    angular报错:Please add a @Pipe/@Directive/@Component annotation
    angular 自定义验证器
    ionic 学习笔记
  • 原文地址:https://www.cnblogs.com/ygyxinyu/p/3785796.html
Copyright © 2011-2022 走看看