「img」からは下線のbox-shadowが消えるんです。包む「a」には下線が付くんです。親が線付けたら子に線がなくても線が現れます。すると親であるaのbox-shadowが生きてきます。子のbox-shadowを、親より太い白線にしてやると、そっちが優先され一見したところ黒線は消えるのです。太い白線があるだけなんです。細い白線では消えないの太くすると誤魔化せるの「画像を包むa」を指定できないCSS3にはいろんなセレクタがあります。セレクタを駆使するといろんな指定が事細かにできますね。決定的な欠陥があって、それは親の要素を指定するセレクタなんてのはないってことです。<p>から<a>や<img>に対してはセレクタで指令できますし、<a>は<img>に指令できます。<img>から<a>や<p>に指令を発することができません。画像の線を消したいとき、<a>の下線を消したいんだから対象要素は<a>で条件は<img>ですよね。「aに包まれたimg」なら指定できますがそうではなく「imgを包むa」を指定したいわけです。実はそのようなセレクタはありません。私は無知ですからそういうセレクタがあるに違いないと思って探しまくりましたがないものはないです。噂ではcss4ではそのようなセレクタが登場するかもということですが今はありません。Seventeenが行った解決策が「imgに対してaが付ける黒線より太い白線を付けて無理矢理誤魔化す」ことでした。このやり口は褒められたもんじゃありません。おかげでリンクのある画像にはすべてぶっとい白枠(しかも正体は影)が付くことになりました。画像に白枠をつけたくないときには画像個々に対して工夫しなければならなくなりましたね。最初の小さな嘘を誤魔化すためにより大きな嘘をつきまくり周りを巻き込んで近代国家を全否定するほど収集のつかなくなったどこかのアホボンみたいな状況です。なーんだ簡単なことです。さまざまな解決方法とはいえ、私個人もtext-decorationを好まなくて、box-shadowのアイデア自体は悪くないと思ってるところもあります。解決の方法を探りたいのです。気にしないかセレクタなどを駆使するまずは太い白枠を気にしないという解決方法もあります。本文の中に入れる場合など、実際に気にならない局面が多いです。背景色のあるサイドメニューに画像をいれるなど、気になる場合も出てきます。CSSで細かく指定してあげたりして乗り切ります。}みたいに場所別に細かく、セレクタを駆使して細かく、いちいちbox-shadowの白を背景色に合わせたものを用意します(影を消すことはできません)現実的な解決策ですが、背景色を変更することもあるでしょうし、後で面倒なことになってくる予感がします。aにクラスを付ける、あるいはaを囲むimgを包んでいるaにクラスを付けて、そのクラスでbox-shadowを無効にしてしまうという力技もあります。親に書かれていないクラスなのでbox-shadowの色とかそういうレベルじゃなく親の影を完全に無効にできます。画像を貼る度にaにクラスを書き入れるのも面倒なことで、いっそaごと<div>とか<figure>とかで囲んでしまうというのもありですね。囲んでしまうものにクラスを仕込んでおけばaにクラスを付けるのと同様、親の影響を受けずに解決します。どっちにしろ新規クラスは必要になってきますし、画像を貼る度に一手間付け加えるのは思いのほか苦痛な作業になる予感がします。box-shadowを全部やめちゃう試しにいろいろやってみて私が出した結論はこれでした。何をやっても面倒臭いしもううんざりです。box-shadowの下線なんかいりません。text-decorationも嫌いです。やめちゃえやめちゃえ。線なんかいらない、アンチ線、反線。リンクテキストの色を青くしてhoverで目立たせるだけで十分だ。