div模拟textarea

今天本来呢是要搜js中的createTextRange,结果我输入createTextRange,按下回车,百度第二条就是张鑫旭前辈的博文,意外的惊喜从我点击进去的那一刻就发生了,

惊喜在这里:HMTL的块标签可以让其像textarea一样支持blur,focus事件;

怎么做到的呢?就我目前一个小菜鸟的水平,这三个简单方法就可以了:

    第一个方法:contenteditable="true"

      <p contenteditable="true" style="width: 300px ;height: 300px; border:1px solid #f66;"></p>

      contenteditable的属性嘛,知道:true,false,再加plaintext-only就够了

      contenteditable=“”

      contenteditable=“true”

      contenteditable=“false”

      contenteditable=“plaintext-only”

      contenteditable=“events”

      contenteditable=“caret”

      这个方法有个缺陷:假如是通过复制黏贴过来的内容,不会去格式化,这就是个尴尬的事了,如下:

      

     这种方式没有什么兼容问题,我试过的Chrome,IE,Firefox,Opera都支持,那还有什么更好的方式解决这个问题呢?

    第二个方法:其实它的属性值里已经有了,哈哈哈,contenteditable=“plaintext-only”,又被你发现了,

      

      完美解决,但,遗憾的是只有Chrome和Opera支持,我测的Opera版本:

    第三个方法:user-modify

      user-modify:read-only

      user-modify:write-only

      user-modify:read-write

      user-modify:read-write-plaintext-only(去格式化)

      开发中的时候要加上浏览器的前缀:

      -webkit-user-modify: read-write-plaintext-only;(支持去格式化)

      

      -webkit-user-modify: read-write;(不支持去格式化)

      

      同样的,这种方式也只有Chrome和Opera支持;

时间: 2024-10-10 10:16:46

div模拟textarea的相关文章

div模拟textarea以实现高度自适应实例页面

作为多行文本域功能来讲,textarea满足了我们大部分的需求.然而,textarea有一个不足就是不能像普通div标签一样高度可以跟随内容自适应.textarea总是很自信地显摆它的滚动条,高度固执地岿然不动.所以,有时候,为了增加交互体验想让文本域高度自适应的时候,就会遇到麻烦. <!DOCTYPE <!DOCTYPE html> <html> <head> <title>div模拟textarea以实现高度自适应实例页面</title>

div模拟textarea自适应高度

之前在公司做项目的时候,有这么一个需求,要我写一个评论框,可以随着评论的行数增加而自动扩大,最开始我想用textarea实现,但是后来尝试后发现textarea并不适合,textarea的高度不会随着输入行数的增多而增大,于是我上网寻求了下帮助,发现大神张鑫旭的这篇文章<div模拟textarea文本域轻松实现高度自适应>,成功解决我的问题 代码如下: 1 1 <!DOCTYPE html> 2 2 <html lang="en"> 3 3 <

用一个div模拟textarea的实现

<textarea> 标签定义一个多行的文本输入控件.但是它不能像div一样随着内容增加而自动增加,一言不合就出现滚动条,有是有为了更好的交互,可能需要使用div来模拟textarea的实现,直奔主题吧. 1.内容可编辑 contenteditable 对就是contenteditable,给div添加contenteditable=true即可: 2.demo //css div{ width: 400px; min-height: 100px; max-height: 300px; _he

div模拟textarea文本域轻松实现高度自适应

<style> .textarea{ width:400px; min-height:20px; max-height:300px; _height:120px; margin: 0 auto; padding:3px; outline:0; border:1px solid #a0b3d6; font-size:12px; line-height:24px; word-wrap:break-word; overflow-x:hidden; overflow-y:auto; } </st

vue中div模拟文本编辑器并且实现v-model功能

说明一下实现div模拟文本编辑器实现v-model数据的双向绑定而不用input的原因 因为div使用v-html绑定的数据中是可以嵌套标签的列入使用v-html进行数据的绑定自定义的标签并不会被过滤掉. v-model 是 Vue 框架提供的众多指令中的一个,其主要作用是可以实现在表单 <input>.<textarea> 及 <select> 标签元素上创建双向数据绑定.但是当我们但是当我们使用div添加contenteditable="true"

DIV模拟的下拉框特效

CSS: <style type="text/css"> body, ul, li { margin: 0; padding: 0; font-size: 13px; } ul, li { list-style: none; } #divselect { width: 186px; margin: 80px auto; position: relative; z-index: 10000; } #divselect cite { width: 150px; height:

jquery双向列表选择器DIV模拟版

前段时间项目需要用到双向列表选择,想直接用select,结果发现某些样式不支持,只好用div模拟了以下,功能基本实现能用了,需要其他功能自己加上,譬如列表里展示多列数据等. <!doctype html> <html> <head> <meta charset="utf-8"> <title>双向列表选择器DIV模拟</title> <script type="text/javascript&quo

DIV模拟的自定义滚动条

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>div模拟的自定义滚动条</title><style type="text/css">* { margin: 0; padding: 0;} p { heigh

div模拟select下拉菜单效果

有些时候select下拉菜单直接用css调整样式,可能会有兼容性的问题,尤其是右侧的下拉三角,很难用css控制,那怎么办呢?可以采用div模拟select下拉菜单的效果.先直接上代码了: HTML的结构如下: <!doctype html> <html> <head> <meta charset="utf-8" /> <title>div模拟下拉菜单特效</title> <style type="t