CSS使用dl dt dd模拟表格
393 views
0
DIV + CSS 再牛也无法完全取代table,很多时候还是需要用到表格,这里就不探讨孰优孰劣,贴出dl dt dd模拟表格实例。
项目功能: dl dt dd 模拟table; 支持拖动; 支持序号生成; select控件选择操作等
兼容浏览器:IE6\IE7\IE8\IE9\IE11\FF3.0\Chrome
效果图:
源代码:
<!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> <title>table sorted</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script> <style type="text/css"> dl,dt,dd{ margin:0; font-size:14px; } dl{ margin:0 auto; width:600px; border:1px solid #f8b3d0; border-bottom:none; } dt{ font-weight:800; background:#ff99cc; color:#fff; } dt, dd{ line-height:30px; padding:0; border-bottom:1px solid #f8b3d0; height:30px; overflow:hidden } .fff{ background:#fff5fa } dt label, dd label{ display:block; float:left; font-size:14px; border-right:1px solid #f8b3d0; width:80px; text-align: center; } dt span, dd span{ display:block; float:left; font-size:14px; width:80px; text-indent:1em; text-align:center; } </style> </head> <body> <center> <dl class="link_cont"> <dt> <label>ID</label> <label>日期</label> <span>网址</span> </dt> <dd class="fff"> <label name="label_sortedindex">1</label> <label>11.2</label> <span>https://blog.mimvp.com</span> </dd> <dd> <label name="label_sortedindex">2</label> <label>11.3</label> <span>http://forum.ithomer.net</span> </dd> <dd class="fff"> <label name="label_sortedindex">3</label> <label>11.4</label> <span>http://www.ithomer.net</span> </dd> <dd> <label name="label_sortedindex">4</label> <label>11.3</label> <span>http://ithomer.net</span> </dd> </dl> <div style="margin-top: 18px;"> <select id="id_pagesize" style="width: 60px;" onchange="pagesize_onchange();"> <option value="10">10</option> <option value="15" selected="true">15</option> <option value="20">20</option> <option value="999">全部</option> </select> </div> </center> </body> <script type="text/javascript"> $.fn.kpdragsort = function(options) { var container = this; $(container).children().off("mousedown").mousedown(function(e) { if(e.which != 1 || $(e.target).is("input, textarea") || window.kp_only) return; // 排除非左击和表单元素 e.preventDefault(); // 阻止选中文本 var x = e.pageX; var y = e.pageY; var _this = $(this); // 点击选中块 var w = _this.width(); var h = _this.height(); var w2 = w/2; var h2 = h/2; var p = _this.offset(); var left = p.left; var top = p.top; window.kp_only = true; // 添加虚线框 _this.before('<div id="kp_widget_holder"></div>'); var wid = $("#kp_widget_holder"); wid.css({"border":"2px dashed #ccc", "height":_this.outerHeight(true)-4}); // 保持原来的宽高 _this.css({"width":w, "height":h, "position":"absolute", opacity: 0.8, "z-index": 999, "left":left, "top":top}); // 绑定mousemove事件 $(document).mousemove(function(e) { e.preventDefault(); // 移动选中块 var l = left + e.pageX - x; var t = top + e.pageY - y; _this.css({"left":l, "top":t}); // 选中块的中心坐标 var ml = l+w2; var mt = t+h2; // 遍历所有块的坐标 $(container).children().not(_this).not(wid).each(function(i) { var obj = $(this); var p = obj.offset(); var a1 = p.left; var a2 = p.left + obj.width(); var a3 = p.top; var a4 = p.top + obj.height(); // 移动虚线框 if(a1 < ml && ml < a2 && a3 < mt && mt < a4) { if(!obj.next("#kp_widget_holder").length) { wid.insertAfter(this); }else{ wid.insertBefore(this); } return; } }); }); // 绑定mouseup事件 $(document).mouseup(function() { $(document).off('mouseup').off('mousemove'); // 检查容器为空的情况 $(container).each(function() { var obj = $(this).children(); var len = obj.length; if(len == 1 && obj.is(_this)) { $("<div></div>").appendTo(this).attr("class", "kp_widget_block").css({"height":100}); }else if(len == 2 && obj.is(".kp_widget_block")){ $(this).children(".kp_widget_block").remove(); } }); // 拖拽回位,并删除虚线框 var p = wid.offset(); _this.animate({"left":p.left, "top":p.top}, 100, function() { _this.removeAttr("style"); wid.replaceWith(_this); window.kp_only = null; }); }); }); } $(".link_cont").kpdragsort(); function pagesize_onchange(){ id_pagesize = document.getElementById("id_pagesize"); curr_value = id_pagesize.options[id_pagesize.options.selectedIndex].value; // 获取选中值 for(var i=0; i<id_pagesize.options.length; i++) { value = id_pagesize.options[i].value; if(value == curr_value){ id_pagesize.options[i].selected = true; // 设置选中生效 alert("selected value =" + curr_value + "; index = " + i); break; } } } // 添加序号ID $(document).ready(function(){ // 添加序号ID items = document.getElementsByName("label_sortedindex"); for(var i=0; i<items.length; i++){ if(i < 9){ items[i].innerText = "0" + (i + 1) } else { items[i].innerText = i } } }); </script> </html>
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2014-05-06 22:48:17
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: CSS使用dl dt dd模拟表格 (米扑博客)