ปัญหาคือเมื่อคุณต้องใช้ IFrames เพื่อแทรกเนื้อหาลงในเว็บไซต์จากนั้นในโลกเว็บสมัยใหม่คาดว่า IFrame จะตอบสนองได้เช่นกัน ในทางทฤษฎีมันง่ายเพียงแค่ผู้ช่วยใช้<iframe width="100%"></iframe>
หรือตั้งค่าความกว้างของ CSS iframe { width: 100%; }
อย่างไรก็ตามในทางปฏิบัติมันไม่ได้ง่ายขนาดนั้น แต่ก็สามารถทำได้
หากiframe
เนื้อหาตอบสนองอย่างสมบูรณ์และสามารถปรับขนาดได้เองโดยไม่มีแถบเลื่อนภายใน iOS Safari จะปรับขนาด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 Safari คุณสามารถเปลี่ยนระหว่างแนวนอนและแนวตั้งได้โดยไม่มีปัญหาใด ๆ
อย่างไรก็ตามเพียงแค่เปลี่ยน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
สไตล์?