แก้ไข:การวางตำแหน่งรูปภาพตามตารางก่อนหน้ามีปัญหาใน Internet Explorer 11 ( max-height
ไม่ทำงานในdisplay:table
องค์ประกอบ) ฉันได้แทนที่ด้วยการวางตำแหน่งแบบอินไลน์ซึ่งไม่เพียงทำงานได้ดีทั้งใน Internet Explorer 7 และ Internet Explorer 11 แต่ยังต้องใช้รหัสน้อย
นี่คือเรื่องของฉันในเรื่อง มันจะใช้งานได้ถ้าคอนเทนเนอร์มีขนาดที่ระบุ ( max-width
และmax-height
ดูเหมือนจะไม่เข้ากับคอนเทนเนอร์ที่ไม่มีขนาดที่เป็นรูปธรรม) แต่ฉันเขียนเนื้อหา CSS ในวิธีที่อนุญาตให้นำกลับมาใช้ใหม่ได้ (เพิ่มpicture-frame
คลาส และpx125
ขนาดคลาสของคอนเทนเนอร์ที่มีอยู่ของคุณ)
ใน CSS:
.picture-frame
{
vertical-align: top;
display: inline-block;
text-align: center;
}
.picture-frame.px125
{
width: 125px;
height: 125px;
line-height: 125px;
}
.picture-frame img
{
margin-top: -4px; /* Inline images have a slight offset for some reason when positioned using vertical-align */
max-width: 100%;
max-height: 100%;
display: inline-block;
vertical-align: middle;
border: 0; /* Remove border on images enclosed in anchors in Internet Explorer */
}
และในรูปแบบ HTML:
<a href="#" class="picture-frame px125">
<img src="http://i.imgur.com/lesa2wS.png"/>
</a>
การสาธิต
/* Main style */
.picture-frame
{
vertical-align: top;
display: inline-block;
text-align: center;
}
.picture-frame.px32
{
width: 32px;
height: 32px;
line-height: 32px;
}
.picture-frame.px125
{
width: 125px;
height: 125px;
line-height: 125px;
}
.picture-frame img
{
margin-top: -4px; /* Inline images have a slight offset for some reason when positioned using vertical-align */
max-width: 100%;
max-height: 100%;
display: inline-block;
vertical-align: middle;
border: 0; /* Remove border on images enclosed in anchors in Internet Explorer */
}
/* Extras */
.picture-frame
{
padding: 5px;
}
.frame
{
border:1px solid black;
}
<p>32px</p>
<a href="#" class="picture-frame px32 frame">
<img src="http://i.imgur.com/lesa2wS.png"/>
</a>
<a href="#" class="picture-frame px32 frame">
<img src="http://i.imgur.com/kFMJxdZ.png"/>
</a>
<a href="#" class="picture-frame px32 frame">
<img src="http://i.imgur.com/BDabZj0.png"/>
</a>
<p>125px</p>
<a href="#" class="picture-frame px125 frame">
<img src="http://i.imgur.com/lesa2wS.png"/>
</a>
<a href="#" class="picture-frame px125 frame">
<img src="http://i.imgur.com/kFMJxdZ.png"/>
</a>
<a href="#" class="picture-frame px125 frame">
<img src="http://i.imgur.com/BDabZj0.png"/>
</a>
แก้ไข: การปรับปรุงเพิ่มเติมที่เป็นไปได้โดยใช้ JavaScript (อัปสเกลภาพ):
function fixImage(img)
{
var $this = $(img);
var parent = $this.closest('.picture-frame');
if ($this.width() == parent.width() || $this.height() == parent.height())
return;
if ($this.width() > $this.height())
$this.css('width', parent.width() + 'px');
else
$this.css('height', parent.height() + 'px');
}
$('.picture-frame img:visible').each(function
{
if (this.complete)
fixImage(this);
else
this.onload = function(){ fixImage(this) };
});