小编Jad*_*ser的帖子

如何在不丢失Firefox和WebKit浏览器中的默认边框的情况下将背景图像应用于文本输入?

出于某种原因,如果您为其提供背景图像,大多数现代浏览器将停止将其默认输入边框样式应用于文本框.相反,你得到了丑陋的插图风格.据我所知,没有CSS方式来应用默认浏览器样式.

IE 8没有这个问题.Chrome 2和Firefox 3.5也可以,我也假设其他浏览器.从我在网上看到的IE 7有同样的问题,但该帖子没有解决方案.

这是一个例子:

<html>
<head>
  <style>
    .pictureInput {
      background-image: url(http://storage.conduit.com/images/searchengines/search_icon.gif);
      background-position: 0 1px;
      background-repeat: no-repeat;
    }
  </style>
<body>
  <input type="text" class="pictureInput" />
  <br />
  <br />
  <input type="text">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在Chrome 2中,它看起来像这样:http://www.screencast.com/users/jadeonly/folders/Snagit/media/d4ee9819-c92a-4bc2-b84e-e3a4ed6843b6

而在Firefox 3.5:http://www.screencast.com/users/jadeonly/folders/Snagit/media/d70dd690-9273-45fb-9893-14b38202ddcc

更新:JS解决方案:我仍然希望找到一个纯粹的CSS输入解决方案,但这里是我现在要使用的解决方法.请注意,这是粘贴在我的应用程序之外,所以不是一个很好的,独立的例子,如上所述.我刚刚从我的大型网络应用程序中包含了相关部分.你应该能够理解这个想法.HTML是带有"link"类的输入.大的垂直背景位置是因为它是一个精灵.在IE6,IE7,IE8,FF2,FF3.5,Opera 9.6,Opera 10,Chrome 2,Safari 4中测试过.我需要在某些浏览器中调整几个像素的背景位置:

JS:

 $$('input.link').each(function(el) {
   new Element('span',{'class':'linkIcon'}).setText(' ').injectBefore(el);
   if (window.gecko) el.setStyle('padding', '2px 2px 2px 19px');
 });
Run Code Online (Sandbox Code Playgroud)

CSS:

input.link { padding-left: 19px; }
span.linkIcon { z-index: 2; width: 19px; height: 19px; position: absolute; background-image: url(img/fields.gif); …
Run Code Online (Sandbox Code Playgroud)

css input border background-image

31
推荐指数
2
解决办法
5万
查看次数

标签 统计

background-image ×1

border ×1

css ×1

input ×1