你能用CSS设置一个断开的链接的样式吗?

Can You Style a Broken Link With CSS?

本文关键字:断开 一个 链接 样式 CSS 设置      更新时间:2023-09-26

是否可以将断开的链接(即尝试链接到您网站上不存在的页面的链接(设置为不同的颜色? 例如,工作链接是蓝色的,断开的链接是红色的?

或者,如果不是CSS,是否有可能通过JavaScript识别它们,然后稍后设置它们的样式?(我无法使用jQuery。

不,您不能使用 CSS 设置断开链接的样式。 浏览器不知道链接是否断开,直到某些代理尝试访问该链接。

你可以想象编写一些Javascript,试图获取文档中每个链接的每个页面,然后,在某些链接失败时,它可以动态地将链接的样式更改为其他内容。 但是,这可能是一个非常糟糕的主意,因为它可能会浪费大量带宽并浪费一些CPU(两者在移动设备上尤其重要(。

而且,更进一步的是,一些链接是指向其他域的,浏览器可能会禁止您的Javascript直接获取这些页面(同源安全限制(,因此您甚至可能无法使用Javascript执行此操作。

一个可以工作的可扩展系统是让你的服务器每隔一段时间(可能每隔几天一次(检查你在页面中使用的链接,将该信息保存在本地数据库中,然后你可以在呈现页面时向链接(服务器端(添加一个类,然后 CSS 规则可以以不同的方式设置该链接的样式。 此外,服务器不受同源限制,因此您在服务器端没有这种限制。 在确定离线时,有很多陷阱,您必须注意,因为主机可以暂时关闭,只能从互联网上的特定路由关闭,等等......

参考资料 你可能想看看这篇文章: Javascript:检查服务器是否在线?

您可以使用javascript来检查站点是否启动/关闭。 使用此功能,您可以确定链接是否良好,并使用与不良链接不同的类显示它。

CSS本身无法识别链接是否断开,不。

但是,假设您有其他方法来确定链接是否断开,是的,您可以向断开的链接添加一个类,并为它们提供独特的 CSS 样式以直观地指示它们。

如何自动确定断开的链接将是另一个问题,这个问题在网络上的各个地方都有很好的介绍。例如,这里在JS中,在这里使用PHP。我强烈建议构建一个系统,该系统不会尝试确定每个访问者每次访问的每个链接,而是可能每周检查一次您网站上的所有链接,并更新网站上的哪些链接提供额外的broken类附加到它们或类似的东西。