3

我想在我的网站上使用具有透明背景的 .png 图像作为链接。

我试过这个html:

<a href="index.html">
    <img border="0" src="smiley.png" alt="smiley" width="150" height="150">
</a>

这个CSS:

a
{
    text-decoration: none;
    color: inherit;
}

但是,图像仍然可以在我的图像的透明背景上单击。

这是我想要得到的说明:

样本

***注:此图片仅供参考。我 100% 确定我的图片具有透明背景。*

当光标仅在笑脸(可见部分)上时,如何将我的图像用作链接?

4

5 回答 5

4

对于此特定图像,您可以使用带有圆圈的图像映射作为活动区域。

<map id="ImgMap0" name="ImgMap0">
    <area alt="" coords="30, 32, 30" href="http://www.link.com" shape="circle" />
</map>
<img src="http://placehold.it/64x64" alt="" usemap="#ImgMap0"/>
于 2013-03-22T20:43:45.027 回答
2

使用 css 属性border-radius: 50%;来弯曲边(如果图像是圆形的)

于 2013-03-22T21:03:28.990 回答
1

试试这样,映射技术

<map name="imgmap">
<area shape="smiley" coords="x,y,radius" href="link.html" alt="img_alt">
</map>
于 2013-03-22T20:49:32.913 回答
1

您也可以使用 css3。我发现这篇文章有详细信息和一个很好的例子

我没有“几乎”测试这个,但你可以试一试。

CSS

.circle {
    background: none repeat scroll 0 0 #CCCCCC;
    /* some cross-browser css missing for border-radius */
    border-radius: 100px 100px 100px 100px;
    color: #FFFFFF;
    display: block;
    float: left;
    font-size: 20px;
    height: 200px;
    line-height: 200px;
    margin-right: 30px;
    text-align: center;
    width: 200px;
}
.circle-border {
    background: none repeat scroll 0 0 #CCCCCC;
    border: 1px solid #999999;
    /* some cross-browser css missing for border-radius */
    border-radius: 100px 100px 100px 100px;
    color: #FFFFFF;
    display: block;
    float: left;
    font-size: 20px;
    height: 199px;
    line-height: 200px;
    margin-right: 30px;
    text-align: center;
    width: 199px;
}

HTML

<a href="#" class="circle">BUTTON</a>
<hr style="clear:both;float:left;height:1px;width:100%;" />
<a href="#" class="circle-border">BUTTON</a>

在这里重新摆弄

于 2013-03-25T13:11:34.107 回答
1

您不必使用图像映射。我用 2 <div>s 试了一下,效果很好。只需将笑脸和<div>带有属性onclick="window.open('yoururl')"的 a 放在 main<div>中。使两者都<div>圆且不可见。

HTML:

<div id="maindiv">
<img src="smiley.png" alt="" id="smiley"/>
<div id="LinkArea" onclick="window.open('https://google.com')"></div>
</div>

CSS:

#maindiv {
height: 150px;
width: 150px;
background-color: rgba(0,0,0,0);
border-radius: 100%;
z-index: 2;
position: absolute;
top: 0;
left: 0;
}
#smiley {
height: 150px;
width: 150px;
z-index: 1;
}
#LinkArea {
height: 150px;
width: 150px;
background-color: rgba(0,0,0,0);
border-radius: 100%;
cursor: pointer;
z-index: 3;
position: absolute;
top: 0;
left: 0;
}
于 2018-09-02T11:21:50.237 回答