css – HTML5图像图标输入占位符

前端之家收集整理的这篇文章主要介绍了css – HTML5图像图标输入占位符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在输入的占位符中添加图像图标,如下图所示:

请注意,这是占位符,所以当用户开始打字时,图标也会消失。

我使用:: – webkit-input-placeholder和:: before,为webkit(Safari Chrome)提供了以下解决方案。不幸的是,对mozilla的直接应用似乎不起作用。

所以我的问题是:是否有一个跨浏览器解决方案来添加图像图标到输入占位符?

webkit解决方案:

#myinput::-webkit-input-placeholder::before { 
    content: ' ';
    position: absolute;
    top: 2px; /* adjust icon position */
    left: 0px;
    width: 14px; /* size of a single icon */
    height: 14px;
    background-image: url("/path/to/icons.png"); /* all icons in a single file */
    background-repeat: no-repeat;
    background-position: -48px 0px; /* position of the right icon */
}

解决方法

>您可以将其设置为背景图像,并使用文本缩进或填充将文本向右移动。
>你可以把它分解成两个元素。

老实说,我会避免使用HTML5 / CSS3,而没有好的回退。只有太多的人使用旧的浏览器,不支持所有新的花哨的东西。这将需要一段时间,我们可以放弃后备,不幸的是:(

我提到的第一种方法是最安全和最简单的方法。两种方式都需要Javascript来隐藏图标。

CSS:

input#search {
    background-image: url(bg.jpg);
    background-repeat: no-repeat;
    text-indent: 20px;
}

HTML:

<input type="text" id="search" name="search" onchange="hideIcon(this);" value="search" />

使用Javascript:

function hideIcon(self) {
    self.style.backgroundImage = 'none';
}

2013年9月25日

我不敢相信我说“两种都需要JavaScript来隐藏图标”,因为这不完全是真的。

隐藏占位符文本的最常见时机正在改变,如本答案中所提到的。对于图标,但是可以将它们隐藏在可以在CSS中使用活动伪类的焦点上。

#search:active { background-image: none; }

哎,使用CSS3可以让它消失!

http://jsfiddle.net/2tTxE/

2013年11月5日

当然,也有CSS3 :: before伪元素。小心浏览器支持虽然!

Chrome  Firefox     IE      Opera   Safari
:before     (yes)   1.0         8.0     4       4.0
::before    (yes)   1.5         9.0     7       4.0

https://developer.mozilla.org/en-US/docs/Web/CSS/::before

猜你在找的CSS相关文章