Css+JS模拟实现可编辑的表格
表格在未编辑状态和编辑状态,需要定义两个不同的样式。
比如未编辑状态是lable的样式,两边有两个括号[],表示该表格可以编辑;编辑中的表格则表示成一个input框,可以输入。
基本思路就是,在表格中直接放可输入的input标签,在未编辑的时候,利用css样式,把input标签模拟成不可编辑的lable样式。
实现代码。
CSS
.edit-marker {
position: relative;
} .edit-marker:before {
position: absolute;
content: '[';
top: 0px;
left: 2px;
} .edit-marker:after {
position: absolute;
content: ']';
top: 0px;
right: 2px;
} .edit-marker input,
.edit-marker select {
border-color: transparent;
box-shadow: none;
} .edit-marker select.input-time {
-moz-appearance: none;
-webkit-appearance: none;
padding-left: 18px;
} .edit-marker select.input-time::-ms-expand {
display: none;
}
JS
<script>
$(function(){
// 移除样式用的JS
$(".edit-marker input, .edit-marker select").on("focus",function(){
$(this).closest(".edit-marker").attr("marker-container", true).removeClass("edit-marker");
}).on("blur",function(){
$(this).closest("[marker-container]").addClass("edit-marker").removeAttr("marker-container");
}); });
</script>
HTML
<table id="table" class="table table-bordered table-condensed">
<thead>
<tr>
<th>ID</th>
<th><span>Name</span></th>
</tr>
</thead>
<tbody> <tr>
<td>input(td)</td>
<td class="edit-marker">
<input type="text" class="form-control" value="wang" />
</td>
</tr>
<tr>
<td>select(td)</td>
<td class="edit-marker">
<select class="form-control input-sm input-time ">
<option value="1">00:00</option>
<option value="2">00:10</option>
</select>
</td>
</tr>
<tr>
<td>select2(td)</td>
<td class="edit-marker">
<select class="form-control input-sm kyumucombo">
<option value=""></option>
<option value="0901">Item1</option>
<option value="0902">Item2</option>
<option value="0903">Item3</option>
</select>
</td>
</tr>
</tbody>
</table>
※上面用到了bootstrap。使用上,只需在外围的容器(td,div都可以)上加上edit-marker类就行。
实现的效果如下
未编辑状态:
编辑状态:
3.1 普通输入框
3.2 下拉框(初期表示:没有下拉箭头,看起来完全和lable一样)
3.3 下拉框
Css+JS模拟实现可编辑的表格的更多相关文章
- html+css+js 模拟win7桌面
不贴代码了,直接上传附件. 附件下载: win7desktop
- Vue+Mock.js模拟登录和表格的增删改查
有三类人不适合此篇文章: "喜欢站在道德制高点的圣母婊" -- 适合去教堂 "无理取闹的键盘侠" -- 国际新闻版块欢迎你去 "有一定基础但又喜欢逼逼 ...
- css配合js模拟的select下拉框
css配合js模拟的select下拉框 <!doctype html> <html> <head> <meta charset="utf-8&quo ...
- 模拟jQuery中的ready方法及实现按需加载css,js实例代码
这篇文章介绍了模拟jQuery中的ready方法及实现按需加载css,js实例代码,有需要的朋友可以参考一下 一.ready函数的实现经常用jQuery类库或其他类库中的ready方法,有时候 ...
- webstorm的live templates快速编辑功能,让你的css JS代码书写速度飞起来
前言: Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码, 大大提高了HTML/CSS代码编写的速度,比如下面 ...
- Gremlins.js – 模拟用户随机操作的 JS 测试库
Gremlins.js 是基于 JavaScript 编写的 Monkey 测试库,支持 Node.js 平台和浏览器中使用.Gremlins.js 随机模拟用户操作:单击窗口中的任意位置,在表格中输 ...
- JQuery经典小例子——可编辑的表格
可编辑的表格: 屏幕剪辑的捕获时间: 2015/8/14 9:16 HTML代码为: <!DOCTYPE html> <htmlxmlns="http://www.w3.o ...
- 可编辑的表格:jQuery+PHP实现实时编辑表格字段内容
在本例中,我们会通过jQuery实现单击将一个文本信息变为可编辑的表单,你可以对文本内容进行编辑,然后点击“确定”按钮,新的内容将发送到后台PHP程序处理,并保存到数据库:当点击“取消”按钮,则页面恢 ...
- JQuery实战--可以编辑的表格
廊坊下雪了,15年的第二场雪,比14的来的稍晚一些,停靠在11教门前的自行车,成了廊坊师范学院最美丽的风景线.还记得以前学习css的时候,就曾经接触过如何编写设计一些表格和表单的样式,例如如何设计表格 ...
随机推荐
- 【转载】mysql 热备份
原文: http://www.jb51.net/article/70967.htm 热备和冷备是两个相对的概念,冷备是把数据库服务,比如MySQL,Oracle停下来,然后使用拷贝.打包或者压缩命令对 ...
- ConEmu配置task的脚本
1.Bash::Msys2-64 set CHERE_INVOKING= & set .exe -new_console:p %ConEmuDrive%\msys64\usr\bin\bash ...
- vivado保存debug波形
vivado保存debug波形 Vivado下debug后的波形通过图形化界面并不能保存抓取到波形,保存按钮只是保存波形配置,如果需要保存波形需要通过TCL命令来实现: write_hw_ila_ ...
- Linux下用netstat查看网络状态、端口状态
在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的 netstat命 ...
- 每日英语:Six Ways to Modernize Your Car
AS AUTO MAKERS ADD far-out features to the latest cars at warp speed--everything from futuristic hea ...
- flash 拾遗
http://sourceforge.net/adobe/wiki/Projects/ http://www.adobe.com/devnet/air/air-sdk-download.html ht ...
- 李洪强iOS开发之静态库的打包一
李洪强iOS开发之静态库的打包一 //静态库一般做一下几种事情 //1 工具类 算法逻辑 新建工具类LHQTools 定义类方法 + (NSInteger)sumWithNum1: (NSIntege ...
- MFC让进程利用所有处理器核心
参考资料: http://blog.csdn.net/baodi_z/article/details/1857820 http://blog.csdn.net/cbnotes/article/deta ...
- Nginx作为负载均衡器upstream
Nginx中与proxy模块结合使用的模块中,最常用的当属upstream模块.upstream模块可定义一个新的上下文,它包含了一组upstream服务器,这些服务器可能被赋予了不同的权重.不同的类 ...
- idea 换主题
换背景 . 选中行变色