একটি সাধারণ আধা-স্বচ্ছ পটভূমির রঙের জন্য, উপরের সমাধানগুলি (সিএসএস 3 বা বিজি চিত্র) সেরা বিকল্প। তবে, আপনি যদি কিছু ফ্যানসিয়ার করতে চান (যেমন অ্যানিমেশন, একাধিক ব্যাকগ্রাউন্ড ইত্যাদি), বা আপনি CSS3 এ নির্ভর করতে না চান, আপনি "ফলক কৌশল" চেষ্টা করতে পারেন:
.pane, .pane > .back, .pane > .cont { display: block; }
.pane {
position: relative;
}
.pane > .back {
position: absolute;
width: 100%; height: 100%;
top: auto; bottom: auto; left: auto; right: auto;
}
.pane > .cont {
position: relative;
z-index: 10;
}
<p class="pane">
<span class="back" style="background-color: green; opacity: 0.6;"></span>
<span class="cont" style="color: white;">Hello world</span>
</p>
কৌশলটি বাইরের ফলকের উপাদানটির ভিতরে দুটি "স্তর" ব্যবহার করে কাজ করে:
- এক ("পিছনে") যা সামগ্রীর প্রবাহকে প্রভাবিত না করে ফলকের উপাদানটির আকারের সাথে ফিট করে,
- এবং একটি ("কনটেন্ট") এতে সামগ্রী রয়েছে এবং ফলকের আকার নির্ধারণে সহায়তা করে।
position: relative
ফলকে গুরুত্বপূর্ণ; এটি পিছনের স্তরটিকে ফলকের আকারের সাথে ফিট করতে বলে। (আপনি প্রয়োজন <p>
ট্যাগ পরম হতে, A থেকে পেন পরিবর্তন <p>
একটি থেকে <span>
এবং সমস্ত মোড়ানো একটি একেবারে অবস্থানে রয়েছে এমন যে <p>
ট্যাগ।)
এই কৌশলটির উপরে উল্লিখিত অনুরূপগুলির চেয়ে বেশি প্রধান সুবিধাটি হ'ল ফলকটি একটি নির্দিষ্ট আকারের হতে হবে না; উপরে কোড করা হিসাবে এটি পুরো-প্রস্থে (স্বাভাবিক ব্লক-উপাদান লেআউট) ফিট করবে এবং কেবলমাত্র সামগ্রীর মতোই উচ্চতর হবে। বাহ্যিক ফলক উপাদানটি আপনি যে কোনও ভাবেই আকার দিতে পারেন, যতক্ষণ না এটি আয়তক্ষেত্রাকার হয় (যেমন ইনলাইন-ব্লক কাজ করবে; প্লেইন-পুরাতন ইনলাইনটি কাজ করবে না)।
এছাড়াও, এটি আপনাকে পটভূমির জন্য অনেক স্বাধীনতা দেয়; আপনি পিছনে উপাদানগুলিতে সত্যিই কিছু রাখতে পারেন এবং এটি সামগ্রীর প্রবাহকে প্রভাবিত না করে (আপনি যদি একাধিক পূর্ণ-আকারের উপ-স্তর চান তবে কেবল তাদেরও অবস্থান আছে তা নিশ্চিত করুন: পরম, প্রস্থ / উচ্চতা: 100%, এবং উপরে / নীচে / বাম / ডান: স্বয়ংক্রিয়)।
ব্যাকগ্রাউন্ড ইনসেট অ্যাডজাস্টমেন্ট (উপরে / নীচে / বাম / ডান মাধ্যমে) এবং / অথবা ব্যাকগ্রাউন্ড পিনিং (বাম / ডান বা উপরে / নীচের অংশগুলির মধ্যে একটি অপসারণের মাধ্যমে) এর পরিবর্তে নিম্নলিখিত সিএসএস ব্যবহার করার জন্য একটি প্রকরণ:
.pane > .back {
position: absolute;
width: auto; height: auto;
top: 0px; bottom: 0px; left: 0px; right: 0px;
}
যেমনটি লেখা আছে, এটি ফায়ারফক্স, সাফারি, ক্রোম, আইই 8 + এবং অপেরাতে কাজ করে, যদিও আই 7 এবং আই 6 এর জন্য অতিরিক্ত সিএসএস এবং এক্সপ্রেশন, আইআইআরসি প্রয়োজন, এবং শেষবার আমি যাচাই করেছিলাম, দ্বিতীয় সিএসএসের ভিন্নতা অপেরাতে কাজ করে না।
দেখার জন্য বিষয়গুলি:
- কনট লেয়ারের ভিতরে ভাসমান উপাদানগুলি থাকবে না। আপনার সেগুলি সাফ হয়ে গেছে বা অন্যথায় রয়েছে কিনা তা নিশ্চিত করতে হবে, বা সেগুলি নীচে থেকে সরে যাবে।
- মার্জিনগুলি ফলকের উপাদানটিতে যায় এবং প্যাডিংগুলি কনটেন্ট উপাদানগুলিতে যায়। বিপরীতটি ব্যবহার করবেন না (কনট্রোল্টের উপর মার্জিনগুলি বা ফলকে প্যাডিং করা) অথবা আপনি বিজোড়গুলি আবিষ্কার করতে পারবেন যেমন পৃষ্ঠাটি সর্বদা ব্রাউজার উইন্ডোর থেকে কিছুটা প্রশস্ত থাকে।
- উল্লিখিত হিসাবে, পুরো জিনিসটি ব্লক বা ইনলাইন-ব্লক হওয়া দরকার। ব্যবহার নির্দ্বিধায়
<div>
s এর পরিবর্তে <span>
s আপনার সিএসএস প্রক্রিয়া সহজ করার জন্য।
একটি পূর্ণাঙ্গ ডেমো, টমটম এটা ব্যবহার করে এই প্রযুক্তিটির flexiblity লোক দেখানো display: inline-block
, এবং উভয় সঙ্গে auto
& নির্দিষ্ট width
S / min-height
S:
.pane, .pane > .back, .pane > .cont { display: block; }
.pane {
position: relative;
width: 175px; min-height: 100px;
margin: 8px;
}
.pane > .back {
position: absolute; z-index: 1;
width: auto; height: auto;
top: 8px; bottom: 8px; left: 8px; right: 8px;
}
.pane > .cont {
position: relative; z-index: 10;
}
.debug_red { background: rgba(255, 0, 0, 0.5); border: 1px solid rgba(255, 0, 0, 0.75); }
.debug_green { background: rgba(0, 255, 0, 0.5); border: 1px solid rgba(0, 255, 0, 0.75); }
.debug_blue { background: rgba(0, 0, 255, 0.5); border: 1px solid rgba(0, 0, 255, 0.75); }
<p class="pane debug_blue" style="float: left;">
<span class="back debug_green"></span>
<span class="cont debug_red">
Pane content.<br/>
Pane content.
</span>
</p>
<p class="pane debug_blue" style="float: left;">
<span class="back debug_green"></span>
<span class="cont debug_red">
Pane content.<br/>
Pane content.<br/>
Pane content.<br/>
Pane content.<br/>
Pane content.<br/>
Pane content.<br/>
Pane content.<br/>
Pane content.<br/>
Pane content.
</span>
</p>
<p class="pane debug_blue" style="float: left; display: inline-block; width: auto;">
<span class="back debug_green"></span>
<span class="cont debug_red">
Pane content.<br/>
Pane content.
</span>
</p>
<p class="pane debug_blue" style="float: left; display: inline-block; width: auto; min-height: auto;">
<span class="back debug_green"></span>
<span class="cont debug_red">
Pane content.<br/>
Pane content.
</span>
</p>
এবং এখানে কৌশলটির একটি লাইভ ডেমো ব্যাপকভাবে ব্যবহৃত হচ্ছে: