【问题标题】:How can I fill a submit button with an image?如何用图像填充提交按钮?
【发布时间】:2013-05-31 20:31:31
【问题描述】:

所以我有一个带有此代码的提交按钮:

<form method="post">
    <input name="submit" type="submit" class="icon" value=" "/>
</form>

我拥有的 CSS 中的一个:

.icon{
    background-color:transparent;
    background-image:url(http://www.lcda.fr/pneu-expo/images/drapeau_rond_gb-on.png);
    height:20px;
    width: 20px;
    background-position:center;
    border:none;
    cursor:pointer;
    background-size: 100%;
}

但问题是图像(具有 h:40px 和 w:40px)不会缩小以适应 20px 按钮...你们有什么解决方案吗? (如果可能,我宁愿不使用 javascript)

编辑: 正在工作。我只是删除历史记录,现金和它的工作原理...... ty

【问题讨论】:

  • 说真的,我永远不会将 Java 用于这样的事情。 Java 不是 JavaScript。
  • IMO 的最佳解决方案是存储大小为 20px/20px 的图像;这样浏览器在渲染页面时就不需要它了。
  • 哪个浏览器?因为对我来说,它就像你期望的那样工作。它缩小了
  • background-size: cover;?

标签: html css image button


【解决方案1】:

试试这个:-

background-size:20px 20px;

【讨论】:

【解决方案2】:

改为使用image submit button,并使用 CSS 将元素缩小到所需的尺寸。

<input name="submit" type="image" class="icon"
style="width: 20px; height: 20px"
src="http://www.lcda.fr/pneu-expo/images/drapeau_rond_gb-on.png"
alt="Send" />

【讨论】:

    【解决方案3】:

    在css文件中添加这一行:

    display:block;
    

    【讨论】:

      【解决方案4】:

      您需要包装一个跨度来提交按钮并为其设置样式。

      演示http://jsfiddle.net/H5dmd/2/

      HTML

      <form method="post">
          <span class="icon">
              <input name="submit" type="submit" value=" "/>
          </span>
      </form>
      

      CSS

      input[type=submit]{
          background:transparent;
          width:20px;
          height:20px;
          border:none;
          padding:none;
          cursor:pointer;
      }
      .icon{
          float:left;
          background-color:transparent;
          background-image:url(http://www.lcda.fr/pneu-expo/images/drapeau_rond_gb-on.png);
          height:20px;
          width: 20px;
          background-position:center;
          border:none;
          cursor:pointer;
          background-size: 100%;        
      }
      

      【讨论】:

        【解决方案5】:

        给按钮添加一个id,更新图片:

        document.body.onclick=function(e){
            debugger;
            var bid=document.getElementById('bid');
            bid.style.backgroundImage="url('http://www.google.co.il/images/srpr/logo4w.png')";;
        }
        

        js 小提琴here.

        【讨论】:

        • 点击正文(按钮旁边)更改图片。
        【解决方案6】:

        您可以简单地使用图像类型的输入,它正是为此目的而存在的:提交显示图像的按钮。作为奖励,您还将获得用户点击的坐标。

        例子:

        <input name="mysubmit" type="image" src="http://www.lcda.fr/pneu-expo/images/drapeau_rond_gb-on.png" />
        

        Live test case.

        只有一个缺点:在处理表单的服务器端代码中,您必须检查“mysubmit.x”和/或“mysubmit.y”是否不为空,以了解是否发送了任何不太直观的内容不仅仅是检查“mysubmit”。

        【讨论】:

          【解决方案7】:

          我在这里看到了多个选项:

          更改保存

          将您的图像保存为 20x20,哎呀,问题消失了。

          使用 CSS3

          CSS3 引入了一个新功能,即backgroud-size

          只要把它放在你的 CSS 中:

          background-size: 20px 20px;
          

          但它不会与旧浏览器兼容。

          使用 JavaScript [不良风格]

          HTML

          <form method="POST" action="test.php" name="myform">
              <a onclick="javascript:document.forms['myform'].submit ();" ><img src="myimage.png" onclick="submit();" /></a>
          </form>
          

          【讨论】: