আসল উত্তর:
আপনি যদি CSS3 এর জন্য অপ্ট করতে প্রস্তুত হন তবে আপনি CSS3 অনুবাদ সম্পত্তি ব্যবহার করতে পারেন। যা বড় তা নির্ভর করে আকার পরিবর্তন করুন। আপনার উচ্চতা যদি বড় এবং প্রস্থের ধারকের চেয়ে ছোট হয়, প্রস্থটি প্রসারিত হবে 100% এবং উচ্চতা উভয় দিক থেকে ছাঁটা হবে। একই বৃহত্তর প্রস্থ জন্য যায়।
আপনার প্রয়োজন, এইচটিএমএল:
<div class="img-wrap">
<img src="http://lorempixel.com/300/160/nature/" />
</div>
<div class="img-wrap">
<img src="http://lorempixel.com/300/200/nature/" />
</div>
<div class="img-wrap">
<img src="http://lorempixel.com/200/300/nature/" />
</div>
এবং সিএসএস:
.img-wrap {
width: 200px;
height: 150px;
position: relative;
display: inline-block;
overflow: hidden;
margin: 0;
}
div > img {
display: block;
position: absolute;
top: 50%;
left: 50%;
min-height: 100%;
min-width: 100%;
transform: translate(-50%, -50%);
}
ভয়েলা! কাজ করছে: http://jsfiddle.net/ Shekhardesigner / aYrhG/
ব্যাখ্যা
ডিআইভি relativeপজিশনে সেট করা আছে । এর অর্থ এই ডিআইভিটি যেখান থেকে শুরু হয় সমস্ত শিশু উপাদান সূচনা স্থানাঙ্ক (উত্স) পাবে।
চিত্রটি একটি ব্লক উপাদান হিসাবে min-width/heightসেট করা আছে , উভয়ই সেট করা 100% এর চিত্রটি এর আকারের বিবেচনা না করে তার পিতামাতার ন্যূনতম 100% হওয়া উচিত। minচাবিকাঠি যদি ন্যূনতম উচ্চতা দ্বারা হয় তবে চিত্রের উচ্চতা পিতামাতার উচ্চতা ছাড়িয়ে গেছে, কোনও সমস্যা নেই। এটি ন্যূনতম প্রস্থের জন্য অনুসন্ধান করবে এবং ন্যূনতম উচ্চতাটি 100% পিতামাতার হতে সেট করার চেষ্টা করবে। দুজনেই তদ্বিপরীত হয়। এটি নিশ্চিত করে যে ডিভের চারপাশে কোনও ফাঁক নেই তবে চিত্র সর্বদা কিছুটা বড় এবং এর দ্বারা ছাঁটা হয়overflow:hidden;
এখন image, এটি এবং এর absoluteসাথে একটি অবস্থানে সেট করা আছে । অর্থটি ডিআইভি থেকে উত্স নেওয়া হয়েছে তা নিশ্চিত করে উপর থেকে এবং বাম দিক থেকে চিত্রটি 50% ঠেলা দেয়। বাম / শীর্ষ ইউনিটগুলি পিতামাতার কাছ থেকে পরিমাপ করা হয়।left:50%top:50%
যাদু মুহূর্ত:
transform: translate(-50%, -50%);
এখন, translateCSS3 বৈশিষ্ট্যের এই ফাংশনটি transformপ্রশ্নে থাকা একটি উপাদানকে সরায় / প্রতিস্থাপন করে। এই সম্পত্তিটি প্রয়োগকৃত উপাদানগুলির সাথে কাজ করে তাই মানগুলি (x, y) বা (-50%, -50%) অর্থ চিত্রের নেতিবাচক বামটিকে চিত্রের 50% দ্বারা সরিয়ে নিয়ে ইমেজ আকারের 50% দ্বারা নেতিবাচক শীর্ষে স্থানান্তরিত করতে পারে ।
যেমন যদি চিত্রের আকার 200px × 150px হয়, transform:translate(-50%, -50%)তা অনুবাদ করতে গণনা করা হবে (-100px, -75px)। % ইউনিট সাহায্য করে যখন আমাদের বিভিন্ন আকারের চিত্র থাকে।
চিত্র এবং পিতামাতার ডিআইভির সেন্ট্রয়েড বের করার এবং তাদের সাথে মেলে দেখার এটি কেবল একটি কৌশল way
ব্যাখ্যা করতে খুব বেশি সময় লাগার জন্য দুঃখিত!
আরও পড়ার সংস্থান:
background-size: cover;?