通常文本区域是矩形或正方形,就像这样:
但我想要一个自定义形状的文本区域,就像这样,例如:
这怎么可能呢?
通常文本区域是矩形或正方形,就像这样:
但我想要一个自定义形状的文本区域,就像这样,例如:
这怎么可能呢?
当前回答
如果出于某种原因,您确实需要支持不具有contentteditable的浏览器,那么您可能可以在JavaScript中通过使用事件来完成同样的事情,尽管这是一种非常混乱的解决方法。
伪代码:
focused=false;
when user clicks the div
{
focused=true;
}
when user clicks outside the div
{
focused=false;
}
when user presses a key
{
if (focused)
{
add character of key to div.innerHTML;
}
}
其他回答
你可以使用一个contentteditable div,带有两个角div:
<div style="border:1px blue solid ; width: 200px; height: 200px;" contenteditable="true">
<div style="float:left; width:50px; height: 50px; border: 1px solid blue" contenteditable="false"></div>
<div style="float:right; width:50px; height: 50px; border: 1px solid blue" contenteditable="false"></div>
hello world, hello worldsdf asdf asdf sdf asdf asdf
</div>
您可以使用谷歌网页设计工具使用HTML5-canvas和CSS创建复杂的形状。
更多的是,你会得到其他工具,如键入工具,在这些形状中输入文本。
由于输出文件包含大量代码,提供了一个使用谷歌Web Designer工具创建的示例演示
小提琴演示> >
如果你把CSS形状和contentteditable结合起来,这可以在webkit浏览器中完成。
首先你必须启用标志:enable-experimental-web-platform-features
然后重新启动您的webkit浏览器,然后检查这小提琴!
这种方法也适用于非标准形状。
标记
<div class="shape" contenteditable="true">
<p>
Text here
</p>
</div>
CSS
.shape{
-webkit-shape-inside: polygon(71.67px 204.00px,75.33px 316.47px,323.67px 315.47px,321.17px 196.00px,245.96px 197.88px,244.75px 87.76px,132.33px 87.53px,132.50px 202.26px);
shape-inside: polygon(71.67px 204.00px,75.33px 316.47px,323.67px 315.47px,321.17px 196.00px,245.96px 197.88px,244.75px 87.76px,132.33px 87.53px,132.50px 202.26px);
width: 400px;
height: 400px;
text-align: justify;
margin: 0 auto;
}
那么我到底是怎么得到这个多边形的呢?
去这个网站,让你自己的自定义形状!
关于启用标志的注意事项: (从这儿)
要启用形状、区域和混合模式: 复制粘贴 //flags/#enable-experimental-web-platform-features 地址栏,然后按enter。点击其中的“Enable”链接 部分。 点击浏览器底部的“重新启动”按钮 窗口。
这是不可能的,陛下!文本区域通常是一个矩形或方形框,您可以在其中输入。
然而,要做出这样的东西,你可以使用2个文本区域,然后给他们一个指定的宽度和高度。否则我不认为它会发生!
第二种方法是创建一个可编辑元素。
http://jsfiddle.net/afzaal_ahmad_zeeshan/at2ke/
代码是:
<div contenteditable="true">
This text can be edited by the user.
</div>
使用这个,你可以使任何元素可编辑!你可以给它一个维度,它会起作用的!你会得到它只是一个文本区域。
参考:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_Editable
如果出于某种原因,您确实需要支持不具有contentteditable的浏览器,那么您可能可以在JavaScript中通过使用事件来完成同样的事情,尽管这是一种非常混乱的解决方法。
伪代码:
focused=false;
when user clicks the div
{
focused=true;
}
when user clicks outside the div
{
focused=false;
}
when user presses a key
{
if (focused)
{
add character of key to div.innerHTML;
}
}