සරල අර්ධ විනිවිද පෙනෙන පසුබිම් වර්ණයක් සඳහා, ඉහත විසඳුම් (CSS3 හෝ bg රූප) හොඳම විකල්ප වේ. කෙසේ වෙතත්, ඔබට රසිකයෙක් (උදා: සජීවිකරණය, බහු පසුබිම් ආදිය) කිරීමට අවශ්ය නම්, හෝ ඔබට 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>
පිටත කවුළු මූලද්රව්යයේ ඇතුළත “ස්ථර” දෙකක් භාවිතා කරමින් තාක්ෂණය ක්රියාත්මක වේ:
- අන්තර්ගත ප්රවාහයට කිසිදු බලපෑමක් නොකර කවුළු මූලද්රව්යයේ ප්රමාණයට ගැලපෙන එකක් (“පිටුපස”),
- සහ එකක් (“cont”) අන්තර්ගතය අඩංගු වන අතර කවුළුවෙහි ප්රමාණය තීරණය කිරීමට උපකාරී වේ.
මෙම position: relative
කවුළුව මත වැදගත් ය; එය පිටුපස ස්ථරයට කවුළුවෙහි ප්රමාණයට ගැලපෙන ලෙස පවසයි. (ඔබට <p>
ටැගය නිරපේක්ෂ වීමට අවශ්ය නම් , කවුළුව a <p>
සිට a දක්වා වෙනස් කර ඒ <span>
සියල්ල නිරපේක්ෂ ස්ථානගත <p>
ටැගයකින් ඔතා තබන්න .)
මෙම ක්රමයට ඉහත ලැයිස්තුගත කර ඇති සමාන ඒවාට වඩා ඇති ප්රධාන වාසිය නම් කවුළුව නිශ්චිත ප්රමාණයක් නොවිය යුතුය; ඉහත කේතනය කර ඇති පරිදි, එය සම්පූර්ණ පළලට (සාමාන්ය බ්ලොක්-මූලද්රව්ය පිරිසැලසුමට) ගැලපෙන අතර අන්තර්ගතය තරම් ඉහළ අගයක් ගනී. පිටත කවුළු මූලද්රව්යය සෘජුකෝණාස්රාකාර වන තාක් ඔබ කැමති ඕනෑම ආකාරයකින් ප්රමාණ කළ හැකිය (එනම් ඉන්ලයින්-බ්ලොක් ක්රියා කරයි; සරල-පැරණි පේළිය ක්රියා නොකරනු ඇත).
එසේම, එය ඔබට පසුබිම සඳහා විශාල නිදහසක් ලබා දෙයි; ඔබට පිටුපස මූලද්රව්යයට ඕනෑම දෙයක් තැබීමට නිදහස ඇති අතර එය අන්තර්ගත ප්රවාහයට බලපාන්නේ නැත (ඔබට සම්පූර්ණ ප්රමාණයේ උප ස්ථර කිහිපයක් අවශ්ය නම්, ඒවාටද ස්ථානයක් ඇති බවට වග බලා ගන්න: නිරපේක්ෂ, පළල / උස: 100%, සහ ඉහළ / පහළ / වමේ / දකුණ: ස්වයංක්රීය).
පසුබිම් පරිවාරක ගැලපුමට (ඉහළ / පහළ / වමේ / දකුණ හරහා) සහ / හෝ පසුබිම් පින් කිරීම (වමේ / දකුණේ හෝ ඉහළ / පහළ යුගල වලින් එකක් ඉවත් කිරීමෙන්) පහත දැක්වෙන CSS භාවිතා කිරීම:
.pane > .back {
position: absolute;
width: auto; height: auto;
top: 0px; bottom: 0px; left: 0px; right: 0px;
}
ලියා ඇති පරිදි, මෙය ෆයර්ෆොක්ස්, සෆාරි, ක්රෝම්, අයිඊ 8 + සහ ඔපෙරා වල ක්රියා කරයි, අයිඊ 7 සහ අයිඊ 6 සඳහා අතිරේක සීඑස්එස් සහ ප්රකාශන අවශ්ය වුවද අයිආර්සී, අවසන් වරට මා පරීක්ෂා කළ විට දෙවන සීඑස්එස් විචලනය ඔපෙරා හි ක්රියා නොකරයි.
අවධානයෙන් සිටිය යුතු දේවල්:
- සම ස්ථරයේ ඇතුළත පාවෙන මූලද්රව්ය අඩංගු නොවේ. ඒවා නිෂ්කාශනය වී ඇත්දැයි හෝ වෙනත් ආකාරයකින් අන්තර්ගත වී ඇති බවට ඔබට සහතික විය යුතුය, නැතහොත් ඒවා පහතින් ලිස්සා යනු ඇත.
- ආන්තිකයන් කවුළු මූලද්රව්යය මතට යන අතර පෑඩින් කිරීම මූලද්රව්යයට යයි. ප්රතිවිරුද්ධ දෙය භාවිතා නොකරන්න (පිටුවේ මායිම් හෝ කවුළුවෙහි පෑඩින් කිරීම) හෝ පිටුව සෑම විටම බ්රව්සර් කවුළුවට වඩා තරමක් පළල් වීම වැනි අමුතුකම් ඔබ සොයා ගනු ඇත.
- සඳහන් කළ පරිදි, සියල්ලම අවහිර කිරීම හෝ පේළිගත කිරීම අවශ්ය වේ. ඔබේ CSS සරල කිරීම සඳහා
<div>
s වෙනුවට s භාවිතා කිරීමට නිදහස් <span>
වන්න.
සම්පුර්ණ නිරූපණයක්, මෙම තාක්ෂණය සමඟ නම්යශීලී බව පෙන්වමින් එය 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>
පුළුල් ලෙස භාවිතා වන තාක්ෂණයේ සජීවී නිරූපණයක් මෙන්න :