日期:2013-05-22 浏览次数:21139 次
文章简介:巧用:empty处理webkit核心浏览器text-indent的bug. |
昨天在项目中遇到要在一个输入框中使用缩进的情况,要用text-indent首行缩进2个文字。然后发如今webkit下,在输入框内容为空的时候,光标位置没有缩进,还是外行首,输入任意字符后,缩进才被激活。
HTML代码如下:
1 |
<input
type="text"
style="text-indent:2em"
/>
|
查看demo
这里无论是input元素还是textarea,或是其它设置了contentEditable=”true”的元素,都能必现这个bug。
IE各版本,Firefox均正常,只要chrome和safari等webkit内核的浏览器才有这个问题。
这里百思不得其解,也尝试了很多方法,均无效。
后来和小李刀刀、poor聊到这个问题,突然想到:empty伪类,立刻测试,果然可以处理——虽然只是曲线模仿处理…
1 |
input[type="text"]:empty{padding-left:2em;} |
然后在chromium社区提交了个bug单,不知道会不会被无视。
PS:Opera在这里也有些小问题,input元素缩进表现正常,textarea元素不支持缩进,contentEditable=”true”元素和webkit表现一样。
http://www.qianduan.net/fixed-text-indent-in-webkit-editable-element-bug.html