如何将光标位置放在 contenteditable 元素的居中对齐占位符的开头?

Posted

技术标签:

【中文标题】如何将光标位置放在 contenteditable 元素的居中对齐占位符的开头?【英文标题】:How to place cursor position at the start of center aligned placeholder of contenteditable element? 【发布时间】:2014-12-14 20:42:28 【问题描述】:

我有以下代码:

HTML:

<div class="title" contenteditable="true" placeholder="Title"></div>

CSS:

.title 
   width: 500px;
   margin: 0 auto;
   text-align: center;


[contenteditable=true]:empty:before
   content: attr(placeholder);


它会产生一个带有占位符的居中对齐的可编辑 div。我的问题是,当元素第一次聚焦时,光标位于 div 的开头,而不是占位符的位置:!http://screencast.com/t/66HWb3wKiV

我希望占位符在实际输入字符之前一直可见,并且光标位于占位符的开头。我怎么能做到这一点?

谢谢!

【问题讨论】:

复制***.com/questions/25304708/… @Burn 不幸的是,该代码不适用于占位符。我遇到的问题是,直到键入一个键(或一些文本已经存在),光标才居中。我的问题是让它在此之前居中,当它第一次聚焦时,显示一个占位符。 很久了,但我在这里发布了一个类似问题的答案:***.com/questions/29288975/… — 你可能会觉得它很有帮助。 【参考方案1】:

我有解决此问题的方法。

改变你的CSS:

.title 
   width: 500px;
   margin: 0 25%;

【讨论】:

以上是关于如何将光标位置放在 contenteditable 元素的居中对齐占位符的开头?的主要内容,如果未能解决你的问题,请参考以下文章

重要重要如何在div是contentEditable=true的里面获取光标的位置,并在光标位置处插入内容。焦点位置插入指定内容

我可以在 ContentEditable 中找到光标的像素位置吗?

ContentEditable div - 更新内部 html 后设置光标位置

如何修复光标在 Android Chrome 上的内联 contenteditable 中跳转?

获取contenteditable区域光标所在位置信息

contenteditable=“true“ ---->window.getSelection() 获取光标位置 & 光标位置插入内容