input与textarea的区别,并用div模拟textarea

一、input 和 textarea 的区别

input:

HTML <input> 元素用于为基于Web的表单创建交互式控件,以便接受来自用户的数据。

<input type="range" name="range" value="2" min="0" max="100" step="10">
<input type="file" name="file" accept="image/*">
<input type="month" name="month" value="2017-11">

textarea:

<textarea> 元素代表一个多行的纯文本编辑控件.
<textarea name="textarea" rows="10" cols="50">
    Write something here
</textarea>

区别:

1、<textarea>标签是成对的,有结束标签进行闭合,标签的内容写在标签对中间;<input>是单个标签,标签的内容通过 value 属性设置;
2、<textarea>的值是纯文本;<input>的值根据类型不同而不同;
3、<textarea>没有type属性;<input>有多种type来满足表单与用户的数据交互;
4、<textarea>的值可以是多行的,并且有rows和cols来控制多行结构;<input>的值是单行的;

二、用 div 模拟 textarea 标签

步骤:
给 div 添加一个HTML全局属性:contenteditable="true",使 div 元素变成用户可编辑的;

给 div 添加样式 resize: vertical;,使 div 可以被用户调整尺寸,注意:别忘了设置 overflow: auto; 样式,因为resize样式不适用于overflow: visible;的块,不然 resize 不起效哦;

增加一个属性:placeholder="I am placeholder";

通过 CSS 选择器获取并显示 placeholder 的值;
直接上代码:

<div class="textarea" contenteditable="true" placeholder="This is placeholder"></div>
.textarea {
  height: 200px;
  width: 300px;
  padding: 4px;
  border: 1px solid #888;
  resize: vertical;
  overflow: auto;
}

.textarea:empty:before {
  content: attr(placeholder);
  color: #bbb;
}

原文:https://segmentfault.com/a/1190000011837105

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,969评论 1 45
  • day01­_起源和结构 结构:Xhtml xml 表现:CSS 行为:DOM ECMAScript 以上都属于W...
    Sakura_明妃阅读 4,976评论 0 1
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 9,590评论 0 0
  • 高度自适应的 textarea 背景介绍 正如我们所知道的 textarea 是一个行内块元素 display: ...
    岑早早咯阅读 12,462评论 1 3