Facebook 标签页内的图像翻转

发布于 2024-10-13 09:47:38 字数 793 浏览 1 评论 0原文

我正在尝试在 Facebook 选项卡页面内使用简单的 CSS 精灵进行基于图像的翻转,并且背景图像被 Facebook 剥离。需要明确的是,此问题仅发生在 Tab 页面内,而不是在主应用程序本身中。

Facebook 在删除背景图像时似乎也非常挑剔 - 应用于锚标记的背景图像被删除,但应用于包含锚的列表元素的背景图像保持不变。

例如,给定标记:

<li><a href="http://some/destination.html" target="_top"><img src="http://absolute/path/to/spacer-image.png" alt="" width="172" height="43" /></a></li>

以下 CSS 将成功地将背景应用于列表元素:

li {
    background: url(http://absolute/path/to/some/image.jpg) no-repeat 0 0;
}

但应用于子锚标记的相同 CSS 被 Facebook 删除:

li a {
    background: url(http://absolute/path/to/some/image.jpg) no-repeat 0 0;
}

Facebook 实际上能够支持选项卡内基于图像的翻转,如果是这样,怎么办?

I'm trying to use a simple CSS-sprite for image-based rollovers inside a Facebook Tab page, and the background images are being stripped by Facebook. To be clear, this problem only occurs inside a Tab page, but not in the main application itself.

Facebook also appears to be extremely picky about when it strips background images - background images applied to anchor tags are removed, but background images applied to the list element containing the anchor remain intact.

For example, given the markup:

<li><a href="http://some/destination.html" target="_top"><img src="http://absolute/path/to/spacer-image.png" alt="" width="172" height="43" /></a></li>

the following CSS will apply a background to the list element successfully:

li {
    background: url(http://absolute/path/to/some/image.jpg) no-repeat 0 0;
}

but the same CSS applied to the child anchor tag is stripped out by Facebook:

li a {
    background: url(http://absolute/path/to/some/image.jpg) no-repeat 0 0;
}

Is Facebook actually capable of supporting image-based rollovers inside a tab, and if so, how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诠释孤独 2024-10-20 09:47:38

通过反复试验发现了一种解决方案,尽管它涉及无效堆叠的 html 并且看起来非常令人讨厌。

修改标记,使 div 位于锚标记内:

<a href="http://some/destination.html" target="_top"><div><img src="http://absolute/path/to/spacer-image.png" alt="" width="172" height="43" /></div></a>

并将背景图像应用到 div 而不是锚:

li a div {
   background: url(http://absolute/path/to/some/image.jpg) no-repeat 0 0;
}

然后您可以像这样应用背景偏移

li a:hover div { background-position: 0 -43px; }

:确实有效,但如果有人能提出建议,我宁愿选择一个不那么麻烦的解决方案。

Discovered a solution of sorts through trial and error, though it involves invalidly stacked html and looks pretty nasty.

Modify the markup so a div is inside the anchor tag:

<a href="http://some/destination.html" target="_top"><div><img src="http://absolute/path/to/spacer-image.png" alt="" width="172" height="43" /></div></a>

and apply the background image to the div instead of the anchor:

li a div {
   background: url(http://absolute/path/to/some/image.jpg) no-repeat 0 0;
}

You can then apply the background offset like this:

li a:hover div { background-position: 0 -43px; }

It does work but I'd much rather a less-hacky solution if anyone can suggest something.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文