كيف يمكنني تمديد ارتفاع DIV إلى أعلى الصفحة 100٪؟

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

  •  11-09-2019
  •  | 
  •  

سؤال

<html>
    <head>
        <style>
            .100PercentHeight{ }
        </style>

        </style>

    <body>
        <div class='100PercentHeight'>hihi</div>
    </body>
</html>

كيف يمكنني تمتد DIV إلى ارتفاع الصفحة بنسبة 100٪؟

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

المحلول

حاول (يجب أن تعمل في معظم المتصفحات):

.100PercentHeight, html, body {
    height : auto !important; /* Ignored by Internet Explorer, applied everywhere else. */
    height : 100%;            /* Internet Explorer treats as min-height. */
    min-height : 100%;        /* Internet Explorer ignores this. */
}

نصائح أخرى

تطبيق

html, body, .100PercentHeight{
    height:100%;
}

يجب أن تسفر عن التأثير الذي تبحث عنه. أنت بحاجة إليها على الثلاثة.

ومع ذلك، فغالبا ما لا تفعل ما تعتقد أنه قد يكون، ويمكن أن يكون مشكلة. تقنيات أعمدة فو أو "تذييلات لزجة" تميل إلى العمل بشكل أفضل.

<style>
.100PercentHeight{margin:0; height:100%}

</style>   

هذا سيعمل، كمثال.

<div style="width:100%; height:100%; border-style:solid; border-width:5px;">
  test
</div>

إذا كنت ترغب في القيام بذلك عبر JavaScript، يجب أن يعمل هذا الرمز لمعظم متصفحات DOM ...

<div id="fullDiv" style="border: solid 2px black;">
    Hello example
</div>

<script type="text/javascript">

    var div = document.getElementById('fullDiv');

    div.style.height = document.documentElement.clientHeight + 'px';

</script>

يجب عليك تعيين ارتفاع 100٪ للجسم ويجب القيام به:

body {
...
height:100%;
...
}
html {
    height: 100%;
}

هذا لن يعمل إذا كان لديك doctype. أبحث عن إجابة أيضا، لكن لدي doctype. ومع ذلك، هناك طريقة للقيام بذلك مع doctype، لكنها لا تعمل مع اثنين divs العائمة اليسار واليمين بجانب بعضنا البعض، حاول:

(div-name) {
    position: absolute;
}

كن على علم بأن هذا لا يبدو جيدا على الإطلاق عند استخدام Two Divs تطفو بجانب بعضنا البعض. ولكن، فإنه يعمل بشكل جيد لأي نوع آخر.

يستخدم:

{
    position: absolute;
    top: 0px;
    bottom: 0px;
    padding: 0px;
    margin: 0px;
}

بهذه الطريقة، سيتم تركيزها وتغطي الصفحة إذا كانت أطول من عرض متصفح واحد.

هنا هو أبسط الحل الذي أعرفه. ومع ذلك، لسوء الحظ، لا يعمل في Internet Explorer 8 وما فوق، لأنها لا تدعم وحدة VH (Viewport Height).

<!DOCTYPE html>
<html>
<head>

<style>
body {
  margin: 0;
}

#full-height{
  min-height: 100vh;
}
</style>
</head>
<body>
<div id='full-height'>

</div>
</body>
</html>

هذا يجب أن يعمل:

<style type="text/css">
    html, body, .100PercentHeight {
        height: 100%;
        margin: -10px 0px 0px -10px;
    }
</style>

ومع ذلك، قد ترغب في إضافة لون خلفية أو حدود للتأكد من أنه يعمل، وإلا فلن تتمكن من رؤيته بشكل صحيح.

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