在CSS中定位alt属性有什么问题吗?


11

我尝试针对CSS中的alt属性。我的解决方案可在Firefox / Mozilla中使用,但在Safari-Chrome / Webkit中无法使用。设置alt标签样式有什么问题吗?如果没有,您应该如何解决Webkit的问题。

这是一个例子:

的CSS

img#logo[alt="Site Title"] { color: #999; font-size: 2em; }

的HTML

<img id="logo" src="" alt="Site Title" width="" height="" />

Answers:


5

我尝试过,它非常适合我。请注意,colorfont-size属性在Chrome中不会起作用,因为不会显示任何文本。(如果找不到图像,Firefox将显示替代文本。)例如,使用width属性显示其工作正常。我将在下面发布我的代码供您查看。

但是,对于您最初的问题,将CSS中的“自由文本”字段作为目标是容易发生的。无需考虑CSS的影响,更改alt属性非常容易(与在明显的位置更改类名相反)。

此外,由于您已经定位了ID,所以您只需要使用该选择器-每个页面只能使用一次ID。


<!DOCTYPE html>
<html>
<head>
  <style>img#logo[alt="Site Title"] { width:200px }</style>
</head>
<body>
  <img alt="Site Title" src="bullet.png" id="logo" />
</body>
</html>

关于将自由文本用作CSS选择器的一部分的要点。
冒犯君主

1
看看html5中的新data-属性,可能正是您需要的东西。
托马斯

2

由于属性选择器是在W3C CSS规范中定义的,因此您应该可以使用它。但是浏览器的实现方式各不相同,并且或多或少是可靠的。

正如您在SitePoint Reference中对CSS属性选择器的支持中所看到的那样,Webkit的支持存在很多问题。您还会看到IE的css属性选择器支持从一个版本到另一个版本都不同。

因此,并非所有浏览器都支持此选择器。

作为一种更可靠的方法,应该使用所有浏览器都支持的ID选择器:

#logo {颜色:#999; 字号:2em;}


1

经过一些测试之后,似乎不是通过基于Webkit的浏览器支持样式化alt属性文本的。因此,您的观察似乎是正确且不可避免的。


你有例子吗,因为它对我来说很好。
DisgruntledGoat 2010年

它在Chrome中为您工作了吗?
约翰·孔德

是的,使用属性选择器应用样式效果很好。在任何情况下,Chrome都不会显示图片的替代文字AFAIK,因此没有任何样式可以对文字进行样式设置。
DisgruntledGoat 2010年

@山羊:如果我叫你山羊..,我昨晚测试时以为Chrome 确实在没有样式应用于图像的情况下显示了替代文本。下班后,我将不得不再次玩它,看看我的记忆是否还不错。
约翰·孔德

我只是要把它放在那里,但这可能与您那里的空格字符有关……
Gup3rSuR4c 2010年

0

CSS选择器正在选择标签,从而影响标签的显示方式。可以肯定的是,如果关闭图像并查看显示在该位置的替代文本,那么该替代文本将显示为在CSS中写入的内容。

您可能想为webkit项目打开一个错误,以供他们修复-如果他们认为firefox的行为是他们想要在此做什么。


属性选择器是CSS2,而不是CSS3。
DisgruntledGoat 2010年

您是对的,删除了我之前做过的愚蠢答案...
Evgeny
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.