समस्या यह है कि जब आपको किसी वेबसाइट में सामग्री डालने के लिए IFrames का उपयोग करना होता है, तो आधुनिक वेब-दुनिया में यह उम्मीद की जाती है कि IFrame भी उत्तरदायी होगा। सिद्धांत रूप में यह सरल है, बस साइडर का उपयोग करें <iframe width="100%"></iframe>
या CSS चौड़ाई निर्धारित करेंiframe { width: 100%; }
लेकिन व्यवहार में यह काफी सरल नहीं है, लेकिन यह हो सकता है।
यदि iframe
सामग्री पूरी तरह से उत्तरदायी है और आंतरिक स्क्रॉल पट्टियों के बिना खुद को आकार दे सकती है, तो iOS सफारी का आकार बदल जाएगाiframe
बिना किसी वास्तविक मुद्दों के ।
यदि आप निम्नलिखित कोड पर विचार करते हैं:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9,10,11" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Iframe Isolation Test</title>
<style type="text/css" rel="stylesheet">
#Main {
padding: 10px;
}
</style>
</head>
<body>
<h1>Iframe Isolation Test 13.17</h1>
<div id="Main">
<iframe height="950" width="100%" src="Content.html"></iframe>
</div>
</body>
</html>
Content.html के साथ :
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9,10,11" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Iframe Isolation Test - Content</title>
<style type="text/css" rel="stylesheet">
#Main {
width: 100%;
background: #ccc;
}
</style>
</head>
<body>
<div id="Main">
<div id="ScrolledArea">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc malesuada purus quis commodo convallis. Fusce consectetur mauris eget purus tristique blandit. Nam nec volutpat augue. Aliquam sit amet augue vitae orci fermentum tempor sit amet gravida augue. Pellentesque convallis velit eu malesuada malesuada. Aliquam erat volutpat. Nam sollicitudin nulla nec neque viverra, non suscipit purus tincidunt. Aenean blandit nisi felis, sit amet ornare mi vestibulum ac. Praesent ultrices varius arcu quis fringilla. In vitae dui consequat, rutrum sapien ut, aliquam metus. Proin sit amet porta velit, suscipit dignissim arcu. Cras bibendum tellus eu facilisis sodales. Vestibulum posuere, magna ut iaculis consequat, tortor erat vulputate diam, ut pharetra sapien massa ut magna. Donec massa purus, pharetra sed pellentesque nec, posuere ut velit. Nam venenatis feugiat odio quis tristique.
</div>
</div>
</body>
</html>
फिर यह iOS 7.1 सफारी में मुद्दों के बिना काम करता है। आप किसी भी मुद्दे के बिना परिदृश्य और चित्र के बीच बदल सकते हैं।
हालाँकि केवल इसे जोड़कर Content.html CSS बदलकर :
#ScrolledArea {
width: 100%;
overflow: scroll;
white-space: nowrap;
background: #ff0000;
}
आप इसे प्राप्त करें:
जैसा कि आप देख सकते हैं, भले ही Content.html सामग्री पूरी तरह से उत्तरदायी है ( div # ScrolledArea ने overflow: scroll
सेट किया है) और iframe की चौड़ाई 100% है, iframe अभी भी div की पूरी चौड़ाई लेता है # ScrolledArea जैसे कि अतिप्रवाह भी मौजूद नहीं है।डेमो
इस तरह के मामलों में, क्या iframe
सामग्री को उस पर स्क्रॉल करने वाले क्षेत्र हैं, यह सवाल बन जाता है कि कैसे iframe
प्रतिक्रियाशील हो, जब iframe सामग्री में क्षैतिज रूप से स्क्रॉल करने वाले क्षेत्र हैं? यहाँ समस्या इस तथ्य में नहीं है कि Content.html उत्तरदायी नहीं है, लेकिन इस तथ्य में कि iOS Safari केवल iframe का आकार बदलता है ताकि यह div#ScrolledArea
पूरी तरह से दिखाई दे।
white-space: nowrap
अपने आप में समस्या नहीं है। मैं बस इसका उपयोग करने के लिए एक चरम चौड़ाई पाने के लिए कर रहा हूँ div#ScrolledArea
। समस्या तब आती है जब IFrame सामग्री में क्षैतिज रूप से स्क्रॉल करने योग्य क्षेत्र होते हैं। यदि ऐसा है, तो iOS सफारी आपकी चौड़ाई सेटिंग्स को अनदेखा करता है और छेद सामग्री और साइट की प्रतिक्रिया को तोड़ता है।
white-space: nowrap
शैली के साथ सामग्री है?