لا يمكن إزالة شريط التمرير الأفقي iframe المخيف في IE؟

StackOverflow https://stackoverflow.com/questions/67354

  •  09-06-2019
  •  | 
  •  

سؤال

لدي إطار iframe.المحتوى أوسع من العرض الذي أقوم بإعداده، لذا يحصل إطار iframe على شريط تمرير أفقي.لا يمكنني زيادة عرض إطار iframe لذا أريد فقط إزالة شريط التمرير.لقد حاولت تعيين خاصية التمرير على "لا" ولكن هذا يقتل كلا شريطي التمرير وأريد الشريط الرأسي.لقد حاولت ضبط overflow-x على "مخفي" مما أدى إلى مقتل شريط التمرير الأفقي في ff ولكن ليس في IE.حزين بالنسبة لي.

هل كانت مفيدة؟

المحلول

scrolling="yes"  horizontalscrolling="no" verticalscrolling="yes"

ضع ذلك في علامة iFrame الخاصة بك.

لا تحتاج إلى العبث بمحاولة تنسيق هذا في CSS.

نصائح أخرى

شريط التمرير ليس خاصية لـ <iframe>, ، إنها خاصية الصفحة التي تحتوي عليها.حاول وضع overflow-x: hidden على ال <html> عنصر الصفحة الداخلية

يمكنك محاولة وضع إطار iframe داخل div ثم استخدام div للتمرير.يمكنك التحكم في التمرير على div في IE بدون مشاكل، IE لديه فقط مشاكل في تمرير iframe.إليك مثال سريع يجب أن يفي بالغرض.

<html>
    <head>
        <title>iframe test</title>

        <style>         
        #aTest { 
            width: 120px;
            height: 50px;
            padding: 0;
            border: inset 1px #000;
            overflow: auto;
        }

        #aTest iframe {
            width: 100px;
            height: 1000px;
            border: none;
        }
        </style>
    </head>
    <body>
        <div id="aTest">
            <iframe src="whatever.html" scrolling="no" frameborder="0"></iframe>
        </div>
    </body>
</html>
<iframe style="overflow:hidden;" src="about:blank"/>

يجب أن تعمل في IE.واجه IE6 مشكلات في دعم overflow-x وoverflow-y.

شيء آخر يجب ملاحظته هو أنه لا يمكن إزالة حدود IE الموجودة على iframe إلا إذا قمت بتعيين سمة "frameborder" في CamelCase.

<iframe frameBorder="0" style="overflow:hidden;" src="about:blank"/>

سيكون من الرائع أن تتمكن من تصميمه بشكل صحيح باستخدام CSS ولكنه لا يعمل في IE.

كل هذه الحلول لم تنجح معي أو لم تكن مرضية.باستخدام DIV القابل للتمرير، يمكنك جعل شريط التمرير الأفقي يختفي، ولكن سيكون لديك شريط التمرير الرأسي دائمًا.

لذلك، بالنسبة لموقعي حيث يمكنني التأكد من التحكم في الارتفاع الثابت لجميع إطارات iframe، فإن هذا الحل التالي يعمل بشكل جيد للغاية.إنه ببساطة يخفي شريط التمرير الأفقي باستخدام DIV :)

    <!-- This DIV is a special hack to hide the horizontal scrollbar in IE iframes -->
<!--[if IE]>
<div id="ieIframeHorScrollbarHider" style="position:absolute; width: 768px; height: 20px; top: 850px; left: 376px; background-color: black; display: none;">
</div>
<![endif]-->
<script type="text/javascript">
  if (document.getElementById("idOfIframe") != null && document.getElementById("ieIframeHorScrollbarHider") != null)
  {
    document.getElementById("ieIframeHorScrollbarHider").style.display = "block";
  }
</script>

يمكنك أيضًا محاولة ضبط عرض النص الأساسي للصفحة المضمنة داخل إطار iframe على 99%.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top