【问题标题】:How to make a transparent HTML button?如何制作一个透明的 HTML 按钮?
【发布时间】:2014-05-05 12:38:05
【问题描述】:

我正在使用 Dreamweaver 创建网站,我想只使用 Photoshop 创建背景。我决定这样做只是因为如果我选择通过编辑代码轻松更改按钮名称,我可以参考代码。如果我使用 Photoshop 构建按钮,我将无法轻松编辑这些按钮或任何元素中的文本。

所以我的问题很简单,我如何创建一个具有简单内联样式的按钮,使其透明而使按钮的值仍然可见。

.button {     
    background-color: Transparent;
    background-repeat:no-repeat;
    border: none;
    cursor:pointer;
    overflow: hidden;        
}

点击后仍然会留下边框阴影。

【问题讨论】:

标签: html css


【解决方案1】:

点击时去掉轮廓,添加outline:none

JSFiddle example

button {
    background-color: transparent;
    background-repeat: no-repeat;
    border: none;
    cursor: pointer;
    overflow: hidden;
    outline: none;
}

button {
    background-color: transparent;
    background-repeat: no-repeat;
    border: none;
    cursor: pointer;
    overflow: hidden;
    outline: none;
}
<button>button</button>

【讨论】:

  • 这其实已经够好了。我已经尝试过图像方式,它完全符合需要。非常感谢您,海斯先生!
  • 在代码中包含 -webkit-box-shadow: none; -moz-box-shadow: none; 后 100% 工作
  • 您可以优化它,将background-color: Transparent; background-repeat:no-repeat;更改为background: Transparent no-repeat;
  • 缺少outline: none; 每次都能得到我
  • 对我来说,我必须将属性“光标:指针”应用于按钮:悬停。仅使用按钮它不起作用。
【解决方案2】:

**像这样添加图标顶部按钮**

#copy_btn{
	align-items: center;
	position: absolute;
	width: 30px;
  height: 30px;
     background-color: Transparent;
    background-repeat:no-repeat;
    border: none;
    cursor:pointer;
    overflow: hidden;
    outline:none;
}
.icon_copy{
	position: absolute;
	padding: 0px;
	top:0;
	left: 0;
width: 25px;
  height: 35px;
  
}
<button id="copy_btn">

                        <img class="icon_copy" src="./assest/copy.svg" alt="Copy Text">
</button>

【讨论】:

    【解决方案3】:

    将其背景图像设置为无也可以:

    button {
        background-image: none;
    }
    

    【讨论】:

      【解决方案4】:
      <div class="button_style">
      This is your button value
      </div>
      
      .button_style{   
      background-color: Transparent;
      border: none;             /* Your can add different style/properties of button Here*/
      cursor:pointer;    
      }
      

      【讨论】:

        【解决方案5】:

        解决方案其实很简单:

        <button style="border:1px solid black; background-color: transparent;">Test</button>
        

        这是在做一个内联样式。您将边框定义为 1px、实线和黑色。然后将背景颜色设置为透明。


        更新

        似乎您的实际问题是单击边框后如何防止边框。这可以通过 CSS 伪选择器解决::active

        button {
            border: none;
            background-color: transparent;
            outline: none;
        }
        button:focus {
            border: none;
        }
        

        JSFiddle Demo

        【讨论】:

        • 单击后仍会留下边框阴影。感谢您的意见!
        • 因此,您的实际问题与我回答的原始问题非常不同。您已经知道如何使用 CSS 使按钮透明。单击它后,它会留下您不想要的边框。准确吗?
        • 是的,如果我的问题具有误导性,我非常抱歉。
        【解决方案6】:

        制作一个 div 并使用您的图像(具有透明背景的 png)作为 div 的背景,然后您可以应用该 div 中的任何文本以将鼠标悬停在按钮上。像这样的:

        <div class="button" onclick="yourbuttonclickfunction();" >
        Your Button Label Here
        </div>
        

        CSS:

        .button {
        height:20px;
        width:40px;
        background: url("yourimage.png");
        }
        

        【讨论】:

        • 如果你想保持你的html语义和可访问性,最好使用按钮标签和删除背景等。使用css。但是,这很好,尤其是在可访问性不是问题的情况下,例如使用 html5 和 CSS 进行布局的本机应用程序,这里有一个示例:smashingmagazine.com/2013/10/17/…
        猜你喜欢
        • 1970-01-01
        • 2019-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-08
        • 2018-02-05
        • 1970-01-01
        • 2011-05-07
        相关资源
        最近更新 更多