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="" />

回答:


5

私はそれを試しました、そしてそれは私にとって完全に機能します。colorおよびfont-sizeプロパティは、テキストが表示されないため、Chromeでは効果がないことに注意してください。(画像が見つからない場合、Firefoxは代替テキストを表示します。)たとえば、widthプロパティを使用すると、正常に動作することがわかります。以下に私のコードを掲載します。

ただし、元の質問では、CSSで本質的に「フリーテキスト」フィールドであるものをターゲットにすると、事故が発生しやすくなります。CSSの影響を考慮せずにalt属性を変更するのは非常に簡単です(明らかなクラス名を変更するのではなく)。

さらに、すでにIDをターゲティングしているため、そのセレクターを使用するだけで済みます。IDはページごとに1回だけ使用できます。


<!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セレクターの一部としてフリーテキストを使用することの利点。
Lèseはmajesté

1
html5の新しいdata-属性を見てみましょう。
トーマス

2

属性セレクターはW3C CSS仕様で定義されているため、使用できるはずです。しかし、ブラウザの実装はさまざまであり、信頼性は多かれ少なかれあります。

CSS属性セレクターのSitePointリファレンスサポートでわかるように、Webkitのサポートにはバグがあります。IEのcss属性セレクターのサポートがバージョンごとに異なることもわかります

したがって、このセレクターはまだすべてのブラウザーでサポートされていません。

より信頼できる方法として、IDセレクターを使用する必要があります。これは、すべてのブラウザーでサポートされています。

#logo {color:#999; font-size:2em; }


1

いくつかのテストを行った後、Webkitを使用したブラウザがalt属性テキストのスタイル設定をサポートしているようには見えません。したがって、あなたの観察は正しく、避けられないようです。


それは私にとってうまくいったので、あなたには例がありますか?
DisgruntledGoat

Chromeでうまくいきましたか?
ジョンコンデ

はい、属性セレクターを使用したスタイルの適用はうまくいきました。Chromeでは、どんな状況でも画像の代替テキストを表示しないため、テキストのスタイルを設定するものはありません。
DisgruntledGoat

@ヤギ:ヤギと呼んでもいいですが、昨夜このテストを行ったとき、画像にスタイルが適用されていないときにChrome 代替テキストを表示すると思いました。仕事が終わったらもう一度遊んでみて、記憶力に問題がないか確認します。
ジョンコンデ

私はこれをそこに出すつもりですが、そこにあるスペース文字に問題があるかもしれません...
Gup3rSuR4c

0

CSSセレクターがタグを選択しているため、タグの表示方法に影響します。画像をオフにしてその場所に表示されている代替テキストを確認すると、CSSで記述されているとおりに表示されます。

彼らがそれを修正するためにwebkitプロジェクトのバグをオープンしたいと思うかもしれません-彼らがfirefoxの振る舞いがそこでやりたいことだと彼らが感じた場合。


属性セレクターはCSS2ではなく、CSS3です。
DisgruntledGoat

あなたは正しい、私が以前に行ったばかげた答えを削除しました...
Evgeny
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.