Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(www.javaxxz.com)已经为数万Java学习者服务超过7年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:http://item.taobao.com/item.htm?id=44171550842
成为荣耀会员,分享5TB资料及站长学习指导,购买链接:https://item.taobao.com/item.htm?id=44435180049
技术售后:点击这里给我发消息 资料售后:点击这里给我发消息 ①群:Java学习者群②javaxxz.com ②群:Java学习者群③javaxxz.com 求职招聘群:Java求职与招聘 精英群:Java学习者精英群
JavaEE 49期就业班视频教程Java从菜鸟到大神的学习路线之基础篇Java从菜鸟到大神的学习路线之实战篇Java从菜鸟到大神的学习路线之高级篇

价值两万达内2017年最新Java整套视频

Java开发视频教程下载

大数据开发视频教程

前端开发视频教程下载

安卓开发视频教程下载

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
查看: 134|回复: 0

[默认分类] Html-浅谈如何正确给table加边框

[复制链接]
  • TA的每日心情
    开心
    2018-8-25 14:10
  • 签到天数: 222 天

    [LV.7]常住居民III

    发表于 2018-7-13 18:05:07 | 显示全部楼层 |阅读模式
    一般来说,给表格加边框都会出现不同的问题,以下是给表格加边框后展现比较好的方式

    1. <style>
    2.         table,table tr th, table tr td { border:1px solid #0094ff; }
    3.         table { width: 200px; min-height: 25px; line-height: 25px; text-align: center; border-collapse: collapse;}   
    4.     </style>
    5.     <table>
    6.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    7.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    8.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    9.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    10.     </table>
    复制代码

    但是根据不同的需要有时候我们需要不同的样式,在这里我就影响表格边框的因素,做一些总结和分析
    一、 <table border="1"> 表格边框
    如图:,也就是border=1,意思就是给表格的每一格,及边框加上1像素的边框

    二、 <table border="1" cellspacing="0"> cellspacing单元格间距
    如图:这时表格大小为:200*118px

    三、<table border="1" cellspacing="0" cellpadding="0"> cellpadding单元格边距
    如图: 这时表格大小为:200*110px

    四、去掉表格中table的所有属性值,当在css中给table设置{border: 1px solid #151515}
    如图:这个时候我们发现,css中的border其实就是给表格加了一个外边框而已

    五、border-collapse: collapse 边框合并,该属性设置表格的边框是否被合并为一个单一的边框,还是象在标准的 HTML 中那样分开显示
    这个时候如果我们只是想给表格整体加边框,并且不需要边距和间距,其实我们只需要这么写:

    1. <style>
    2.         table { width: 200px; min-height: 25px; line-height: 25px; text-align: center; border-color:#b6ff00; border-collapse: collapse;}   
    3.     </style>
    4.     <table border="1">
    5.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    6.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    7.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    8.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    9.     </table>
    复制代码

    如图:Google(firefox)

    六、我们在上面的图中可以清晰看见,两个浏览器所解析边框不同。但是其实他们是一样的。他们同时都给边框加了颜色,但是由于我们td和th默认有一个默认的颜色,而我们这里没有给他们添加样式去覆盖默认的黑色线条,而导致了火狐中出现的情况,其实这个情况在谷歌中也有,只是不明显,其解析的黑色默认线条被我们的颜色盖在了上面,你如果仔细查看还是会发现有黑色边条出现,这个时候我们只需要给th和td加上颜色样式即可

    1. table tr th, table tr td { border-color:#b6ff00; }
    复制代码

    如图:(Google)(firefox)

    七、从上面,仔细看,其实还是会发现不对劲,谷歌似乎外边框更深了,这其实还是因为,我们一开始在table上面加了border=1的原因,因为本身就给table加了一个默认的黑色线条样式,就是我们上面说的,th和td以及table都有默认的黑色边线,因此如果需要彻底解决这个问题,让边框可以正常显示,应该这么写:

    1. <style>
    2.         table,table tr th, table tr td { border:1px solid #0094ff; }
    3.         table { width: 200px; min-height: 25px; line-height: 25px; text-align: center; border-collapse: collapse;}   
    4.     </style>
    5.     <table>
    6.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    7.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    8.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    9.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    10.     </table>
    复制代码



    总结一下:
    Html中table的属性:
    border= “1”:给整个表格(包括表格及每一个单元格)加上1像素的黑色边框,
    其等同于css中的: table,table tr th, table tr td { border:1px solid #0094ff; }

    cellpadding=“0”:单元格边距等于0,其默认值为1px,
    其等同于css中的:{padding:0;}

    cellspacing="0":单元格间距等于0,其默认值为2px,
    其等同于css中的:border-collapse: collapse(边框合并),但又不完全相同,cellspacing仅间距,而border-collapse使临近的边线合并成一条边线,也就避免了cellspacing中边线重合造成边线加粗的问题。所以在这里不提倡使用html属性设置表格边框时将cellspacing设置为0,,如果你希望他等于0,更提倡使用css样式属性的方法去设置表格的边框,并使用border-collapse: collapse去合并边线,而不是将cellspacing设置为0,造成重合边线加粗的问题。

    总结来说,给表格加边框,有两种方式:
    1、Html属性,行内加,边框默认为黑色

    1. <table border="1" cellpadding="2" cellspacing="0" >
    2.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    3.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    4.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    5.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    6.     </table>
    复制代码

    如图:,这里就可以看到我刚才所说的重合边线加粗的问题,而下面的方式就明显不会这样了

    2、Css样式,可以自定义你喜欢的颜色,大小,样式:

    1. <style>
    2.         table,table tr th, table tr td { border:1px solid #0094ff; }
    3.         table { width: 200px; min-height: 25px; line-height: 25px; text-align: center; border-collapse: collapse; padding:2px;}   
    4.     </style>
    5.     <table >
    6.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    7.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    8.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    9.         <tr><td>内容</td><td>内容</td><td>内容</td><td>内容</td><td>内容</td></tr>
    10.     </table>
    复制代码

    如图:
    经此总结,我发现很多时候我都误用了表格边框的很多东西,实际上,用第一种方法的时候就无需使用第二种方法,两种方式混合在一起使用就会出现我前面说很多问题。


    作者:leona
    原文链接:http://www.cnblogs.com/leona-d/p/5950280.html


    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    .

    QQ|手机版|Java学习者论坛

    GMT+8, 2018-11-19 13:30 , Processed in 0.301010 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表