我正在构建一个应用程序,需要为背景图像 URL 中的任何字符串
str_replace()
或 http:
提供 https:
。有谁知道背景图像的 URL 可以使用任何其他协议吗?例如,以下任何内容是否可能,或者有人在 CSS 背景图像 URL 中看到以下任何内容吗?
TCP
UDP
ICMP
POP
FTP
IMAP
举个例子,这对于 CSS 来说可能吗?
#myDiv { background-image: URL("ftps://mysite.com/pub/myimage.png"); }
感谢您的见解!
这是明显合法的语法,遵循 W3C 的 CSS 标准。您可以在那里放置任何合法的 URI,但这取决于浏览器是否有效。
TCP、UDP 和 ICMP 是不同类型的协议,因此它们不起作用,但 ftp、pop 和 imap 理论上可以工作。请参阅此处的语法:https://en.wikipedia.org/wiki/URI_scheme
您还可以用 data URI 替换所有图像,基本上嵌入所有内容。
非常有趣的问题。
CSS2 标准似乎没有特别规定任何内容,只要我们有符合 RFC3986 的有效 URI即可,CSS1也没有规定。
您的 URI 是否实际上起作用取决于您的浏览器是否可以访问该 URI(以及您是否拥有适当的权限等)。
我想这是有意为之的,有一个原因:这意味着CSS规范与传输层无关,这很有道理。
在实践中,例如,您可以链接到符合 CSS1 的样式表中的 HTTPS 资源,即使 CSS1 早于 HTTPS 的 RFC。