表格在未编辑状态和编辑状态,需要定义两个不同的样式。

比如未编辑状态是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模拟实现可编辑的表格的更多相关文章

  1. html+css+js 模拟win7桌面

    不贴代码了,直接上传附件. 附件下载: win7desktop

  2. Vue+Mock.js模拟登录和表格的增删改查

    有三类人不适合此篇文章: "喜欢站在道德制高点的圣母婊" -- 适合去教堂 "无理取闹的键盘侠" -- 国际新闻版块欢迎你去 "有一定基础但又喜欢逼逼 ...

  3. css配合js模拟的select下拉框

    css配合js模拟的select下拉框 <!doctype html> <html> <head> <meta charset="utf-8&quo ...

  4. 模拟jQuery中的ready方法及实现按需加载css,js实例代码

    这篇文章介绍了模拟jQuery中的ready方法及实现按需加载css,js实例代码,有需要的朋友可以参考一下     一.ready函数的实现经常用jQuery类库或其他类库中的ready方法,有时候 ...

  5. webstorm的live templates快速编辑功能,让你的css JS代码书写速度飞起来

    前言: Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码, 大大提高了HTML/CSS代码编写的速度,比如下面 ...

  6. Gremlins.js – 模拟用户随机操作的 JS 测试库

    Gremlins.js 是基于 JavaScript 编写的 Monkey 测试库,支持 Node.js 平台和浏览器中使用.Gremlins.js 随机模拟用户操作:单击窗口中的任意位置,在表格中输 ...

  7. JQuery经典小例子——可编辑的表格

    可编辑的表格: 屏幕剪辑的捕获时间: 2015/8/14 9:16 HTML代码为: <!DOCTYPE html> <htmlxmlns="http://www.w3.o ...

  8. 可编辑的表格:jQuery+PHP实现实时编辑表格字段内容

    在本例中,我们会通过jQuery实现单击将一个文本信息变为可编辑的表单,你可以对文本内容进行编辑,然后点击“确定”按钮,新的内容将发送到后台PHP程序处理,并保存到数据库:当点击“取消”按钮,则页面恢 ...

  9. JQuery实战--可以编辑的表格

    廊坊下雪了,15年的第二场雪,比14的来的稍晚一些,停靠在11教门前的自行车,成了廊坊师范学院最美丽的风景线.还记得以前学习css的时候,就曾经接触过如何编写设计一些表格和表单的样式,例如如何设计表格 ...

随机推荐

  1. [转]Intellij idea创建javaWeb以及Servlet简单实现

    准备:1. 安装jdk1.72. 安装tomcat1.8 一.创建并设置javaweb工程 1.创建javaweb工程File --> New --> Project... 设置工程名字: ...

  2. Batch to setup JAVA programming environment for Algorithm class from priston

    Original web site: http://algs4.cs.princeton.edu/linux/ Part. I [username:~/] [username:~/] mkdir al ...

  3. unity, Collider2D.bounds的一个坑

    Note that this will be an empty bounding box if the collider is disabled or the game object is inact ...

  4. 在c/c++中浮点数是否为0的判断

    在c/c++中,因为浮点数在内存中的表示是不精确的,会有很微小的误差,所以判断是否为0,就看它的绝对值是不是<=eps. eps可以看成是epsilon的缩写,可以用来表示一个无穷小的量,通常取 ...

  5. ubuntu 编译android 源码笔记

    已经验证,可以编译成功.过程中会碰到一些编译错误,安装好依赖环境,可以解决. 1.splite压缩包的合并,解压缩,md5验证 http://pan.baidu.com/s/1bnG1NtX kitk ...

  6. 菜鸟学SSH(七)——Spring jar包详解

    Struts.Hibernate.Spring这类的框架给我们开发带来非常大的好处,让我们更加快速.有效的开发.所以我们在开发中通常都会用到各种框架,每个框架都有很多jar包,每个jar都有各自不同的 ...

  7. FFmpeg(2)-avformat_open_input()函数详解并示例打开mp4文件

    一. 解封装 pts 是显示的时间 dts是解码的时间, 这个时间是用来做同步. av_register_all(), 注册所有的格式.包括解封装格式和加封装格式. avformat_network_ ...

  8. DataTable的初始化与事件注册

    TypeScript代码: let tabledata = data as any[]; if (this.dataTable) { this.dataTable.clear(); this.data ...

  9. angular学习笔记(三十)-指令(3)-templateUrl

    这篇主要介绍指令中的templateUrl属性: templateUrl属性值是一个url路径,路径指向一个html模板,html模板会填充(或替换)指令内容: 比如上一篇文章里的案例,我们把原来的t ...

  10. Fabric V1 交易的生命周期

    Fabric v1 Transaction Lifecycle1 Client application creates tran proposeal (chinacode function and a ...