假设我们想要为具有给定 contenteditable 属性的元素设置一个占位符:

<div contenteditable></div>

注意contenteditable 用于指定元素内容是否可编辑,它可以应用于任何 HTML 元素,可以像 input<textare> 那样工作编辑它们。

以下两种方法可以为 contenteditable 元素添加占位符。

使用 :empty 选择器

我们使用自定义属性 data-placeholder 来设置占位符:

<div class="editable" contenteditable data-placeholder="Edit me"></div>

当元素值为空时,将显示该属性:

.editable:empty:before {content: attr(data-placeholder);
}

处理事件

首先,我们将 iddata-placeholder 属性添加到元素中,如下所示:

<div id="editMe" data-placeholder="Edit me" contenteditable></div>

当用户聚焦该元素时,如果它与占位符相同,我们将重置其内容。此外,当元素失去焦点时,如果用户不输入任何内容,其内容将被设置回占位符。

const ele = document.getElementById('editMe')// 获取占位符属性
const placeholder = ele.getAttribute('data-placeholder')// 如果占位符为空,则将占位符设置为初始内容
ele.innerHTML === '' && (ele.innerHTML = placeholder)ele.addEventListener('focus', function (e) {const value = e.target.innerHTMLvalue === placeholder && (e.target.innerHTML = '')
})ele.addEventListener('blur', function (e) {const value = e.target.innerHTMLvalue === '' && (e.target.innerHTML = placeholder)
})

查看效果


http://www.taodudu.cc/news/show-3796391.html

相关文章:

  • 有趣的 contentEditable
  • data:text/html html contenteditable,HTML5它contenteditable属性
  • 网页版聊天功能 contentEditable属性,角标问题
  • html div 不可编辑状态,HTML contenteditable属性
  • contenteditable属性将标签变为可编辑状态,可用于在线编辑修改文本
  • HTML contenteditable 属性
  • 可编辑属性html,contenteditable
  • contenteditable换行踩坑心得
  • data:text/html html contenteditable,contentEditable
  • Vue中实现div编辑效果,及contenteditable设置为plaintext-only与true的区别
  • HTML5 - contenteditable 富文本编辑器
  • contentEditable属性
  • 分治法——循环赛日程表
  • c语言 循环赛日程表 n=2^k,循环赛日程表分治算法(c语言)
  • 1325:【例7.4】 循环比赛日程表——分治
  • 分治算法解循环赛日程表问题
  • python实现循环赛日程表问题的算法_循环赛日程表的分治算法实现实验报告_gxl.doc...
  • 1325:【例7.4】 循环比赛日程表
  • 循环赛日程表分治递归求解
  • python实现循环赛日程表问题的算法_循环赛日程表的分治算法实现实验报告gxl.doc...
  • 循环赛事日程表JAVA_java实现循环赛日程表
  • 打印循环赛日程表
  • 循环赛日程表算法分析c语言,循环赛日程表
  • 循环赛日程表------分治算法
  • 循环比赛日程表(分治法)
  • 循环赛日程安排(C语言)
  • 算法之循环赛日程表
  • JAVA代码—算法基础:循环赛日程表
  • 基于C++的循环赛日程表算法设计
  • 算法分析与设计——2.5 循环赛日程表

为 contenteditable 元素添加占位符相关推荐

  1. mvc @html.textboxfor 添加正则表示式,如何在C#/ MVC 4中的Html.TextBoxFor中输入占位符文本...

    通常在 HTML / CSS中,如果要将占位符文本添加到文本框,则只需执行以下操作: < input type ="text"class ="input-class ...

  2. 如何为“选择”框创建占位符?

    我正在使用占位符进行文本输入,效果很好. 但是我也想为我的选择框使用一个占位符. 当然,我可以使用以下代码: <select><option value=""&g ...

  3. 使用CSS更改HTML5输入的占位符颜色

    Chrome支持input[type=text]元素的占位符属性 (其他人也可能这样做). 但是以下CSS对占位符的值没有任何作用: input[placeholder], [placeholder] ...

  4. 实现跨浏览器的HTML5占位符

    译自:http://webdesignerwall.com/tutorials/cross-browser-html5-placeholder-text 译者:蒋宇捷,转载请标明出处(http://b ...

  5. MyBatis——占位符,转义字符,多元素查询(模糊查询),动态sql(多条件中多查询,多条件中单查询)

    占位符:${},#{} ${}:充当占位符时,无法防止sql注入,纯纯的外面给啥,他就往上放啥 #{}:充当-,可以防止sql注入 实体类: package com.itjh.pojo;public ...

  6. 深度学习实战(4)如何向BERT词汇表中添加token,新增特殊占位符

    向BERT词汇表中添加token 问题表述 添加特殊占位符号 add_special_tokens 其他占位符接口 报错与解决方案 问题表述 在实际应用或者学术科研过程中,我们常常需要添加一些特殊的占 ...

  7. css在中元素添加元素,css - 在伪元素内容中添加换行符到:: after或:: before

    css - 在伪元素内容中添加换行符到:: after或:: before 我无法访问页面的HTML或PHP,只能通过CSS进行编辑. 我一直在网站上进行修改并通过content或::before伪元 ...

  8. html表单元素占位符是,HTML各种表单元素模板及写法

    input中有很多属性type="text"表示文本框: name是连接前端后端的桥梁 value属性,包含的默认字符串 size宽度 maxlength接受的最多字符数 plac ...

  9. js空格占位符_灵活使用 console 让 js 调试更简单

    Web开发最常用的高度就是 console.log ,虽然 console.log 占有一席之地,但很多人并没有意识到 console 本身除了基本 log 方法之外还有很多其他方法.适当使用这些方法 ...

最新文章

  1. Win32中GDI+应用(三)---Graphics类
  2. FullCalendar
  3. 阿里巴巴大数据之路——数据模型篇
  4. e.getMessage() e.printStackTrace() 和e.printStackTrace() 小结
  5. 解决ora-280000 the account is locked
  6. mysql级联复制转换成一主两从_一主两从转级联复制
  7. mysql数据库的变量有哪些_[数据库]MySQL变量
  8. [nodejs]国内npm安装nodejs modules失败的几个解决方案
  9. matlab中now函数_now()方法以及JavaScript中的示例
  10. 使用MyEclipse建立working set
  11. sitecore系统教程之体验编辑器
  12. HTML Text Editor
  13. 史上最详细的sqlmap使用教程
  14. shell命令的退出状态码(exit status)
  15. 国药准字、药品本位码
  16. Slowly Change Dimention 常见三种类型
  17. ios和android下数字没有垂直居中,手机端设置小号字体的上下居中问题
  18. Python 实现简单虚拟跑步机计算消耗的能量
  19. app常见的专项测试以及面试题
  20. Windows 清理本地端口占用

热门文章

  1. matlab画多层网络图,复杂网络建模 社交网络图的一些计算代码(不全欢迎补充)MATLAB...
  2. 编译安装gcc-4.8.2(编译出错后修改源码 编译成功)
  3. RIQ编号,冲突处理
  4. barnyard2 mysql_安装配置Snort和barnyard2
  5. Spring Statemachine 简介
  6. 1346 连分数(题目)
  7. 括号匹配编码c语言,括号匹配(c语言实现)
  8. 实例9、stc8a蓝牙模块HC05或者HC06模块,控制小车。利用定时器1产生通信的波特率9600
  9. 用ad2018绘制51单片机最小系统原理图和pcb
  10. FSL5.0使用教程