以下のような a要素に囲まれたimg要素はスタイル(CSS)を指定しないとブラウザによっては 2px の border が付けられることがある。
例)
<a href="#"><img src="image.jpg"/></a>
この img 要素の border-width を jQuery で取得し、違いを見てみる。
スタイル(CSS)での border 指定がない場合(defaultの状態)
img 要素の border-width を取得するalert($('a > img').css('border-width'));| 取得結果 | |
|---|---|
| IE8 | 2px |
| Firefox3 | 空文字 |
| Chrome | 空文字 |
img 要素の border-top-width を取得する
alert($('a > img').css('border-top-width'));| 取得結果 | |
|---|---|
| IE8 | 2px |
| Firefox3 | 2px |
| Chrome | 0px |
Chrome では default のままでは border は付かない。
CSSで「border:none」指定した場合
img{
border:none;
}
img要素のborder-widthを取得する| 取得結果 | |
|---|---|
| IE8 | medium |
| Firefox3 | 空文字 |
| Chrome | 空文字 |
img要素のborder-top-widthを取得する
| 取得結果 | |
|---|---|
| IE8 | medium |
| Firefox3 | 0px |
| Chrome | 0px |
default との違い
- IE8 で「medium」が返ってくる。
CSSで「border-width:0」指定した場合
img{
border-width:0;
}
img要素のborder-widthを取得する
| 取得結果 | |
|---|---|
| IE8 | 0px |
| Firefox3 | 空文字 |
| Chrome | 空文字 |
img要素のborder-top-widthを取得する
| 取得結果 | |
|---|---|
| IE8 | 0px |
| Firefox3 | 0px |
| Chrome | 0px |
結論
以上のことから、- CSS で border をなくす場合、jQuery で border-width を取得する際のことを考慮するなら、「border:none」ではなく「border-width:0」とするべき。
- jQuery で border-width を取得する場合、
「border-(top|right|bottom|left)-width」から値を得ること。





0 Comments:
コメントを投稿