html - CSS 嵌入图像作为链接

标签 html css image

我有一个 html 页面多次使用相同的图标,所以我将该图标作为背景图像嵌入到 css 中。

在css中,图标类是这样的:

.user {
background-image: url(data:image/png;base64,...encoded png file...);
background-position: 0 0;
background-repeat: no-repeat;
width: 16px;
height: 16px;
}

我使用 <span class='user'></span> 显示图标标签,到目前为止,还不错。

我希望图标成为另一个页面的链接,但这样做时我无法使图标看起来正确。

我试过:

<a href="www.google.com"><img class="user" src=""></img></a>

但这在资源管理器中绘制了一个断开的链接图标,它看起来不错,但在 Chrome 中有一个边框。显然是错误的。

我也试过:

<a href="www.google.com"><span class="user"></span></a>

这可行,但鼠标光标在图标上时不会变为指针。

我应该做什么?

最佳答案

您应该使元素 block 级别(至少 inline-block )设置宽度/高度并显式设置 cursor .这两件事是关键组成部分。

.user {
    background-image: url(data:image/png;base64,...encoded png file...);
    background-position: 0 0;
    background-repeat: no-repeat;
    display: inline-block; /* set display so you can set width/height */
    cursor: pointer; /* ensure it shows the link cursor */
    width: 16px;
    height: 16px;
}

和 HTML:

<a href="#urlhere"><span class="user"></span></a>

所以,你最终得到一个 inline-block显示图像的元素,然后用 anchor 包裹它。这与围绕 <img /> 包裹 anchor 基本相同。 .

或者,您可以只使用 <a> 来完成此操作.您将使用与此 HTML 完全相同的 CSS:

<a href="#urlhere" class="user"></a>

两者都应该实现您所追求的目标。这两个选择之间的区别主要在于语义。

关于html - CSS 嵌入图像作为链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17206067/

相关文章:

html - 使 FA 在 :hover with <li> 上改变颜色

css - 在不弄乱布局的情况下添加填充和边框

html - 在 IE 中带有页面滚动的粘性页脚

c# - byte[] 到 BitmapImage 转换失败

image - 清理 Docker 镜像占用的磁盘空间

javascript - 图像映射的悬停和选定状态

javascript - 输入未添加到数组(初学者)JavaScript

javascript - 使用 slider 控制幻灯片放映速度

javascript - 重新加载后从子 iframe 自动调用 js 函数不起作用

jquery - Bootstrap - 附近的图像 slider |在下方添加文字