CSS设置表格边框

题目描述:请写一个表格以及对应的CSS,使表格奇数行为白色背景,偶数行为灰色背景,鼠标移上去时为黄色背景。
刷题时看到这道,其实是想通过这道题来巩固一下对表格样式的控制。
对于如下一个表格

<table class="demo">
     <tr>
       <td>1.1</td>
       <td>1.2</td>
     </tr>
     <tr>
       <td>2.1</td>
       <td>2.2</td>
     </tr>
     <tr>
       <td>3.1</td>
       <td>3.2</td>
     </tr>
</table>

不加样式时这样子的

  • 样式一:给 table 加 border
.demo {
      border: 1px solid #333;
 }
样式一
  • 样式二:给 td 加 border
td {
      border: 1px solid red;
}
样式二
  • 样式三:同时给 table 和 td 加border
.demo {
      border: 1px solid #333;
 }
 td {
      border: 1px solid red;
 }

样式四

表格同时加了两个边框,诶,为什么table的border和td的border中间会有间隔?于是引出了cellspacing这个属性。

  • 样式四:cellspacing属性
    cellspacing 属性规定单元格之间的空间。与之类似的还有cellpadding属性,但是cellpadding规定单元边沿与其内容之间的空白。
    也就是说,cellspacing类似于margin,而cellpadding类似于padding。
    如果我们加了这么一行
<table class="demo" cellspacing="0" cellpadding="10">
样式四

可以看出,表格各单元格边距和内容之间都有了一个10px的padding,但是还发现了另一个问题,table的border是双重的,也就是,table的border和td的border都起了作用,叠加了。
那么,我们该怎么愉快的给一个表格设置边框么?

  • 样式五:左上border利用td标签设置,右下border利用table标签设置。
td {
      border-top: 1px solid #333;
      border-left: 1px solid #333;
  }
  .demo {
       border-right: 1px solid red;
       border-bottom: 1px solid red;
  }
样式五

哦也~搞定。
然后这道题自己贴的代码如下~

<!DOCTYPE html>
    <head>
        <meta charset="utf-8"/>
        <style type="text/css">
            td {
                border-top: 1px solid #333;
                border-left: 1px solid #333;
            }
            table {
                border-right: 1px solid #333;
                border-bottom: 1px solid #333;
            }
            tr:nth-child(odd) {
                background: #fff;
            }
            tr:nth-child(even) {
                background: gray;
            }
            tr:hover {
                background: yellow;
            }
        </style>
    </head>
    <body>
        <table cellspacing="0">
        <tr>
            <td>row 1, cell 1</td>
            <td>row 1, cell 2</td>
        </tr>
        <tr>
            <td>row 2, cell 1</td>
            <td>row 2, cell 2</td>
        </tr>
        <tr>
            <td>row 2, cell 1</td>
            <td>row 2, cell 2</td>
        </tr>
        <tr>
            <td>row 2, cell 1</td>
            <td>row 2, cell 2</td>
        </tr>
        <tr>
            <td>row 2, cell 1</td>
            <td>row 2, cell 2</td>
        </tr>
        <tr>
            <td>row 2, cell 1</td>
            <td>row 2, cell 2</td>
        </tr>
        </table>
    </body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 3,318评论 0 5
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,807评论 1 92
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 3,205评论 0 11
  • 再说说我们操场值班的事 虽然上周我们两个的认真负责起到了一定的作用,但是事隔两天,孩子们就有遗忘。周一我有事...
    王婷晓阅读 371评论 0 2
  • 生活如同一幅寂静的画, 它能完完全全地绘画出你的点点滴滴。 生活如同一张张照片, 它能记录你所有的...
    孤阂阅读 212评论 0 3