समस्या का सारांश
मेरे इच्छित लेआउट है पृष्ठ पर केंद्र के लिए (दोनों अनुलंब और क्षैतिज) अज्ञात आकार की एक छवि सक्षम होने के लिए। अगर छवि किसी भी दिशा में फिट होने के लिए बहुत बड़ी है, तो मैं स्क्रॉल बार दिखाना चाहता हूं ताकि उपयोगकर्ता पूरी छवि देखने के लिए स्क्रॉल कर सके। जिस मुद्दे में मैंने भाग लिया है वह यह है कि जब छवि फिट करने के लिए बहुत बड़ी होती है, तो छवि के शीर्ष और बाएं (किस हिस्से को काट दिया जाता है) पर स्क्रॉल करने में सक्षम नहीं होगा।केंद्रित आइटम
का प्रयास किया गया समाधान
मैं इच्छित लेआउट को प्राप्त करने के flexbox उपयोग करने का प्रयास कर रहा हूँ, लेकिन flexbox एक आवश्यकता नहीं है।
.body {
height: 600px;
}
.container {
margin: auto;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid red;
height: 100%;
overflow: auto;
}
img {
border: 5px solid black;
}
<div class="body">
<div class="container">
<img src="http://placehold.it/700x700" />
</div>
</div>
आपको छवि के चारों ओर सीमा पूरी तरह से देखने में सक्षम होना चाहिए, लेकिन छवि के बाएं और/या शीर्ष भाग को खिड़की के रूप में काट दिया जाएगा। खिड़की कम हो रही है क्योंकि छवि की अधिक से अधिक छवियां अनुपलब्ध हो जाएंगी।
ध्यान दें कि इसमें कोई छवि नहीं है, तो इससे कोई फर्क नहीं पड़ता। यहाँ एक टुकड़ा सादे पुराने divs का उपयोग कर समस्या को दिखाने के लिए है:
.body {
height: 600px;
margin-top: 80px;
}
.container {
margin: auto;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid red;
height: 100%;
overflow: auto;
}
.content {
border: 5px solid black;
width: 600px;
height: 600px;
background-color: gray;
}
<div class="body">
<div class="container">
<div class="content"></div>
</div>
</div>
फिर पूरे div हमेशा स्क्रॉल करके पहुंच योग्य होना चाहिए, लेकिन यह नहीं है।
प्रश्न
मैं ऊपर वर्णित केवल HTML और सीएसएस (जे एस स्वीकार नहीं उत्तर) का उपयोग कर वांछित लेआउट कैसे प्राप्त कर सकते हैं? समस्या को हल करने के लिए फ्लेक्सबॉक्स की आवश्यकता नहीं है, लेकिन यह एक अच्छा होगा।
धन्यवाद!
आप एक छवि है कि व्यूपोर्ट, शीर्ष से बड़ा है और छोड़ दिया हमेशा कटऑफ हो जाएगा केंद्रित कर रहे हैं। आप व्यूपोर्ट के ऊपरी या बाएं तरफ स्क्रॉल नहीं कर सकते हैं। आपको उन आकारों पर छवि को संभालने के तरीके को बदलने की ज़रूरत है ताकि इसे रोकने से रोकने के लिए, संभवतः मीडिया प्रश्नों के माध्यम से जो छवि को केन्द्रित या सादे पुराने रूप से व्यूपोर्ट फिट करने के लिए छवि को कम करने से रोकती हैं। यदि इसे हर समय केंद्रित किया जाना है, तो आपको व्यूपोर्ट को कम करने के रूप में केंद्र को स्क्रॉल करने के लिए छवि को केंद्रित नहीं करना होगा और जेएस का उपयोग करना होगा। – brouxhaha
क्या आप स्पष्टीकरण दे सकते हैं कि आपका मतलब क्या है @brouxhaha? यदि छवि व्यूपोर्ट के लिए बहुत बड़ी है और कंटेनर तत्व में स्क्रॉल सेट है, तो मैं कंटेनर में सभी सामग्री को स्क्रॉल करने में सक्षम होने की उम्मीद करता हूं। –
जैसा कि आप 'न्यूनतम सामग्री', 'अधिकतम-सामग्री', और 'फिट-सामग्री' जैसे आंतरिक माप के साथ कर सकते हैं। लेकिन वे अक्सर अच्छी तरह से ज्ञात या उपयोग नहीं कर रहे हैं ... मुझे नहीं पता कि क्यों।मुझे यकीन है कि अन्य विधियां हैं लेकिन वे मुझे elude। – zer00ne