Home  >  Q&A  >  body text

javascript - 关于用div实现的placeholder的不足?

现在很多网站比如知乎的评论功能都是用p而不是textarea。

但如果我按照下面这样做的话,会存在鼠标不会像真正的placeholder那样和文字对齐的情况。请问知乎是怎么实现的,怎样避免出现我这种情况?

Stackoverflow上面一个类似的问题,line-height:normal也解决不了问题

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <style>
    p {
        width:600px;
        border: 1px solid red;
        // line-height: normal;
        line-height: 200%;
        padding-left: 5px;
    }
        
    p:empty:before {
        content: attr(placeholder);
        display: block;
        color: #999;
    }
  </style>
</head>
<body>
  <p contenteditable="true" placeholder="输入用户名"></p>
</body>
</html>
阿神阿神2727 days ago640

reply all(1)I'll reply

  • PHPz

    PHPz2017-04-11 09:42:07

    看了下stackoverflow的答案,line-height: normal;确实可以解决此问题。去掉line-height:200%。
    如果你想挤开边距,使用padding或者规定一个较大的高度

    -------update.11.28
    看了下fb的dom结构,fb的输入框的高度并没有设置,而是给父级元素min-height,子元素自适应高度。

    reply
    0
  • Cancelreply