সম্পাদনা করুন: পূর্ববর্তী টেবিল-ভিত্তিক চিত্রের অবস্থানটি ইন্টারনেট এক্সপ্লোরার 11 এ সমস্যা ছিল ( উপাদানগুলিতে max-height
কাজ করে না display:table
)। আমি এটিকে ইনলাইন ভিত্তিক পজিশনিংয়ের সাথে প্রতিস্থাপন করেছি যা কেবলমাত্র ইন্টারনেট এক্সপ্লোরার 7 এবং ইন্টারনেট এক্সপ্লোরার 11-এ কার্যকর হয় না, তবে এর জন্য কম কোডও প্রয়োজন less
এই বিষয়ে আমার গ্রহণ করা হয়। এটি কেবল তখনই কাজ করবে যখন ধারকটির একটি নির্দিষ্ট আকার থাকে ( max-width
এবং max-height
কন্ট্রাকের আকার নাযুক্ত পাত্রে সেগুলি পেতে মনে হয় না) তবে আমি সিএসএস সামগ্রীটি এমনভাবে লিখেছি যাতে এটি পুনরায় ব্যবহারের সুযোগ দেয় ( picture-frame
শ্রেণি যুক্ত করুন) এবং px125
আপনার বিদ্যমান পাত্রে আকার বর্গ)।
সিএসএসে:
.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 */
}
এবং এইচটিএমএলে:
<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>
সম্পাদনা করুন: জাভাস্ক্রিপ্ট ব্যবহার করে আরও উন্নতি করা (চিত্রগুলি উপুড় করে):
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) };
});