有什么办法可以在HTML元素周围包含textarea HTML元素吗?在我的情况下,我想将textarea包裹在标签周围。
这是我努力实现的目标:
Label name: *********
*********************
*********************
*是文本区域。
答案 0 :(得分:5)
您无法在<textarea>
内使用 HTML 标签,但您可以使用绝对定位将标签放置在所需位置。
然后,您可以使用 CSS text-indent
属性(more info on MDN)来偏移textarea的第一行,这样标签就不会重叠它。
div {
position: relative;
}
label {
position: absolute;
top: 0;
left: 0;
border: 1px solid #000;
width: 115px;
line-height: 1em;
}
textarea {
text-indent: 120px;
margin: 0;
line-height: 1.2em;
}
&#13;
<div>
<label>This is the label :</label>
<textarea cols="30" rows="10"></textarea>
</div>
&#13;
答案 1 :(得分:2)
您可以尝试将标签放在div元素中,使div可编辑并使标签不可编辑...
这样的事情:
<div onClick="this.contentEditable='true';">
<label onClick="this.contentEditable='false';">text 1</label>
text 2
</div>
之后,您只需要使用css
排列标签和div,并使用div中的信息(标签除外)作为文本框内的文本。
这是一个jsfiddle,可以看看它是如何运作的。
答案 2 :(得分:2)
我不确定text-indent
属性在textarea元素上的效果如何。如果它运作良好,你可以这样做:
text-indent
属性缩进textarea中的第一行文本<div class="position-helper">
<label>Label name:</label>
<textarea></textarea>
</div>
.position-helper {
position: relative;
}
.position-helper label {
position: absolute;
left: 1px;
top: 1px;
background-color: #F0F0F0;
/* font-size normalized so that em values match */
font-size: 16px;
width: 10em;
}
textarea {
box-sizing: border-box;
margin: 0;
width: 100%;
/* font-size normalized so that em values match */
font-size: 16px;
text-indent: 10em;
}
答案 3 :(得分:1)
使用text-indent
属性。根据您的要求修改text-indent
值。
<强> HTML:强>
<div>
<label><b>Label name:</b></label>
<textarea name="textarea1" id="" cols="30" rows="10" placeholder="PlaceHolder Text For the Text Area"></textarea>
</div>
<强> CSS:强>
div
{
position:relative;
}
label {
position:absolute;
top:0;
left:0;
border:0;
}
textarea {
text-indent:90px;
margin:0;
border:1px solid blue;
}
<强>输出强>