H5系列之contenteditable

其实这个属性很简单,既然把它放到一个单独的文章来说,他肯定有一些注意点要讲

兼容性很好,兼容所有主流浏览器。

用法很简单,只需要给你需要的标签填上即可。

<div contenteditable="true">我是一个div</div>

 

那么会出现一个神奇的效果。(文字可以编辑)

 

语法也很简单。

contenteditable="true" (可以编辑)

contenteditable="false" (不可以编辑)

 

如果是嵌套关系的呢?

<div contenteditable="true">
     我是一个div1
    <div>我是div2,没有contenteditable属性</div>
</div>

 

你会发现,即使是嵌套关系,里面的标签也没有contenteditable 属性,也是可以编辑的,这又是为啥呢? 其实这个属性有继承关系,只要父级有,那么子级也会继承下来,所以说,子级也是可以编辑的啦。

如果子级不想编辑,给子级添加上contenteditable=“false” 即可

 

 

最后说一下,下面这种特殊情况,按理来说,span 的 姓名 和 年龄都是不可以编辑的对吧。

<div contenteditable="true">
    <span contenteditable="false">姓名:</span>小明<br>
    <span contenteditable="false">年龄:</span>20岁
</div>

看下下面的操作。

 

然后只要从 上面一行开始编辑,就会发现,即使是 contenteditable=“false” 的两个 span里面的文字,都被删除了。这又是为啥呢,这是因为,被标记了 false的标签,那么他的内部文字是不能被编辑的,但是 外部的编辑,是可以把你整个标签给删除掉的。 所以得避开这种布局。

 

posted @ 2019-08-12 23:59  杨耿  阅读(2227)  评论(0编辑  收藏  举报