How do I auto-hide placeholder text upon focus using css or jquery?

后端 未结 26 1753
长情又很酷
长情又很酷 2020-11-28 00:39

This is done automatically for every browser except Chrome.

I\'m guessing I have to specifically target Chrome.

Any solutio

26条回答
  •  遥遥无期
    2020-11-28 01:13

    Pure CSS Solution (no JS required)

    Building on @Hexodus and @Casey Chu's answers, here is an updated and cross-browser solution that leverages CSS opacity and transitions to fade the placeholder text out. It works for any element that can use placeholders, including textarea and input tags.

    ::-webkit-input-placeholder { opacity: 1; -webkit-transition: opacity .5s; transition: opacity .5s; }  /* Chrome <=56, Safari < 10 */
    :-moz-placeholder { opacity: 1; -moz-transition: opacity .5s; transition: opacity .5s; } /* FF 4-18 */
    ::-moz-placeholder { opacity: 1; -moz-transition: opacity .5s; transition: opacity .5s; } /* FF 19-51 */
    :-ms-input-placeholder { opacity: 1; -ms-transition: opacity .5s; transition: opacity .5s; } /* IE 10+ */
    ::placeholder { opacity: 1; transition: opacity .5s; } /* Modern Browsers */
        
    *:focus::-webkit-input-placeholder { opacity: 0; } /* Chrome <=56, Safari < 10 */
    *:focus:-moz-placeholder { opacity: 0; } /* FF 4-18 */
    *:focus::-moz-placeholder { opacity: 0; } /* FF 19-50 */
    *:focus:-ms-input-placeholder { opacity: 0; } /* IE 10+ */
    *:focus::placeholder { opacity: 0; } /* Modern Browsers */

    Revisions

    • Edit 1 (2017): Updated to support modern browsers.
    • Edit 2 (2020): Added the runnable Stack Snippet.

提交回复
热议问题