मैं संपूर्ण HTML तत्व को कवर करने के लिए पृष्ठभूमि की छवि को कैसे बढ़ाऊँ?


89

मैं इसकी संपूर्ण चौड़ाई और ऊँचाई को खींचने के लिए HTML तत्व (निकाय, div, आदि) की पृष्ठभूमि छवि प्राप्त करने का प्रयास कर रहा हूँ।

ज्यादा किस्मत वाली नहीं। क्या यह भी संभव है या क्या मुझे पृष्ठभूमि की छवि होने के अलावा इसे किसी और तरीके से करना होगा?

मेरी वर्तमान सीएसएस है:

body {
    background-position: left top;
    background-image: url(_images/home.jpg);
    background-repeat: no-repeat;
}

अग्रिम में धन्यवाद।

संपादित करें: मैं गैब्रियल के सुझाव में सीएसएस को बनाए रखने के लिए उत्सुक नहीं हूं इसलिए मैं इसके बजाय पृष्ठ के लेआउट को बदल रहा हूं। लेकिन यह सबसे अच्छा जवाब की तरह लगता है इसलिए मैं इसे इस तरह चिह्नित कर रहा हूं।


बेशक, आप इसे गतिशील रूप से करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं, लेकिन यह शायद gabriel1836 के लिंक द्वारा सुझाए गए सीएसएस हैक से भी बदतर होगा।
जेसन बंटिंग

छवि के पहलू अनुपात को संरक्षित करने के लिए आपको "पृष्ठभूमि-आकार: आवरण;" या "पृष्ठभूमि-आकार: सम्‍मिलित है;"। मैंने एक पॉलीफ़िल बनाया है जो IE8 में उन मानों को लागू करता है: github.com/louisremi/background-size-polyfill
Louis-Rémi

जवाबों:


194
<style>
    { margin: 0; padding: 0; }

    html { 
        background: url('images/yourimage.jpg') no-repeat center center fixed; 
        -webkit-background-size: cover;
        -moz-background-size: cover;
        -o-background-size: cover;
        background-size: cover;
    }
</style>

यह HTML तत्वों के भीतर या css फाइलों में स्टाइल टैग के रूप में भी काम करता है।
नाथन

2
यह सबसे अच्छा समाधान है, कभी भी।
AFD

1
कवर बनाम 100% 100% के बीच क्या अंतर है?
पचेरियर

4
100% 100% मूल छवि का पहलू अनुपात नहीं रखता है। image कवर ’छवि को तराजू देता है, जबकि इसके आंतरिक पहलू अनुपात (यदि कोई हो) को संरक्षित करते हुए, सबसे छोटे आकार के लिए, ताकि इसकी चौड़ाई और इसकी ऊंचाई दोनों पूरी तरह से पृष्ठभूमि की स्थिति को कवर कर सकें। आप छवि को स्केल करने के लिए 'सम्‍मिलित' का उपयोग कर सकते हैं, जबकि इसके आंतरिक पहलू अनुपात (यदि कोई हो) को संरक्षित करते हुए, सबसे बड़े आकार तक, जैसे कि इसकी चौड़ाई और इसकी ऊँचाई दोनों बैकग्राउंड पोज़िशनिंग क्षेत्र के अंदर फिट हो सकते हैं।
मिक --३37

"-webkit- पृष्ठभूमि-आकार: कवर;" एक वैध CSS3 संपत्ति नहीं है।
VoidKing

14

background-sizeसंपत्ति का उपयोग करें : http://www.w3.org/TR/css3-background/#the-background-size


1
बहुत बढ़िया, यह सही उत्तर है। यह शायद IE पर काम नहीं करता है, लेकिन मैं केवल अपनी परियोजना के लिए वेबकिट को लक्षित कर रहा हूं, इसलिए यह सही है :)
aehlke

8

संक्षेप में आप यह कोशिश कर सकते हैं ...।

<div data-role="page" style="background:url('backgrnd.png'); background-repeat: no-repeat; background-size: 100% 100%;" >

जहाँ मैंने कुछ css और js का उपयोग किया है ...

<link rel="stylesheet" href="css/jquery.mobile-1.0.1.min.css" />
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/jquery.mobile-1.0.1.min.js"></script>

और यह मेरे लिए ठीक काम कर रहा है।


उन लोगों के लिए जो पहलू अनुपात नहीं रखना चाहते हैं!
बिलीनेयर

6

सुनिश्चित नहीं है कि पृष्ठभूमि छवि खींचना संभव है। यदि आपको लगता है कि यह संभव नहीं है, या आपके सभी लक्षित ब्राउज़रों में विश्वसनीय नहीं है, तो आप z- इंडेक्स सेट लोअर के साथ स्ट्रेच किए गए img टैग का उपयोग करने का प्रयास कर सकते हैं, और स्थिति को निरपेक्ष सेट कर सकते हैं ताकि अन्य सामग्री उसके ऊपर दिखाई दे।

हमें बताएं कि आप क्या कर रहे हैं।

संपादित करें: मैंने जो सुझाव दिया वह मूल रूप से गैब्रिएल की कड़ी में है। तो कोशिश करें कि :)


1
मैंने इस तकनीक को कम से कम एक दशक पहले कार्रवाई में देखा था। मैं सोच भी नहीं सकता यह अभी भी काम नहीं करेगा।
पलकविहीनता

5

@PhiLho उत्तर पर विस्तार करने के लिए, आप एक पृष्ठ पर एक बहुत बड़ी छवि (या किसी भी आकार की छवि) को केंद्र में रख सकते हैं:

{ 
background-image: url(_images/home.jpg);
background-repeat:no-repeat;
background-position:center; 
}

या आप पृष्ठभूमि रंग के साथ एक छोटी छवि का उपयोग कर सकते हैं जो छवि की पृष्ठभूमि से मेल खाती है (यदि यह एक ठोस रंग है)। यह आपके उद्देश्यों के अनुरूप हो भी सकता है और नहीं भी।

{ 
background-color: green;
background-image: url(_images/home.jpg);
background-repeat:no-repeat;
background-position:center; 
}

4

यदि आपको स्क्रीन को आकार देते समय अपनी पृष्ठभूमि छवि को फैलाने की आवश्यकता है और आपको पुराने ब्राउज़र संस्करणों के साथ संगतता की आवश्यकता नहीं है, तो यह काम करेगा:

body {
    background-image: url('../images/image.jpg');
    background-repeat: no-repeat;
    background-size: cover;
}

3

यदि आपके पास एक बड़ी परिदृश्य छवि है, तो यह उदाहरण यहां पोर्ट्रेट मोड में पृष्ठभूमि का आकार देता है, ताकि यह शीर्ष पर प्रदर्शित हो, नीचे की तरफ रिक्त हो:

html, body {
    margin: 0;
    padding: 0;
    min-height: 100%;
}

body {
    background-image: url('myimage.jpg');
    background-position-x: center;
    background-position-y: bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}

@media screen and (orientation:portrait) {
    body {
        background-position-y: top;
        -webkit-background-size: contain;
        -moz-background-size: contain;
        -o-background-size: contain;
        background-size: contain;
    }
}

3

निम्नांकित प्रभाव को प्राप्त करने के लिए मैं निम्नलिखित कोड का उपयोग करता हूँ:

body {
    background-image: url('../images/bg.jpg');
    background-repeat: no-repeat;
    background-size: 100%;
}

3
आप की जरूरत हैbackground-size: 100% 100%;
Sablefoste

मुझे नहीं पता कि आप किस ब्राउज़र का उपयोग करते हैं, लेकिन मैंने जो बताया है वह फ़ायरफ़ॉक्स और क्रोम में मेरे लिए काम करता है।
बादर


0

आप शुद्ध CSS में नहीं कर सकते। अन्य सभी घटकों के पीछे पूरे पृष्ठ को कवर करने वाली एक छवि होने से संभवतः आपकी सबसे अच्छी शर्त है (ऐसा लगता है कि ऊपर दिया गया समाधान है)। वैसे भी, संभावना है कि यह बहुत भयानक लगेगा। मैं या तो बड़े स्क्रीन रिज़ॉल्यूशन को कवर करने के लिए एक छवि को बड़ा करने की कोशिश करूँगा (1600x1200 तक ऊपर, यह स्कारर है), पृष्ठ की चौड़ाई को सीमित करने के लिए, या सिर्फ एक छवि का उपयोग करने के लिए उस टाइल का उपयोग करें।


0

छवि {

background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  padding: 0 3em 0 3em; 
margin: -1.5em -0.5em -0.5em -1em; 
  width: absolute;
  max-width: 100%; 

2
एसओ में आपका स्वागत है! बेहतर उत्तर लिखने के लिए, कुछ तर्क जोड़ें कि यह क्यों काम करता है और कोड को कार्रवाई में दिखाता है। आप एक अच्छा उत्तर लिखने के बारे में भी पढ़ सकते हैं ।
विस्थापित

0

बस शरीर के प्रत्यक्ष बच्चे (उदाहरण के लिए वर्ग नाम बीजी के साथ) होने के लिए, शरीर के अन्य सभी तत्वों को शामिल करते हुए, और इसे CSS फ़ाइल में जोड़ें:

.bg {
    background-image: url('_images/home.jpg');//Put your appropriate image URL here
    background-size: 100% 100%; //You need to put 100% twice here to stretch width and height
}

इस लिंक का संदर्भ लें: https://www.w3schools.com/css/css_rwd_images.asp उस भाग पर स्क्रॉल करें जो कहता है:

  1. यदि पृष्ठभूमि-आकार की संपत्ति "100% 100%" पर सेट है, तो पृष्ठभूमि छवि पूरे सामग्री क्षेत्र को कवर करने के लिए खिंचाव करेगी

वहां यह दिखाता है कि 'img_flowers.jpg' स्क्रीन या ब्राउज़र के आकार तक फैला है, भले ही आप उसका आकार कैसे भी हो।


-1

इससे मेरा काम बनता है

.page-bg {
  background: url("res://background");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.