පසුබිම තුළ CSS රූපයක් දිගු කර පරිමාණය කරන්න - CSS සමඟ පමණි


864

බ්‍රව්සර් දර්ශනපත්‍රයේ ප්‍රමාණය අනුව මගේ පසුබිම් රූපය දිගු කර පරිමාණය කිරීමට මට අවශ්‍යය.

නිදසුනක් ලෙස ස්ට්‍රෙච් සහ පරිමාණ CSS පසුබිම වැනි කාර්යය කරන ස්ටැක් පිටාර ගැලීම් පිළිබඳ ප්‍රශ්න කිහිපයක් මම දැක ඇත්තෙමි . එය හොඳින් ක්‍රියාත්මක වේ, නමුත් මට අවශ්‍ය වන්නේ ටැගය backgroundසමඟ නොව රූපය භාවිතා කිරීමයි img.

එහි එක් imgටැගයක් තබා ඇති අතර, පසුව CSS සමඟ අපි ටැගයට උපහාර දක්වමු img.

width:100%; height:100%;

එය ක්‍රියාත්මක වන නමුත් එම ප්‍රශ්නය ටිකක් පැරණි වන අතර CSS 3 හි පසුබිම් රූපයක් ප්‍රතිප්‍රමාණනය කිරීම ඉතා හොඳින් ක්‍රියාත්මක වන බව සඳහන් කරයි. මම මෙම උදාහරණය පළමුවැන්න අත්හදා බැලුවෙමි , නමුත් එය මට සාර්ථක වූයේ නැත.

background-imageප්රකාශය සමඟ එය කිරීමට හොඳ ක්රමයක් තිබේද?


118
පසුබිම් ප්‍රමාණය: 100% 100%;
ඇන්ඩ්‍රියාස් එල්.

6
සමහර විට මෙම නිරූපණය ප්‍රයෝජනවත් විය හැකිය: w3schools.com/cssref/…
ඩේවිඩ්


Lex ඇලෙක්ස්ඇන්ගාස් ප්‍රශ්නයේ වයස සාධකයක් නොවිය යුතුද? මෙය මීට වසර 6 කට පෙර විමසන ලද අතර ඔබ පෙන්වා දුන් ප්‍රශ්නය මීට වසර 4 කට පෙර විමසන ලදි.
ෆෙබියෝ ඇන්ටියුන්ස්

@ FábioAntunes IMHO අපට හොඳම පිළිතුරු සමඟ ප්‍රශ්නය වසා දැමීමට අවශ්‍ය නොවන අතර ඒ වෙනුවට අනුපිටපත් එයට සම්බන්ධ වීමට උනන්දු කරන්න. මට විශ්වාසයි මෙය මෙටා හි සාකච්ඡා කරනු ඇති නමුත් මට දැන් එය සොයාගත නොහැක ...
ඇලෙක්ස් අංගස්

Answers:


1065

CSS3 සතුව ලස්සන කුඩා ලක්ෂණයක් background-size:coverඇත.

දර්ශන අනුපාතය පවත්වා ගනිමින් පසුබිම් ප්‍රදේශය පසුබිම් රූපයෙන් සම්පූර්ණයෙන්ම ආවරණය වන පරිදි මෙය රූපය පරිමාණය කරයි. මුළු ප්රදේශයම ආවරණය වනු ඇත. කෙසේ වෙතත්, ප්‍රමාණය වෙනස් කළ රූපයේ පළල / උස විශාල නම් රූපයේ කොටසක් නොපෙනේ.


12
දර්ශන අනුපාතය නොගැලපේ නම් රූපය ආවරණය කරන්න, එබැවින් එය හොඳ පොදු විසඳුමක් නොවේ.
mahemoff

1
ඔබට එය IE බ්‍රව්සර් තුළ වැඩ කිරීමට අවශ්‍ය නම් - github.com/louisremi/background-size-polyfill
Wreeecks

5
එය ෆයර්ෆොක්ස් හි වැඩ කරන බවක් නොපෙනේ. කෙසේ වෙතත්, background-size: 100vw 100vh;උපක්රමය මනාව සිදු කරයි.
යානික් මොරේ

6
Ann යානික් මොරේ උත්සාහ කරන්න: background-size: cover; -ms-background-size: cover; -o-background-size: cover; -moz-background-size: cover; -webkit-background-size: cover;
අමිත් කුමාර් ඛාරේ

2
ඔබට මෙය අවශ්‍ය නම්, නමුත් තිරස් අක්ෂය සඳහා පමණක් මෙය භාවිතා කරන්න: background-size: 100% auto; stackoverflow.com/questions/41025630/…
antoineMoPa

470

ඔබට CSS3 දේපල භාවිතා කර එය ඉතා හොඳින් කළ හැකිය. එය අනුපාතයට වෙනස් වන බැවින් රූප විකෘති කිරීමක් සිදු නොවේ (එය කුඩා රූප ඉහළ මට්ටමක පැවතුනද). මතක තබා ගන්න, එය තවමත් සියලුම බ්‍රව්සර්වල ක්‍රියාත්මක වී නොමැත.

background-size: 100%;

20
XnXqd සම්පූර්ණ කේතය එයයි! A සමඟ කන්ටේනරයක් සාදන්න background-imageසහ ඉහත දේපල ඇතුළත් කරන්න. සඳහන් කළ පරිදි, බ්‍රව්සර් සහාය තවමත් හොඳ නැති අතර බ්‍රවුසරයේ විශේෂිත අනුවාදයන් ඇත. -webkit-background-sizeආදිය බලන්න W3C CSS3 මොඩියුලය: පසුබිම් ප්‍රමාණය සහ css3.info: පසුබිම් ප්‍රමාණය
MrWhite

16
රූපයේ දර්ශන අනුපාතය ආරක්ෂා කර ගැනීම සඳහා ඔබ "පසුබිම් ප්‍රමාණය: ආවරණය;" හෝ "පසුබිම් ප්‍රමාණය: අඩංගු;". IE8 හි එම අගයන් ක්‍රියාත්මක කරන පොලිෆිල් එකක් මා විසින් ගොඩනගා ඇත: github.com/louisremi/background-size-polyfill
Louis-Rémi

4
autoදර්ශන අනුපාතය ආරක්ෂා කිරීම සඳහා එකතු කිරීම ද සුදුසු ය .
චිබුස් ඔපටා

187

මා සඳහන් කළ කේතය භාවිතා කරමින් ...

HTML

<div id="background">
    <img src="img.jpg" class="stretch" alt="" />
</div>

CSS

#background {
    width: 100%; 
    height: 100%; 
    position: fixed; 
    left: 0px; 
    top: 0px; 
    z-index: -1; /* Ensure div tag stays behind content; -999 might work, too. */
}

.stretch {
    width:100%;
    height:100%;
}

එමඟින් අපේක්ෂිත ප්‍රති produce ලය ලැබේ: පසුබිම නොව අන්තර්ගතය පමණක් අනුචලනය වේ.

පසුබිම් රූපය ඕනෑම තිර ප්‍රමාණයක් සඳහා බ්‍රව්සර් දර්ශනපත්‍රයේ ප්‍රමාණයට වෙනස් වේ. අන්තර්ගතය බ්‍රව්සර් දර්ශනපථයට නොගැලපෙන විට සහ පරිශීලකයාට පිටුව අනුචලනය කිරීමට අවශ්‍ය වූ විට, අන්තර්ගතය අනුචලනය වන අතරතුර පසුබිම් රූපය දර්ශනපත්‍රයේ ස්ථාවරව පවතී.

CSS 3 සමඟ මෙය බොහෝ පහසු වනු ඇති බව පෙනේ.


13
නමුත් මෙය පසුබිම් රූපය නොවේ. ඔබට මෙය කළ හැක්කේ බ්ලොක් එකකට පමණි, නමුත් ආදානය [type = text] වැනි පේළිගත මූලද්‍රව්‍යයක් නොවේ. නැත්නම් මම වැරදිද?
deerchao

12
පංතිය = "දිගු කිරීම" අවශ්‍ය නොවේ, css හි හඳුනාගැනීමක් ලෙස # පසුබිම් img {use භාවිතා කරන්න
BerggreenDK

z- දර්ශකය: -1; ඔබගේ ප්‍රතිරූපය පසුබිමේ තබා ගනී. ඔබේ රූපය පෙරබිමෙහි පෙන්වීමට ඔබට අවශ්‍ය නම්, ඔබට z- දර්ශක අගය වැඩි කිරීමට හෝ එම දර්ශකය ඉවත් කිරීමට හැකිය.
gokhanakkurt

මට ඇති ගැටළුව IE8 සමඟ ය. DIV හි පසුබිම් රූපය පූර්ණ ලෙස විහිදෙන නමුත් IE8 හි රූප DIV ට පිටතින් යන බැවින් සම්පූර්ණ රූපය දැකගත නොහැක. එය කපා දමනු ලැබේ. මෙන්න මගේ ප්‍රශ්නය: stackoverflow.com/questions/22331179/…
Si8

1
මිනිසුන් කරන පැහැදිලි වැරැද්ද නම් පසුබිම් රූපය css (එනම් by background : url("example.png");) තුළට දමා ඊට පසුව css ගුණාංගය භාවිතා background-size:100%;කර රූපය තිරයේ පළල දක්වා පරිමාණයට ගෙන ඒමයි. මෙය ක්‍රියාත්මක නොවනු ඇත, එසේ වේද? ඔබ ශරීරය සඳහා පසුබිම් රූපයක් තැබීමට කැමති නම්, රූප ලක්‍ෂණයක් ශරීර ටැගයට එකතු කළ යුතුය <body background="example.png">. ඉන්පසු background-size:100%;එය පරිමාණය කිරීමට css භාවිතා කරන්න.
sjsam

168

CSS:

html,body {
    background: url(images/bg.jpg) no-repeat center center fixed;
    -webkit-background-size: cover; /* For WebKit*/
    -moz-background-size: cover;    /* Mozilla*/
    -o-background-size: cover;      /* Opera*/
    background-size: cover;         /* Generic*/
}

කෙසේ වෙතත්, මෙය IE8 හි ක්‍රියා නොකරයි. එය කවුළුවේ ඉහළ සහ පහළ ආන්තිකයක් නිර්මාණය කරයි.
erdomester

ඇන්ඩ්‍රොයිඩ් හි එය html, body {...}වෙනුවට භාවිතා කරන විට එය ක්‍රියාත්මක විය body {...}.
එඩ්වඩ්

55
background-size: 100% 100%; 

අක්ෂ දෙකෙහිම සම්පූර්ණ අංගය පිරවීම සඳහා පසුබිම දිගු කරයි.


40

පහත දැක්වෙන CSS කොටස සියලුම බ්‍රව්සර් සමඟ රූපය දිගු කළ යුතුය.

සෑම පිටුවකටම මම මෙය ගතිකව කරමි. එබැවින් සෑම පිටුවකටම තමන්ගේම HTML ටැගයක් ජනනය කිරීමට මම PHP භාවිතා කරමි. සියලුම පින්තූර 'රූප' ෆෝල්ඩරයේ ඇති අතර අවසන් වන්නේ 'Bg.jpg' සමඟ ය.

<html style="
      background: url(images/'.$pic.'Bg.jpg) no-repeat center center fixed;
      -webkit-background-size: cover;
      -moz-background-size: cover;
      -o-background-size: cover;
      background-size: cover;
      filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'images/'.$pic.'Bg.jpg\',     sizingMethod=\'scale\');
      -ms-filter: \"progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'images/'.$pic.'Bg.jpg\', sizingMethod=\'scale\')\
";>

ඔබට සියලු පිටු සඳහා ඇත්තේ එක් පසුබිම් පින්තූරයක් නම් ඔබට $picවිචල්‍යය ඉවත් කළ හැකිය , පසු-කප්පාදුව ඉවත් කර, මාර්ග සකස් කර මෙම කේතය ඔබේ CSS ගොනුවේ තබන්න.

html{
    background: url(images/homeBg.jpg) no-repeat center center fixed;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/homeBg.jpg',     sizingMethod='scale');
    -ms-filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/homeBg', sizingMethod='scale');
}

ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 9, ක්‍රෝම් 21 සහ ෆයර්ෆොක්ස් 14 සමඟ මෙය පරීක්ෂා කරන ලදී.


2
ඔබේ උදාහරණය පසුගාමී අනුකූලතාවයේ අර්ථයෙන් ක්‍රියා නොකරයි, මන්ද ඔබට විකුණුම්කරුවන්ගේ උපසර්ගවල ප්‍රමුඛ '-' ගැන අමතක වී ඇත. එය විය යුතුය -webkit-background-size, -moz-background-sizeසහ එසේ ය. ශුද්ධාසනයේ developer.mozilla.org/en-US/docs/CSS/... නැත්නම් ඔබ අත්හදා බැලීම් සිදුකිරීමට දේපල එය අනාගත-සාක්ෂි වැනි ඇතුළු සඳහා යන්නbackground: url(img/bg-home.jpg) no-repeat center center / cover fixed;
Volker ඊ

IE9 හි මට වැඩ කළ හැකි එකම විසඳුම මෙයයි. ස්තූතියි.
රොබ්නික්

18

මෙම CSS භාවිතා කරන්න:

background: url('img.png') no-repeat; 
background-size: 100%;

17

ඔබට ඇත්ත වශයෙන්ම img ටැගය සමඟ පසුබිම් රූපයක් ලෙස සමාන බලපෑමක් ලබා ගත හැකිය. ඔබට එහි z- දර්ශකය සියල්ලටම වඩා පහත් කොට, පිහිටීම සකසා ගත යුතුය: නිරපේක්ෂ සහ පෙරබිමෙහි ඇති සෑම පෙට්ටියක් සඳහාම විනිවිද පෙනෙන පසුබිමක් භාවිතා කරන්න.


අනෙක් අය තුළ මා දුටු දේ SO ප්‍රශ්න, සහ ක්‍රියා කරයි, නමුත් CSS3 එළියට එන බැවින්, මම සිතුවේ දැන් එයට වඩා හොඳ ක්‍රමයක් ඇති බවයි.
Fábio Antunes

4
බ්‍රව්සර් භාවිතයේ වර්ධනයන් සැලකිල්ලට ගෙන ඔබට ඒවා වාණිජමය වශයෙන් භාවිතා කළ හැක්කේ වසර 10 ක් තුළද?
කිම් ස්ටෙබෙල්

CSS3 වීම නිසා, නවීන බ්‍රව්සර් දකින දේපලක් භාවිතා කිරීම සහ සහාය නොදක්වන බ්‍රව්සර් සඳහා අවම ප්‍රමිතියක් ලබා දීමේ කිසිදු වරදක් නොමැත. මෙන්න, උදාහරණයක් ලෙස, ඔබට <IE8 සඳහා කම්මැලි නමුත් පිළිගත හැකි ටයිල් කළ පසුබිමක් සහ ෆයර්ෆොක්ස් / ක්‍රෝම් / සෆාරි / ඔපෙරා සඳහා සුන්දර පින්තූරයක් භාවිතා කළ හැකිය. එසේම, පැරණි බ්‍රව්සර්වල ජාවාස්ක්‍රිප්ට් සමඟ CSS3 ක්‍රියාකාරිත්වය අනුකරණය කිරීමට බොහෝ පොලිෆිල්ස් ඇත. වෙනත් වචන වලින් කිවහොත්, සෑම බ්‍රව්සරයක්ම CSS3 භාවිතා කිරීම සඳහා සහය දක්වන තෙක් ඔබ බලා සිටිය යුතු නැත.
ඩෑන් බ්ලූස්

හිමිකාර MS ඇල්ෆා ඉමේජ්ලොඩර්ගේ භාවිතය ගැන සඳහන් කරන මෙම අනෙක් පෝස්ට් එක හමු විය: stackoverflow.com/questions/2991623/…
uglymunky

15

එය CSS උපක්‍රම මගින් පැහැදිලි කර ඇත: පරිපූර්ණ සම්පූර්ණ පිටු පසුබිම් රූපය

ආදර්ශනය: https://css-tricks.com/examples/FullPageBackgroundImage/progressive.php

කේතය:

body {
  background: url(images/myBackground.jpg) no-repeat center center fixed;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

ඉහත පිළිතුර මත පදනම්ව, පසුබිම් ඇමුණුම් නිවැරදි කිරීම ජංගම උපාංගවල සහ මයික්‍රොසොෆ්ට් අද්දර ක්‍රියා නොකරන බව මම දැක ඇත්තෙමි. සියලුම උපාංග සහ බ්‍රව්සර් වල පසුබිම දිගු කර නිවැරදි කිරීමට හොඳම විසඳුම මම නිර්දේශ කරමි jquery-backstretch.com
අමීර් ෂාසාඩ්

15

ඔබට මෙම පන්තිය ඔබේ CSS ගොනුවට එක් කළ හැකිය.

.stretch {
    background: url(images/bg.jpg) no-repeat center center fixed;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}

එය ක්‍රියාත්මක වන්නේ:

  • සෆාරි 3 හෝ ඊට පසු
  • ක්‍රෝම් කුමක් හෝ පසුව
  • ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 9 හෝ ඊට පසු
  • ඔපෙරා 10 හෝ ඊට පසු (ඔපෙරා 9.5 සහය දක්වයි background-size, නමුත් මූල පද නොවේ)
  • ෆයර්ෆොක්ස් 3.6 හෝ ඊට පසු (ෆයර්ෆොක්ස් 4 විකුණුම්කරු නොවන උපසර්ග අනුවාදයට සහය දක්වයි)

මෙය ක්‍රියාකාරී “ගැළපෙන පරිදි දිගු කිරීම” පිළිතුරකි. සටහන: දර්ශන අනුපාතය වෙනස් වේ.
devdrc

10

බහාලුම් ප්‍රමාණය මත පදනම්ව ඔබේ රූප නිසි ලෙස පරිමාණය කිරීම සඳහා, පහත සඳහන් දෑ භාවිතා කරන්න:

background-size: contain;
background-repeat: no-repeat;

9

මම මෙය භාවිතා කරන අතර එය සියලු බ්‍රව්සර් සමඟ ක්‍රියා කරයි:

<html>
    <head>
        <title>Stretched Background Image</title>
        <style type="text/css">
            /* Remove margins from the 'html' and 'body' tags, and ensure the page takes up full screen height. */
            html, body {height:100%; margin:0; padding:0;}

            /* Set the position and dimensions of the background image. */
            #page-background {position:fixed; top:0; left:0; width:100%; height:100%;}

            /* Specify the position and layering for the content that needs to appear in front of the background image. Must have a higher z-index value than the background image. Also add some padding to compensate for removing the margin from the 'html' and 'body' tags. */
            #content {position:relative; z-index:1; padding:10px;}
        </style>
        <!-- The above code doesn't work in Internet Explorer 6. To address this, we use a conditional comment to specify an alternative style sheet for IE 6. -->
        <!--[if IE 6]>
        <style type="text/css">
            html {overflow-y:hidden;}
            body {overflow-y:auto;}
            #page-background {position:absolute; z-index:-1;}
            #content {position:static;padding:10px;}
        </style>
        <![endif]-->
    </head>
    <body>
        <div id="page-background"><img src="http://www.quackit.com/pix/milford_sound/milford_sound.jpg" width="100%" height="100%" alt="Smile"></div>
        <div id="content">
            <h2>Stretch that Background Image!</h2>
            <p>This text appears in front of the background image. This is because we've used CSS to layer the content in front of the background image. The background image will stretch to fit your browser window. You can see the image grow and shrink as you resize your browser.</p>
            <p>Go on, try it - resize your browser!</p>
        </div>
    </body>
</html>

9

ස්තූතියි!

නමුත් පසුව එය ගූගල් ක්‍රෝම් සහ සෆාරි බ්‍රව්සර් සඳහා ක්‍රියා නොකරයි (දිගු කිරීම වැඩ කරන නමුත් පින්තූරවල උස මි.මී. 2 ක් පමණි!) , යමෙකු මට අඩුපාඩු මොනවාදැයි පවසන තුරු:

සැකසීමට උත්සාහ කරන්න height:auto;min-height:100%;

එබැවින් ඔබේ height:100%;රේඛාව සඳහා එය වෙනස් කරන්න ,

#### #background {
    width: 100%; 
    height: 100%; 
    position: fixed; 
    left: 0px; 
    top: 0px; 
    z-index: -1;
}

.stretch {
    width:100%;
    height:auto;
    min-height:100%;
}

අලුතින් එකතු කරන ලද කේතයට පෙර මගේ Drupal Tendu තේමාවන්හි මෙය තිබේ style.css:

html, ශරීරය {උස: 100%;}

# පිටුව {පසුබිම: #ffffff; උස: ස්වයංක්‍රීය! වැදගත්; උස: 100%; අවම උස: 100%; පිහිටීම: සාපේක්ෂ;}

එකතු කරන අතරතුර මට පින්තූරය සමඟ Drupal තුළ නව බ්ලොක් එකක් සෑදිය යුතුය class=stretch:

<img alt = "" class = "දිගු" src = "pic.url" />

එම Drupal කොටසෙහි සංස්කාරකය සමඟ පින්තූරයක් පිටපත් කිරීම ක්‍රියා නොකරයි; යමෙකුට සංස්කාරකය ආකෘතිගත නොකළ පෙළකට වෙනස් කළ යුතුය.


8

100% පළල සහ උස සමඟ නිරපේක්ෂ බෙදීම් සහිත රූපය සමඟ මම එකඟ වෙමි. ඔබ ශරීරය සඳහා 100% පළල සහ උස CSS තුළ තබා ඇති බවට වග බලා ගන්න. මෙම ක්‍රමය සමඟ ඔබ සොයා ගන්නා තවත් ගැටළුවක් නම්, පෙළ තෝරාගැනීමේදී, තේරීම් ප්‍රදේශයට සමහර විට පසුබිම් රූපය ඇතුළත් විය හැකි අතර, එය සම්පූර්ණ පිටුව තෝරාගත් තත්වයට පත්කිරීමේ අවාසනාවන්ත බලපෑමක් ඇති කරයි. user-select:noneCSS රීතිය භාවිතා කිරීමෙන් ඔබට මෙය වටහා ගත හැකිය :

<html>
    <head>
        <style type="text/css">

            html,body {
                height: 100%;
                width: 100%
                margin: none;
                padding: none;
            }

            #background {
                width: 100%;
                height: 100%;
                position: fixed;
                left: 0px;
                top: 0px;
                z-index: -99999;
                -webkit-user-select: none;
                -khtml-user-select: none;
                -moz-user-select: none;
                -o-user-select: none;
                user-select: none;
            }

            #background img {
                width: 100%;
                height: 100%;
            }

            #main{ z-index:10;}
        </style>
    </head>
    <body>
        <div id="main">
            content here
        </div>
        <div id="background"><img src="bg.jpg"></div>
    </body>
</html>

නැවතත්, ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් මෙහි නරක පුද්ගලයා වේ, මන්ද එය පරිශීලක තේරීමේ විකල්පය හඳුනා නොගන්නා හෙයිනි - ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 10 පෙරදසුන පවා එයට සහය නොදක්වයි, එබැවින් පසුබිම් රූප තෝරා ගැනීම වැළැක්වීම සඳහා ඔබට ජාවාස්ක්‍රිප්ට් භාවිතා කිරීමේ අවස්ථාව ඇත (නිදසුනක් ලෙස, http : //www.felgall.com/jstip35.htm ) හෝ CSS 3 පසුබිම්-දිගු කිරීමේ ක්‍රමය භාවිතා කිරීම.

එසේම, SEO සඳහා මම පසුබිම් රූපය පිටුවේ පහළට තබමි, නමුත් පසුබිම් රූපය පැටවීමට වැඩි කාලයක් ගත වුවහොත් (එනම් මුලින් සුදු පසුබිමක් සහිතව), ඔබට පිටුවේ ඉහළට යා හැකිය.


ඉන්පසු bg සමඟ img එකක් පමණක් භාවිතා නොකරන්න, එය තෝරා
නොගත යුතුය

7

පසුබිම් රූපයක් මුළු පිටුවටම දිගු නොකොට කේන්ද්‍රගත කර පරිමාණය කිරීමට මට අවශ්‍ය වූ අතර දර්ශන අනුපාතය පවත්වා ගැනීමට මට අවශ්‍ය විය. වෙනත් පිළිතුරු වල යෝජනා කර ඇති වෙනස්කම් වලට ස්තූතිවන්ත වන පරිදි මෙය මට ප්‍රයෝජනවත් විය:

සබැඳි රූපය: ------------------------

<div id="background">
    <img src="img.jpg" class="stretch" alt="" />
</div>

CSS ----------------------------------

html {
    height:100%;
}

#background {
    text-align: center;
    width: 100%; 
    height: 100%; 
    position: fixed;
    left: 0px; 
    top: 0px; 
    z-index: -1;
}

.stretch {
    margin: auto;
    height:100%;
}

5

පරිපූර්ණ පරිමාණ පසුබිම් රූපය සාක්ෂාත් කර ගැනීම සඳහා මම පසුබිම්-එක්ස් සීඑස්එස් ගුණාංගවල සංයෝජනයක් භාවිතා කළෙමි.

background-size: cover;
background-repeat: no-repeat;
background-position: center;
background-attachment: fixed;

මෙමඟින් පසුබිම සෑම විටම මුළු බ්‍රව්සර කවුළුවම ආවරණය වන අතර පරිමාණය කිරීමේදී කේන්ද්‍රගතව පවතී.


4

Backstretch ප්ලගිනය භාවිතා කරන්න . කෙනෙකුට පින්තූර ස්ලයිඩ කිහිපයක් පවා තිබිය හැකිය. එය බහාලුම් තුළ ද ක්‍රියාත්මක වේ. උදාහරණයක් ලෙස කෙනෙකුට පසුබිම් රූපයකින් ආවරණය කළ හැක්කේ පසුබිමේ කොටසක් පමණි.

මට එය වැඩ කිරීමට පවා හැකි බැවින් එය ප්ලගිනය භාවිතා කිරීම පහසු බව ඔප්පු කරයි :).


3

ඔබට අන්තර්ගතය තිරස් අතට කේන්ද්‍රගත කර ගැනීමට අවශ්‍ය නම්, මෙවැනි සංයෝජනයක් භාවිතා කරන්න:

background-repeat: no-repeat;
background-size: cover;
background-position: center;

මෙය ලස්සන වනු ඇත.


2

මෙම CSS භාවිතා කරන්න:

background-size: 100% 100%


පහත සඳහන්, මෙය පෙර පිළිතුරේ පිටපතක් stackoverflow.com/a/35021247/3810453
Zanshin13

1
An සැන්ෂින් 13 මම කලින් ප්‍රශ්නය ගැන දැන සිටියේ නැත. එවිට ඔබ මගේ පිළිතුර අවතක්සේරු නොකර ප්‍රශ්නය අවසන් කිරීම සඳහා ඡන්දය දිය යුතුය!
ෂැඩි මොහොමඩ් ෂෙරිෆ්

1

border-image : yourimageරූපය මායිම දක්වා පරිමාණය කිරීමට ඔබට දේපල භාවිතා කළ හැකිය . ඔබ පසුබිම් රූපය ලබා දුන්නද, මායිම් රූපය එයට උඩින් ඇද ගනු ඇත.

මෙම border-imageඔබේ විලාස පත ඔබ Google Chrome හෝ Firefox භාවිතා කරන්නේ නම් CSS 3. සහාය නොවන කොහේ හරි, මම නිර්දේශ ක්රියාත්මක නම් දේපල ඉතා ප්රයෝජනවත් වේ background-size:coverදේපල ම.


0

එක් රූපයක් භාවිතා කරමින් මෙය සාක්ෂාත් කර ගැනීමට ඔබට අවශ්‍යද? රූප දෙකක් භාවිතා කරමින් දිගු පසුබිමකට ඔබට සැබවින්ම සමාන කළ හැකි බැවිනි. උදාහරණයක් ලෙස PNG රූප.

මම මීට පෙර මෙය කර ඇති අතර එය එතරම් අපහසු නොවේ. ඇරත්, දිගු කිරීම පසුබිමේ ගුණාත්මක භාවයට හානියක් වනු ඇතැයි මම සිතමි. ඔබ විශාල රූපයක් එකතු කළහොත් එය මන්දගාමී පරිගණක සහ බ්‍රව්සර් වේගය අඩු කරයි.


හොඳ කරුණක්. නමුත් මම පසුබිම් රූපය සඳහා jpg භාවිතා කරමි, ෂීස් 1500x1000 ක් පමණ ගත වන්නේ 100kb ට වඩා සුළු ප්‍රමාණයක් පමණි. නමුත් ඔබ එය කළේ කෙසේද?
ෆෙබියෝ ඇන්ටියුන්ස්

1
රූපය තිරස් අතට කේන්ද්‍රගත කර වර්ණ දාර හෝ රටාවකින් රූප දාර මෘදු කරන්නේ කෙසේද? පරිශීලකයාට රූප විභේදනයට වඩා වැඩි ප්‍රමාණයක් තිබේ නම් මෙය ඔබට බාධාවකින් තොරව අනුවර්තනය වීමට ඉඩ සලසයි.
MarioRicalde

නමුත් මට අවශ්‍ය වන්නේ රූපය පසුබිම පුරවන බවය. ඔබේ කියමන එයයි, මම සාමාන්‍යයෙන් කරන්නේ එයයි.
Fábio Antunes

0

පහත සඳහන් දෑ මා වෙනුවෙන් වැඩ කළේය.

.back-ground {
   background-image: url("../assets/background.png");
   background-size: 100vw 100vh;
}

එය සමස්ත පසුබිම විවිධ මානයන්ගෙන් ආවරණය කිරීමට ක්‍රියා කළේය

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.