步骤
- 给 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;
}
::before 创建一个伪元素,其将成为匹配选中的元素的第一个子元素。常通过 content 属性来为一个元素添加修饰性的内容。此元素默认为行内元素。
:empty选择器选择每个没有任何子级的元素(包括文本节点)。
input和textarea
input
<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 name="textarea" rows="10" cols="50">
Write something here
</textarea>
区别
<textarea>标签是成对的,有结束标签进行闭合,标签的内容写在标签对中间;<input>是单个标签,标签的内容通过 value 属性设置;
<textarea>的值是纯文本;<input>的值根据类型不同而不同;
<textarea>没有type属性;<input>有多种type来满足表单与用户的数据交互;
<textarea>的值可以是多行的,并且有rows和cols来控制多行结构;<input>的值是单行的;