هناك سؤال شائع في تصميم موقع الويب هو "كيف يمكنك تعيين ارتفاع العنصر إلى 100٪"؟
قد يبدو هذا كإجابة سهلة. أنت تستخدم CSS ببساطة لتعيين ارتفاع العنصر إلى 100٪ ، ولكن هذا لا يؤدي دائمًا إلى تمديد هذا العنصر لملائمة نافذة المتصفح بالكامل. لنتعرف على سبب حدوث ذلك وما يمكنك القيام به لتحقيق هذا النمط المرئي.
البكسل والنسب المئوية
عندما تحدد ارتفاع عنصر باستخدام خاصية CSS وقيمة تستخدم وحدات البكسل ، فإن هذا العنصر سيشغل مساحة كبيرة في المستعرض. على سبيل المثال ، فقرة مع
الارتفاع: 100 بكسل
سيشغل 100 بكسل من المساحة العمودية في تصميمك. لا يهم مدى حجم نافذة المتصفح ، سيكون هذا العنصر 100 بكسل في الارتفاع. تعمل النسب المئوية بشكل مختلف عن وحدات البكسل. وفقًا لمواصفات W3C ، يتم حساب الارتفاعات المئوية فيما يتعلق بارتفاع الحاوية. حتى إذا وضعت فقرة مع الارتفاع: 50 ٪.
داخل div يبلغ ارتفاعه 100 بكسل ، ستكون الفقرة 50 بكسل في الارتفاع ، وهي تمثل 50٪ من العنصر الرئيسي. إذا كنت تصمم صفحة ويب ، وكان لديك عمود ترغب في استخدامه للارتفاع الكامل للنافذة ، فإن الميل الطبيعي هو إضافة الارتفاع: 100٪ ؛
لهذا العنصر. بعد كل شيء ، إذا قمت بتعيين عرض
إلى العرض: 100 ٪.
سيشغل العنصر المساحة الأفقية الكاملة للصفحة ارتفاع
يجب أن تعمل بنفس الطريقة ، أليس كذلك؟ لسوء الحظ ، هذا ليس هو الحال على الإطلاق. لفهم سبب حدوث ذلك ، يجب أن تفهم كيفية تفسير المتصفحات للطول والعرض. تقوم متصفحات الويب بحساب إجمالي العرض المتاح كدالة لمدى اتساع نافذة المتصفح. عرض
إذا لم تقم بتعيين أي قيم على المستندات الخاصة بك ، فسوف يقوم المتصفح تلقائيًا بتدفق المحتويات لملء عرض النافذة بالكامل (يكون العرض 100٪ هو العرض الافتراضي). يتم حساب قيمة الارتفاع بشكل مختلف عن العرض. في الواقع ، لا تقوم المتصفحات بتقييم الارتفاع مطلقًا ما لم يكن المحتوى طويلاً بحيث يخرج من إطار العرض (وبالتالي يتطلب أشرطة التمرير) أو إذا قام مصمم الويب بتعيين عنصر مطلق لعنصر على الصفحة. ارتفاع
وبخلاف ذلك ، يتيح المتصفح ببساطة تدفق المحتوى داخل عرض إطار العرض حتى يصل إلى النهاية. الارتفاع غير محسوب على الإطلاق. تحدث المشاكل عند تعيين ارتفاع نسبة مئوية على عنصر يحتوي على عناصر رئيسية بدون مجموعة ارتفاعات - وبعبارة أخرى ، فإن العناصر الرئيسية لها افتراضيًا. الارتفاع: auto؛
أنت ، في الواقع ، تطلب من المتصفح حساب ارتفاع من قيمة غير محددة. وبما أن ذلك يساوي قيمة فارغة ، فإن النتيجة هي أن المتصفح لا يفعل شيئًا. إذا كنت تريد تعيين ارتفاع على صفحات الويب الخاصة بك إلى نسبة مئوية ، يجب عليك تعيين ارتفاع كل العنصر الأصل الذي تريد تحديده. بمعنى آخر ، إذا كان لديك صفحة مثل هذه: محتوى هنا
من المرجح أنك تريد شعبة
والفقرة في ذلك أن يكون لها ارتفاع 100 ٪ ، ولكن هذا div بالفعل اثنان العناصر الرئيسية: و. من أجل تحديد ارتفاع شعبة
إلى ارتفاع نسبي ، يجب عليك ضبط ارتفاع الجسم
و أتش تي أم أل
عناصر كذلك. لذلك يجب عليك استخدام CSS لضبط ارتفاع ليس فقط div ولكن أيضًا عناصر HTML و body. هذا يمكن أن يكون تحديا ، حيث يمكنك بسرعة تغمرها مع كل شيء يتم تعيينه لارتفاع 100 ٪ ، فقط لتحقيق هذا التأثير المطلوب. الآن بعد أن تعرفت على كيفية ضبط ارتفاع عناصر صفحتك إلى 100٪ ، قد يكون من المثير الخروج والقيام بذلك على جميع صفحاتك ، ولكن هناك بعض الأشياء التي يجب أن تكون على علم بها: لإصلاح هذا ، يمكنك تعيين ارتفاع العنصر أيضًا. إذا قمت بتعيينها إلى تلقاءي،
سوف تظهر أشرطة التمرير إذا كانت مطلوبة ولكنها تختفي عندما لا تكون كذلك.يعمل هذا على إصلاح الفاصل المرئي ، ولكنه يضيف أشرطة التمرير حيث قد لا ترغب في مشاهدتها. هناك طريقة أخرى يمكنك بها مواجهة هذا التحدي وهي تجربة وحدات Viewport CSS. باستخدام وحدة قياس ارتفاع إطار العرض ، يمكنك تغيير حجم العناصر لرفع الارتفاع المحدد في إطار العرض ، وسيتغير ذلك مع تغير إطار العرض! تُعد هذه طريقة رائعة للحصول على صورك المرتفعة بنسبة 100٪ في الصفحة ، ولكن لا تزال تتسم بالمرونة للأجهزة المختلفة وأحجام الشاشات. لماذا فشل مرتفعات النسبة المئوية
بعض الأشياء لتلاحظ عند العمل مع مرتفعات 100 ٪
باستخدام وحدات viewport