CSS【实战】可编辑元素实现 placeholder -- contenteditable=“true“

效果


技术要点

HTML 中,placeholder 属性原生支持 <input><textarea> 等表单元素,但对于可编辑元素(如 contenteditable="true" 的普通元素),需要通过CSS 实现类似 placeholder 的效果。

  • 利用 CSS 伪类 :empty 检测元素是否为空
  • 使用 ::before 伪元素显示占位文本
  • 结合 :focus 伪类在元素获得焦点时隐藏占位文本

代码

html 复制代码
<script setup lang="ts"></script>

<template>
  <div
    class="editable box"
    contenteditable="true"
    data-placeholder="请输入内容..."
  ></div>
</template>
<style scoped>
.box {
  min-height: 80px;
  padding: 12px;
  border: 1px solid #ddd;
  border-radius: 6px;
  outline: none;
  transition: border-color 0.2s;
}

.box:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}
/* 占位文本样式 */
.editable:empty::before {
  content: attr(data-placeholder);
  color: #9ca3af;
  pointer-events: none; /* 点击时不触发伪元素 */
}

/* 聚焦时隐藏占位文本 */
.editable:focus:empty::before {
  content: "";
}
</style>
相关推荐
我穿棉裤了34 分钟前
使用css 给div添加四角线框
前端·css
musenh11 小时前
css样式学习
css·学习·css3
木易 士心11 小时前
CSS 中 `data-status` 的使用详解
前端·css
牧马少女12 小时前
css 画一个圆角渐变色边框
前端·css
universe_0118 小时前
前端学习css
前端·css·学习
程序猿_极客20 小时前
【期末网页设计作业】HTML+CSS+JavaScript 猫咪主题网站开发(附源码与效果演示)
前端·css·html·课程设计·网页设计作业
JackieDYH20 小时前
CSS实现跑马灯效果-案例
前端·css·css3
座山雕~21 小时前
html 和css基础常用的标签和样式(2)-css
前端·css·html
叉歪1 天前
实现在 UnoCSS 中使用任意深度颜色的预设
前端·css
charlie1145141911 天前
CSS学习笔记3:颜色、字体与文本属性基础
css·笔记·学习·教程·基础