JQuery画细线表格

为了解决工作中的需求,本文介绍了一个自定义的JQuery插件,该插件能够绘制带有或不带有外边框的细线表格。通过使用这个插件,可以避免表格边框的默认样式问题,并且支持表格嵌套。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作需要,要个Table画细线表格,如果用表格的Border属性呢,样式是立体的,不太好看,而且如果表格嵌套的话,里面的表格的外边框会比较粗,所以自己写了个JQuery的插件,可以画带外边框的细线表格和不带外边框的细线表格

 

 

插件代码:

 

// JScript 文件

jQuery.fn.extend({
  
//带外边框
  border: function() {
    
this.each(function(){            
        $(
this).find("tbody:first >tr>td").addClass("borderTop");
        
        $(
this).find("tbody:first >tr>td").addClass("borderRight");
        
        
var trs = $(this).find("tbody:first >tr");
        
for(var i=0; i<trs.size(); i++){
            
var tr = trs[i];
            
var rightTD = $(tr).children("td:first");
            
var rightRowspan = rightTD.attr("rowspan"-1;
            rightTD.addClass(
"borderLeft");
            i 
= i+rightRowspan;
        }
        
        
for(var i=0; i<trs.size();i++){
            
var tr = trs[i];
            
var bottomTD = $(tr).children("td");
            
for(var j=0; j<bottomTD.size(); j++){
                
var bottomRowspan = $(bottomTD[j]).attr("rowspan");
                
if(bottomRowspan + i == trs.size()){
                    $(bottomTD[j]).addClass(
"borderBottom");
                }
                
                
            }
        }
        $(
this).find("tbody:first >tr:last>td").addClass("borderBottom");
        
    });
    
    
    
  },
  
//不带外边框
  noborder: function() {
    
this.each(function(){
        
var trs = $(this).find("tbody:first >tr");
        
for(var i=0; i<trs.size(); i++){
            
var tr = trs[i];
            
var leftTD = $(tr).children("td:first");
            
var leftRowspan = leftTD.attr("rowspan");
            
for(var j=i+1; j<leftRowspan+i; j++)
            {
                $(trs[j]).children(
"td:first").addClass("borderLeft");
            }
            
        }
        $(
this).find("tbody:first>tr").each(function(i){
            $(
this).children("td:not(:first)").addClass("borderLeft");
        });
        
        
for(var i=0; i<trs.size(); i++){
            
var bottomTD = $(trs[i]).children("td");
            
for(var j=0; j<bottomTD.size(); j++){
                
var bottomRowspan = $(bottomTD[j]).attr("rowspan");
                
if(bottomRowspan + i != trs.size()){
                    $(bottomTD[j]).addClass(
"borderBottom");
                }
            }
        }
        
    });
  }
}); 

 

CSS:

 .borderTop{
    border-top
:solid 1px #000000;
}
.borderBottom
{
    border-bottom
:solid 1px #000000; 
}
.borderLeft
{
    border-left
:solid 1px #000000; 
}
.borderRight
{
    border-right
:solid 1px #000000; 
}

调用:

$(function() {
    $(
"table.border").border();
    $(
"table.noborder").noborder();
});

 

 <table class="border" cellpadding="0" cellspacing="0">
            
<tr>
                
<td style="width: 100px; height: 21px;">
                    
&nbsp;</td>
                
<td style="width: 100px; height: 21px;">
                    
&nbsp;</td>
            
</tr>
            
<tr>
                
<td style="width: 100px; height: 21px;">
                    
&nbsp;</td>
                
<td style="width: 100px; height: 21px;">
                    
&nbsp;</td>
            
</tr>
           
        
</table>
        
        
<table class="noborder" cellpadding="0" cellspacing="0">
            
<tr>
                
<td style="width: 100px; height: 21px;">
                    
&nbsp;</td>
                
<td style="width: 100px; height: 21px;">
                    
&nbsp;</td>
            
</tr>
            
<tr>
                
<td style="width: 100px; height: 21px;">
                    
&nbsp;</td>
                
<td style="width: 100px; height: 21px;">
                    
&nbsp;</td>
            
</tr>
           
        
</table>

 

已知的问题:

如果表格中的td用到rowspan标记,会有问题,目前的替代做法是,用嵌套表格来实现(以解决)

如果表格中有tr或者td用display: none;隐藏了的话显示会不正确

ps:

2009-5-14:rowspan标记不能正常显示问题已解决

 

 

转载于:https://www.cnblogs.com/zixin/archive/2009/05/13/1455807.html

网页前端设计 第 1 章 Web 前端职业前景与重要理念 - Web 前端工程师简介 :了解 Web 前端开发的必要知识与发展前景,认识网页的构成元素,了解专业术语。 - 重要理念 :体验 “表现和结构相分离”,认识 Web 标准。 - Web 前端开发基本流程 :介绍开发流程及常用开发软件。 第 2 章 HTML5 页面的构建与简单控制 - 工作环境概述 :包括 Dreamweaver 和 HBuilderX 的界面、常用工具栏和面板介绍,以及 HBuilderX 的安装与启动、创建项目、安装扩展插件的方法。 - HTML5 入门 :使用 Dreamweaver 构建 “H5 标准页面”,了解 DOCTYPE 文档类型与基本结构元素、HTML5 常见元素及新增结构元素。 第 3 章 CSS3 基础入门 - CSS3 基础知识 :介绍 CSS 的基础语法、注释、引入方式。 - 盒模型 :讲解盒模型的基本概念及宽高的计算方法。 - CSS3 选择器 :包括初级选择器如通配符选择器、类型选择器等,以及高级选择器如子元素选择器、属性选择器等,并说明选择器的优先级。 第 4 章 实现 Web 前端排版的基本美化 - 文本控制 :介绍 CSS 中字体属性与文本属性,Web Font 与@font-face,以及文本的首行缩进、行高和阴影、文本溢出处理方法。 - 超链接控制 :讲解文本链接、邮件链接与锚链接,CSS 伪类与超链接的用法。 - 图像和颜色控制 :介绍 CSS 中控制图像和颜色的基本属性,以及图文混排技巧 。 第 5 章 浮动、定位与列表 - 浮动与清除浮动 :解释浮动的概念及清除浮动的三种方法。 - CSS 定位 :阐述静态定位、固定定位、相对定位和绝对定位,以及相对于某一容器的绝对定位。 - 列表样式 :介绍有关列表的 CSS 样式,以及纵向导航、简易横向导航、复杂横向导航的制作方法。 第 6 章 HTML5 增强型表单与简易表格 - 表单创建与编辑 :讲解表单的基本知识及常见的表单对象。 - CSS 控制表单 :介绍搜索栏、用户登录页面的制作,以及传统按钮、CSS3 按钮与开源样式库按钮的使用。 - 表格操作 :介绍表格的基本概念及其简易操作,细线表格、隔行换色表格的制作方法。 第 7 章 CSS3 与 HTML5 的高级应用 - CSS Sprite 技术 :分解 CSS Sprite 技术并介绍其应用。 - CSS3 渐变与动 :讲解 CSS3 的渐变效果、变形、过渡以及动的应用实例。 - HTML5 Canvas :介绍如何创建布并绘制简单图形,Canvas 坐标系统、线条与圆形的绘制方法。 第 8 章 PC 端典型页面的设计与实现 - Photoshop 在 Web 前端的常见操作 :包括基础操作和切片输出方法。 - 页面布局规划与实现 :介绍首页、列表页、内容页的设计与实现过程。 第 9 章 多设备响应式页面的实现 - 响应式页面开发 :了解响应式 Web 设计的概念、viewport 网页可视区域和媒体查询的详解。 - 响应式页面设计与实现 :通过页面分析和详细实施过程,实现多设备响应式页面。 第 10 章 使用 Bootstrap 框架创建页面 - Bootstrap 框架介绍 :包括环境配置、栅格系统、表格、表单、图片和导航栏的使用方法。 - 页面搭建 :介绍使用 Bootstrap 框架搭建简单页面的结构分析和搭建过程。 第 11 章 Web App 类页面的设计与实现 - Web App 开发基础知识 :讲解开发模式和手机屏幕基本知识。 - Swiper 插件使用 :介绍 Swiper 插件的应用。 - 页面实现 :包括首页、列表页、详细内容页的实现过程。 生成思维导图
最新发布
06-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值