画像の位置
相変わらず些細な部分ですけどブログの変更。
画像を貼り付けた時、大抵の場合は文字を回り込みさせます。その場合、画像と文字の隙間が無くなってしまうので、imgタグにhspaceやvspace属性で画像の回りに空白スペースを確保していました。FireFoxではhspaceやvspace属性が使えないので隙間は常に0pxでしたが。
この方法だと、右端に画像を置いた場合(imgタグのalign=left属性を使用)、厳密には右端からhspace分、左にズレてしまうことになります。
そこで、スタイルシートにクラス属性(highslide使用時にはid属性を使用)で画像の位置が左なら、テキストの回り込みと隙間の確保、画像の位置を左へ8pxズラすなどの設定を追加して、画像の位置をコントロール出来るようにしました。FireFoxでの表示も思い通りになってくれました。ここが気になってた所なんです。
ここまではよかったんだけど、この画像の位置をズラしたおかげで不具合が。
IEが持つブラウザ上の機能で、リンクをクリック(onfocus)した時に、そのリンクの回りに点線が出るのですが、この点線が画像をズラす前の本来の位置に表示されます。つまり、8px分のズレが発生するんです。
こればかりは悩みました。この点線そのものは、障害者などへの配慮で使用されるているものです。しかし、他のブラウザでは使われてなかったりします・・・。
だったら、「ページ内の全てのリンクに対して、この点線を消す裏技である【onfocus="this.blur()"】を適用してしまえ!」という発想に。とは言う物の、全てのリンクタグを変更するのは無理なので、「ページを読み込んでから、リンクタグの記述に対して【onfocus="this.blur()"】を追記する」ようにしてみましょう。
あらゆるサイトを探したものの、そんな方法は載っていません!
で、たどり着いたのが、unbland.net blogさんの「HighSlide JS での手間を省く」エントリーにあるjQueryを使う方法に手を加える事でした。お世話になりました。本当にありがとうございます!
と言うわけで、リンク選択時の点線が、IEでは表示されなくなっています。
なかなか苦労しただけあって、思い通りにいきました!



コメントする