لائحة الطعام
مجاني
تحقق في
الرئيسي  /  البرامج/ قم بتمديد القائمة إلى العرض الكامل لـ css. كيف تصنع قائمة استجابة مرنة في المغلق؟ ترميز HTML والأنماط الأساسية للقوائم الأفقية

قم بتمديد القائمة إلى العرض الكامل لـ css. كيف تصنع قائمة استجابة مرنة في المغلق؟ ترميز HTML والأنماط الأساسية للقوائم الأفقية

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

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

كيف يتم تنفيذ هذا؟

يمكن لكل مبرمج أن يقدم طريقته الخاصة لحل المشكلة. كل هذا يتوقف على خياله ومستوى الاحتراف والقدرات. الحل الأكثر شيوعًا لهذه المشكلة هو استخدام الجدول. أيضا ، قد يقترح الكثيرون استخدام جافا سكريبت. أولئك الذين يقترحون استخدام خاصية العرض مع القيمة الطاولةأو خلية الجدول- أسارع إلى الغضب. هذه الطريقة ليست متوافقة بشكل كافٍ مع المستعرضات.

حلنا

سيتم بناء اقتراحنا على أساس متين من معرفة HTML5 و CSS3.

يعتمد جوهر العملية على خاصية محاذاة النص بقيمة ضبط. بالنسبة لأولئك الذين نسوا ، أذكركم: هذه الخاصية توجه محاذاة النص عبر عرض الحاوية بالكامل.

هناك قاعدتان أساسيتان يجب اتباعهما عند استخدام الحل. الأول هو أن عرض حاوية عنصر القائمة يجب أن يكون أصغر من النص. هذا ليس في سطر واحد. القاعدة الثانية المهمة هي أن الكلمات تمتد بالتساوي ، بغض النظر عما إذا كانت تنتمي إلى نفس النقطة أم لا.

يوجد أدناه الرمز الذي يعمل كمثال على إنشاء قائمة "مطاطية":

لغة البرمجة

< ul> < li>< a href= "#" >الرئيسي < li>< a href= "#" >مدونة او مذكرة < li>< a href= "#" >الإخبارية < li>< a href= "#" >شائع < li>< a href= "#" >عناصر جديدة

ul (محاذاة النص: ضبط ؛ تجاوز: مخفي ؛ / * يزيل الآثار الجانبية للطريقة * /الارتفاع: 20 بكسل ؛ / * يزيل الأشياء غير الضرورية أيضًا * /المؤشر: الافتراضي ؛ / * يعين شكل المؤشر الأصلي * /الهامش: 50 بكسل 100 بكسل 0100 بكسل ؛ الخلفية: #eee ؛ الحشو: 5 بكسل ؛ ) لي (عرض: مضمنة ؛ / * يجعل عناصر القائمة نصية * /) لي أ (عرض: كتلة مضمنة ؛) / * إصلاح فاصل الكلمات في القائمة * /اللون: # 444 ؛ ) أ: تحوم (اللون: # ff0000 ؛) ul: بعد ( / * تشكيل السطر الثاني لحساب الطريقة * /المحتوى: "1" ؛ الهامش- اليسار: 100٪ ؛ الارتفاع: 1 بكسل ؛ إخفاء الفائض؛ العرض: مضمنة - كتلة ؛ )

للعمل في Internet Explorer القديم الجيد ، تحتاج إلى إضافة الكود التالي إلى CSS

ul (z- index: expression (runtimeStyle. zIndex = 1، insertAdjacentHTML ("beforeEnd & apos،"،< li class = "last" > ")) ؛) ul .last (margin-left: 100٪؛) * html ul (/ * need ie6 only * / height: 30px؛)

بعد تسجيل قيم الممتلكات الضرورية والرمز ، نحصل على القائمة المطاطية التالية:

عيوب الطريقة

  1. كود بالجملة
  2. عدم القدرة على تحديد الحالة النشطة لعنصر من خلال محدد الفئة. هذا بسبب كسر الكلمات في الفقرات (إذا كانت واحدة). الحل لهذه المشكلة هو إضافة حاوية أخرى داخل عناصر القائمة.
  3. بالنسبة إلى القائمة المنسدلة ، تحتاج إلى تخصيص الكود نظرًا للتأثير السلبي للتجاوز.

ما المتصفحات التي تعمل فيها؟

6.0+ 6.0+ 10.5+ 5.0+ 3.6+ - -

قائمة أفقيةهي قائمة بأقسام الموقع ، لذا فمن المنطقي أكثر أن تضع علامة عليها داخل العنصر

    ثم قم بتطبيق أنماط CSS على عناصرها. ترتيب القائمة هذا هو الأكثر شيوعًا بسبب المزايا الواضحة في وضعه على صفحة الويب.

    كيفية عمل قائمة أفقية: أمثلة على الترميز والتصميم

    ترميز HTML والأنماط الأساسية للقوائم الأفقية

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

    ترميز HTML للتنقل الأفقي

    يمكن وضع قائمة أفقية داخل علامة اختياريا داخل عنصر

    و / أو
    ...
    ... بفضل هذا ، يتم إعطاء المعنى الدلالي لترميز html ، بالإضافة إلى فرصة إضافية لتنسيق كتلة القائمة.

    هناك عدة طرق لوضعها. أفقيا... أولاً ، تحتاج إلى إعادة تعيين أنماط المتصفح الافتراضية لعناصر التنقل:

    Ul (list-style: none؛ / * إزالة علامات القائمة * / margin: 0؛ / * إزالة الهامش العلوي والسفلي يساوي 1em * / padding-left: 0 ؛ / * إزالة الهامش الأيسر يساوي 40 بكسل * /) أ ( زخرفة النص: لا شيء ؛ / * إزالة تسطير نص الرابط * /)

    الطريقة 1.li (عرض: مضمنة ؛)

    نجعل عناصر القائمة صغيرة. نتيجة لذلك ، يتم وضعها أفقيًا ، على الجانب الأيمن بينهما تتم إضافة فجوة تساوي 0.4em (محسوبة بالنسبة لحجم الخط). لإزالته ، أضف هامشًا أيمنًا سلبيًا لـ li (margin-right: -4px ؛). بعد ذلك ، سنقوم بتصميم الروابط كما نرغب.

    الطريقة 2.li (تعويم: يسار ؛)

    عائم عناصر القائمة. نتيجة لذلك ، يتم وضعها أفقيًا. يصبح ارتفاع كتلة الحاوية ul صفرًا. لحل هذه المشكلة ، نضيف (overflow: hidden ؛) إلى ul ، ونوسعها وبالتالي نسمح لها باحتواء عناصر عائمة. بالنسبة للروابط ، أضف (display: block ؛) وقم بتصميمها كما يحلو لك.

    الطريقة 3.li (العرض: كتلة مضمنة ؛)

    نجعل عناصر القائمة مضمنة. تقع أفقياً ، يتم تشكيل فجوة على الجانب الأيمن ، كما في الحالة الأولى. بالنسبة للروابط ، أضف (display: block ؛) وقم بتصميمها كما يحلو لك.

    الطريقة 4.ul (العرض: المرن ؛)

    صنع وعاء مرن باستخدام نموذج. نتيجة لذلك ، يتم ترتيب عناصر القائمة أفقيًا. أضف (display: block؛) للروابط وقم بتصميمها كما يحلو لك.

    1. قائمة متجاوبة مع تأثير تسطير عند التمرير فوق ارتباط

    import url ("https://fonts.googleapis.com/css؟family=Ubuntu+Condensed") ؛ .menu-main (list-style: none؛ margin: 40px 0 5px؛ padding: 25px 0 5px؛ text-align: center؛ background: white؛) .menu-main li (display: inline-block؛) .menu- main li: after (content: "|"؛ color: # 606060؛ display: inline-block؛ vertical-align: top؛). menu-main li: last-child: after (content: none؛) .menu-main أ (زخرفة النص: لا شيء ؛ عائلة الخطوط: "Ubuntu Condensed" ، sans-serif ؛ تباعد الأحرف: 2 بكسل ؛ الموضع: نسبي ؛ المساحة السفلية: 20 بكسل ؛ الهامش: 0 34 بكسل 0 30 بكسل ؛ حجم الخط: 17 بكسل ؛ تحويل النص: أحرف كبيرة ؛ عرض: كتلة مضمنة ؛ انتقال: لون. 2 ثانية ؛). القائمة الرئيسية أ ،. القائمة الرئيسية أ: تمت زيارتها (اللون: # 9d999d ؛). القائمة الرئيسية أ.حالي ،. القائمة- main a: hover (color: # feb386؛). menu-main a: before،. menu-main a: after (content: ""؛ position: due؛ height: 4px؛ top: auto؛ right: 50٪؛ bottom : -5 بكسل ؛ يسار: 50٪ ؛ الخلفية: # feb386 ؛ انتقال: .8 ثانية ؛). القائمة الرئيسية أ: تحوم: قبل ،. القائمة الرئيسية. الحالية: قبل (يسار: 0 ؛). القائمة الرئيسية أ: hover: after، .menu-main .current: after (right: 0؛ )media (max-width: 550px) (.menu-main (padding-top: 0؛) .menu-main li (display: block؛). menu-main li: after (content: none؛) .menu- الرئيسي أ (الحشو: 25 بكسل 0 20 بكسل ؛ الهامش: 0 30 بكسل ؛ ))

    2. القائمة المستجيبة لموقع الزفاف

    import url ("https://fonts.googleapis.com/css؟family=PT+Sans") ؛ .top-menu (position: النسبي ؛ الخلفية: #fff ؛ box-shadow: inset 0 0 10px #ccc؛) .top-menu: before، .top-menu: after (content: ""؛ display: block؛ height : 1 بكسل ؛ الحد الأعلى: 3 بكسل صلب # 575350 ؛ الحد السفلي: 1 بكسل صلب # 575350 ؛ الهامش السفلي: 2 بكسل ؛) أعلى القائمة: بعد (الحد السفلي: 3 بكسل صلب # 575350 ؛ الحد العلوي: 1 بكسل صلب # 575350؛ box-shadow: 0 2px 7px #ccc؛ margin-top: 2px؛). menu-main (list-style: none؛ padding: 0 30px؛ margin: 0؛ font-size: 18px؛ text-align: المركز ؛ الموضع: نسبي ؛). القائمة الرئيسية: قبل ،. القائمة الرئيسية: بعد (المحتوى: "25C8" ؛ ارتفاع السطر: 1 ؛ الموضع: مطلق ؛ أعلى: 50٪ ؛ التحويل: translateY (-50٪ ) ؛). menu-main: before (left: 15px؛). menu-main: after (right: 15px؛) .menu-main li (display: inline-block؛ padding: 5px 0؛). menu-main a (زخرفة النص: لا شيء ؛ العرض: كتلة مضمنة ؛ الهامش: 2 بكسل 5 بكسل ؛ المساحة المتروكة: 6 بكسل 15 بكسل ؛ مجموعة الخطوط: "PT Sans" ، sans-serif ؛ حجم الخط: 16 بكسل ؛ اللون: # 777777 ؛ الحد السفلي : 1 بكسل شفافة صلبة ؛ العبور n: .3s خطي ؛ ). menu-main .current، .menu-main a: hover (border-radius: 3px؛ background: # f3ece1؛ color: # 313131؛ text-shadow: 0 1px 0 #fff؛ border-color: # c6c6c6؛) media (أقصى عرض: 500 بكسل) (.menu-main li (عرض: كتلة ؛))

    3. القائمة التكيفية مع الأسقلوب

    import url ("https://fonts.googleapis.com/css؟family=PT+Sans+Caption") ؛ .menu-main (نمط القائمة: لا شيء ؛ المساحة المتروكة: 0 30 بكسل ؛ الهامش: 0 ؛ حجم الخط: 18 بكسل ؛ محاذاة النص: المركز ؛ الموضع: نسبي ؛ الخلفية: أبيض ؛). القائمة الرئيسية: بعد (المحتوى: "" ؛ الموضع: مطلق ؛ العرض: 100٪ ؛ الارتفاع: 20 بكسل ؛ اليسار: 0 ؛ الأسفل: -20 بكسل ؛ الخلفية: التدرج الشعاعي (أبيض 0٪ ، أبيض 70٪ ، rgba (255،255،255،0) 70٪ ، rgba ( 255،255،255،0) 100٪) 0-10 بكسل ؛ حجم الخلفية: 20 بكسل 20 بكسل ؛ تكرار الخلفية: تكرار x ؛). القائمة الرئيسية لي (عرض: كتلة مضمنة ؛). القائمة الرئيسية أ (زخرفة النص: بلا ؛ عرض: كتلة مضمنة ؛ الهامش: 0 15 بكسل ؛ المساحة المتروكة: 10 بكسل 30 بكسل ؛ عائلة الخطوط: "PT Sans Caption" ، sans-serif ؛ اللون: # 777777 ؛ الانتقال: .3s خطي ؛ الموضع: نسبي ؛). -main a: before، .menu-main a: after (content: ""؛ position: due: top: calc (50٪ - 3px)؛ width: 6px؛ height: 6px؛ border-radius: 50٪؛ background: # F58262 ؛ العتامة: 0 ؛ الانتقال: .5s easy-in-out ؛). القائمة الرئيسية أ: قبل (يسار: 5 بكسل ؛). القائمة الرئيسية أ: بعد (يمين: 5 بكسل ؛). القائمة الرئيسية أ. الحالي: قبل. menu-main a.cur الإيجار: بعد ،. menu-main a: hover: before، .menu-main a: hover: after (opacity: 1؛). menu-main a.current، .menu-main a: hover (color: # F58262؛ )media (max-width: 680px) (.menu-main li (display: block؛))

    4. قائمة الاستجابة على الشريط

    import url ("https://fonts.googleapis.com/css؟family=PT+Sans+Caption") ؛ .top-menu (margin: 0 60px ؛ الموضع: نسبي ؛ الخلفية: # 5A394E ؛ box-shadow: 1px 0 0 rgba (255،255،255، .1) ، داخلي -1 بكسل 0 0 rgba (255،255،255 ، .1) ، أقحم 150 بكسل 0 150 بكسل -150 بكسل rgba (255،255،255، .12) ، داخلي -150 بكسل 0 150 بكسل -150 بكسل rgba (255،255،255، .12) ؛). القائمة العلوية: قبل ،. القائمة العلوية: بعد (المحتوى: "" ؛ الموضع: مطلق ؛ z-index: 2؛ left: 0؛ width: 100٪؛ height: 3px؛). top-menu: before (top: 0؛ border-bottom: 1px متقطع rgba (255،255،255، .2)؛). menu: بعد (bottom: 0؛ border-top: 1px متقطع rgba (255،255،255، .2) ؛). menu-main (list-style: none؛ padding: 0؛ margin: 0؛ text-align: center؛). menu-main: before، .menu-main: after (content: ""؛ position: المطلق؛ width: 50px؛ height: 0؛ top: 8px؛ border-top: 18px solid # 5A394E؛ border-bottom: 18px solid # 5A394E ؛ تحويل: استدارة (360 درجة) ؛ z-index: -1 ؛). menu-main: before (left: -30px؛ border-left: 12px solid rgba (255، 255، 255، 0)؛). menu- main: بعد (يمين: -30 بكسل ؛ الحد الأيمن: 12 بكسل صلب rgba (2 55 ، 255 ، 255 ، 0) ؛ ) .menu-main li (display: inline-block؛ margin-right: -4px؛). menu-main a (text-decoration: none؛ display: inline-block؛ padding: 15px 30px؛ font-family: "PT Sans Caption "، sans-serif ؛ اللون: أبيض ؛ الانتقال: .3s خطي ؛). القائمة الرئيسية a.current ،. menu-main a: hover (background: rgba (0،0،0، .2)؛) media (max-width: 680px) (.top-menu (margin: 0؛) .menu-main li (display: block؛ margin-right: 0؛) .menu-main: before، .menu-main: after (المحتوى: لا شيء ؛). menu-main a (display: block ؛))

    5. قائمة متجاوبة مع شعار في المنتصف

    import url ("https://fonts.googleapis.com/css؟family=Arimo") ؛ .top-menu (position: النسبي ؛ الخلفية: rgba (34،34،34، .2)؛). menu-main (list-style: none؛ margin: 0؛ padding: 0؛) .menu-main: after (content: "" ؛ عرض: جدول ؛ مسح: كلاهما ؛) .left-item (float: left؛). right-item (float: right؛) .navbar-logo (موضع: مطلق ؛ يسار: 50٪ ؛ أعلى : 50٪؛ تحويل: ترجمة (-50٪، - 50٪)؛). menu-main a (زخرفة النص: لا شيء؛ عرض: كتلة؛ ارتفاع السطر: 80 بكسل؛ مساحة الحشو: 0 20 بكسل؛ حجم الخط: 18 بكسل ؛ تباعد الأحرف: 2 بكسل ؛ عائلة الخطوط: "Arimo" ، sans-serif ؛ وزن الخط: غامق ؛ اللون: أبيض ؛ الانتقال: .3s خطي ؛). menu-main a: hover (background: rgba (0، 0،0، .3)؛)media (max-width: 830px) (.menu-main (padding-top: 90px؛ text-align: center؛) .navbar-logo (موضع: مطلق ؛ يسار: 50٪ ؛ top: 10px؛ transform: translateX (-50٪)؛) .menu-main li (float: none؛ display: inline-block؛). menu-main a (line-height: normal؛ padding: 20px 15px؛ font -الحجم: 16 بكسل ؛))media (أقصى عرض: 630 بكسل) (.menu-main li (العرض: block ؛))

    6. قائمة الاستجابة مع الشعار على اليسار

    import url ("https://fonts.googleapis.com/css؟family=Arimo") ؛ .top-menu (background: rgba (255،255،255، .5)؛ box-shadow: 3px 0 7px rgba (0،0،0، .3)؛ padding: 20px؛) .top-menu: after (content: "" ؛ عرض: جدول ؛ مسح: كلاهما ؛) .navbar-logo (عرض: كتلة مضمنة ؛). القائمة الرئيسية (نمط القائمة: لا شيء ؛ الهامش: 0 ؛ الحشو: 0 ؛ عائم: يمين ؛). القائمة الرئيسية li (display: inline-block؛). menu-main a (زخرفة النص: لا شيء ؛ العرض: الكتلة ؛ الموضع: نسبي ؛ ارتفاع الخط: 61 بكسل ؛ المساحة اليسرى: 20 بكسل ؛ حجم الخط: 18 بكسل ؛ تباعد الأحرف : 2px؛ font-family: "Arimo"، sans-serif؛ font-weight: bold؛ color: # F73E24؛ Transition: .3s linear؛). menu-main a: before (content: ""؛ width: 9px؛ الارتفاع: 9 بكسل ؛ الخلفية: # F73E24 ؛ الموضع: مطلق ؛ اليسار: 50٪ ؛ التحويل: تدوير (45 درجة) translateX (6.5 بكسل) ؛ التعتيم: 0 ؛ الانتقال: .3s خطي ؛). القائمة الرئيسية أ: التمرير: قبل (عتامة: 1 ؛)media (max-width: 660px) (.menu-main (float: none؛ padding-top: 20px؛). top-menu (text-align: center؛ padding: 20px 0 0 0؛ ) .menu-main a (padding: 0 10px؛). menu-main a: be الصدارة (التحويل: تدوير (45 درجة) translateX (-6px) ؛))media (max-width: 600px) (.menu-main li (display: block ؛))

    نواصل السلسلة ببرنامج تعليمي حول القوائم المنسدلة. الخطوة التالية هي القائمة المنسدلة الأفقية في css بيديك.

    إذا وصلت إلى هنا عن طريق الصدفة أو كنت تبحث عن تطبيق آخر للقائمة المنسدلة ، أنصحك بالذهاب إلى قسم الوالدين.

    سيصف هذا القسم القائمة المنسدلة الأفقية في CSS و HTML.

    التنقل في الصفحة:

    وبالتالي، مهمتنا:

    قم بإنشاء قائمة أفقية باستخدام قائمة css المنسدلة (في قوائم ul li) بدون استخدام jQuery و Javascript وأيضًا بدون استخدام الجداول

    في الكود.

    قائمة html أفقية منسدلة

    بادئ ذي بدء ، قبل البدء في كتابة الكود ، نحتاج إلى إنشاء قالب html للقائمة.

    نظرًا لحقيقة أننا نصنع قائمة عالمية ، أريد أن أجعلها مشابهة قدر الإمكان لإخراج قائمة WordPress. في رأيي ، يعد هذا أحد أبسط أكواد قائمة Html وأكثرها تنوعًا. تبدو هكذا:

    كما ترى من الكود ، سيتم تنفيذ القائمة المنسدلة الخاصة بنا في قوائم ul و li. هذا ما تبدو عليه هذه القائمة بدون أنماط CSS:

    دعنا نقول فقط أنها تبدو قبيحة ، مثل قائمة عادية. بعد ذلك ، نحتاج إلى تلوين هذه القائمة باستخدام أنماط CSS.

    القائمة المنسدلة الأفقية لـ CSS

    تعد أنماط CSS للقوائم المنسدلة والمزيد ضرورية مثل الهواء. بعد كل شيء ، تعتمد علامة التبويب المنسدلة على: hover pseudo-class.

    بالنسبة إلى القائمة المنسدلة الأفقية ، نحتاج إلى الأنماط التالية:

    # menu1 (الوضع: نسبي ؛ العرض: الكتلة ؛ العرض: 100٪ ؛ الارتفاع: تلقائي ؛ z-index: 10 ؛) # menu1 ul (الموقف: النسبي ؛ العرض: الكتلة ؛ الهامش: 0 بكسل ؛ الحشو: 0 بكسل ؛ العرض: 100 ٪؛ height: auto؛ list-style: none؛ background: # F3A601؛) # menu1> ul :: after (display: block؛ width: 100٪؛ height: 0px؛ clear: both؛ content: ""؛) # menu1 ul li (position: النسبي ؛ display: block ؛ float: left ؛ width: auto ؛ height: auto ؛) # menu1 ul li a (display: block؛ padding: 9px 25px 0px 25px؛ font-size: 14px؛ font- family: Arial، sans-serif؛ color: #ffffef؛ line-height: 1.3em؛ text-decoration: none؛ font-weight: bold؛ text-transform: uppercase؛ height: 36px؛ box-sizing: border-box؛ ) # menu1 ul li> a: hover، # menu1 ul li: hover> a (background: # EBBD5B؛ color: # 2B45E0؛)

    هذه ليست النهاية ، ولكنها جزء فقط من CSS للقائمة الأفقية الرئيسية. بعد ذلك ، سنكتب أنماط القائمة المنسدلة:

    # menu1 ul li ul (الموقف: مطلق ؛ أعلى: 36 بكسل ؛ اليسار: 0 بكسل ؛ العرض: لا شيء ؛ العرض: 200 بكسل ؛ الخلفية: # EBBD5B ؛) # menu1 ul li: hover ul (display: block ؛) / * هذا الخط يطبق آلية الإسقاط * / # menu1 ul li ul li (float: none؛ width: 100٪؛) # menu1 ul li ul li a (display: block؛ text-transform: none؛ height: auto؛ padding: 7px 25px؛ width: 100٪؛ box-sizing: border-box؛ border-top: 1px solid #ffffff؛) # menu1 ul li ul li: first-child a (border-top: 0px؛) # menu1 ul li ul li a: hover ( الخلفية: # FDDC96 ؛ اللون: # 6572BC ؛)

    الآن هذا كل شيء. يتم تنفيذ آلية القائمة المنسدلة نفسها في سطر واحد.

    انظر إلى الجلد بهذه القائمة:

    تين. 2 (قائمة أفقية منسدلة)

    يوجد أدناه عرض توضيحي للقائمة المنسدلة ، بالإضافة إلى رابط لتنزيل المصدر. (سيتم فتح العرض التوضيحي كقائمة منسدلة أعلى هذه الصفحة ، ولا داعي للنقر فوق فتح في نافذة جديدة 🙂 أو عجلة الماوس)

    قائمة منسدلة أفقية كاملة العرض

    يقولون إن معظمكم يمكن أن يوبخني ، مثل هذه القوائم ، كما أوضحت أعلاه ، هي تحيات من الماضي وجزئيًا أنت على حق ، على الرغم من أنني صادفت تخطيطات جديدة مع مثل هذه القوائم.

    أتمنى أن تقوم بتنزيل المثال أعلاه. يبقى Html كما هو ، لكننا سنغير CSS تمامًا. يمكنك فقط أخذ كود CSS من هنا ولصقه في المثال الذي تم تنزيله ، أو مشاهدته في الوضع التجريبي.

    #conteiner (العرض: 1000 بكسل ؛ الارتفاع: تلقائي ؛ الهامش: 0 بكسل تلقائي ؛ المساحة العلوية: 10 بكسل ؛) # menu1 (الموضع: نسبي ؛ العرض: الكتلة ؛ العرض: 100٪ ؛ الارتفاع: تلقائي ؛ مؤشر z: 10 ؛) # menu1 ul (الموضع: نسبي ؛ عرض: كتلة ؛ هامش: 0 بكسل ؛ حشوة: 0 بكسل ؛ عرض: 100٪ ؛ ارتفاع: تلقائي ؛ نمط القائمة: لا شيء ؛ الخلفية: # F3A601 ؛) # menu1> ul (محاذاة النص: justify؛ font-size: 1px؛ line-height: 1px؛) # menu1> ul :: after (display: inline-block؛ width: 100٪؛ height: 0px؛ content: ""؛) # menu1 ul li (position : نسبي ؛ عرض: كتلة مضمنة ؛ العرض: تلقائي ؛ الارتفاع: تلقائي ؛ المحاذاة الرأسية: أعلى ؛ محاذاة النص: يسار ؛) # menu1 ul li a (عرض: كتلة ؛ الحشو: 9px 35px 0px 35px ؛ حجم الخط : 14px؛ font-family: Arial، sans-serif؛ color: #ffffef؛ line-height: 1.3em؛ text-decoration: none؛ font-weight: bold؛ text-transform: uppercase؛ height: 36px؛ box-sizing : border-box؛) # menu1 ul li> a: hover، # menu1 ul li: hover> a (background: # EBBD5B؛ color: # 2B45E0؛) # menu1 ul li ul (الموقف: مطلق ؛ أعلى: 36px ؛ يسار : 0 بكسل ؛ عرض لا شيء؛ العرض: تلقائي ؛ الخلفية: # EBBD5B ؛ مساحة بيضاء: نوراراب. ) # menu1 ul li: last-child ul (/ * سيتم إرفاق العنصر الأخير إلى اليمين * / left: auto؛ right: 0px؛) # menu1 ul li: hover ul (display: block؛) / * هذا السطر تنفذ آلية التسرب * / # menu1 ul li ul li (display: block؛ width: auto؛) # menu1 ul li ul li a (display: block؛ text-transform: none؛ height: auto؛ padding: 7px 35px؛ width : 100٪؛ box-sizing: border-box؛ border-top: 1px solid #ffffff؛) # menu1 ul li ul li: first-child a (border-top: 0px؛) # menu1 ul li ul li a: hover (الخلفية: # FDDC96 ؛ اللون: # 6572BC ؛)

    أيضًا ، يختلف هذا المثال عن الأول في تلك القائمة المنسدلة ، القائمة المنسدلة نفسها ، وتمتد اعتمادًا على عرض جميع عناصر القائمة.

    بالنسبة لعناصر القائمة الطويلة جدًا ، قد لا يكون هذا الخيار مناسبًا جدًا ، نظرًا لأنها ستتجاوز الحدود. لتعطيل هذه الخاصية ، ما عليك سوى البحث عن الخاصية "white-space: nowrap؛" في المحدد # menu1 ul li ul ، وإزالته.

    يمكنك أدناه مشاهدة عرض توضيحي أو تنزيل مصادر القائمة المنسدلة الأفقية:

    بدون فواصل ، تبدو هذه القائمة كذلك. يمكن إضافة الفواصل إلى html يدويًا ، ولكن إذا كان لديك CMS ، على سبيل المثال WordPress ، فإن إضافتها يدويًا ليست مريحة للغاية هناك.

    القائمة المنسدلة الأفقية المحددة

    هناك عدة عشرات من الخيارات حول كيفية إضافة شريط (فاصل) بين عناصر القائمة في CSS خالص. المتغيرات التي تستخدم :: قبل أو :: بعد ، أو أبسط بكثير من الحد الأيسر ، لن أقوم بتكرار الحد الأيمن.

    هناك حالات يتم فيها إنشاء التخطيط بشكل رائع بحيث لا يمكنك الاستغناء عن المسج.

    يظل كود html كما هو ، فنحن نضمّن فقط في البداية مكتبة jQuery والملف الذي يستخدمها:

    مباشرة بعد.

    كما تفهم ، تحتاج إلى إنشاء ملف script-menu-3.jsووضع هذا الرمز الصغير هناك:

    $ (document) .ready (function () ($ ("# menu1> ul> li: not (: last-child)"). after ("")؛))؛

    يجب ترك أنماط CSS لمثل هذه القائمة كما هي ، + قم برمي هذه القطعة في النهاية:

    # menu1 ul li.razd (الارتفاع: 28 بكسل ؛ العرض: 1 بكسل ؛ الخلفية: #ffffff ؛ الهامش العلوي: 4 بكسل ؛)

    ستبدو هذه القائمة المنسدلة الأفقية ذات المحددات في jQuery كما يلي:

    يمكنك مشاهدته في الوضع التجريبي أو تنزيل قالب القائمة الأفقية أدناه:

    مزايا هذا الحل هي:

    • ستسحب القائمة ديناميكيًا ؛
    • المسافات البادئة من الفاصل إلى الفقرة هي نفسها في كل مكان ؛
    • تصميم أكثر جمالا ومرونة.

    القائمة المنسدلة ذات الطبقات الأفقية CSS + HTML

    نظرًا لأننا نتحدث عن القوائم المنسدلة متعددة المستويات عند التمرير ، فمن المحتمل أن يكون من المفيد تقسيمها إلى مجموعات فرعية:

    1. مع vipadashka عندما تحوم إلى الجانب
    2. مع قائمة منبثقة من المستوى الثالث

    في الأمثلة الخاصة بي ، سأعرض قائمة CSS متعددة المستويات من 3 مستويات ، ثم أعتقد أنه لن يكون من الصعب تخمين ما يجب القيام به.

    القائمة المنسدلة متعددة المستويات مع vipadash على الجانب عند التمرير

    أولاً ، نحتاج إلى تصحيح ملف html الخاص بنا قليلاً. سيتم إضافة سطرين للمستوى 3:

    #conteiner (العرض: 1000 بكسل ؛ الارتفاع: تلقائي ؛ الهامش: 0 بكسل تلقائي ؛ المساحة العلوية: 10 بكسل ؛) # menu1 (الموضع: نسبي ؛ العرض: الكتلة ؛ العرض: 100٪ ؛ الارتفاع: تلقائي ؛ مؤشر z: 10 ؛) # menu1 ul (الوضع: النسبي ؛ العرض: الحظر ؛ الهامش: 0 بكسل ؛ الحشو: 0 بكسل ؛ العرض: 100٪ ؛ الارتفاع: تلقائي ؛ نمط القائمة: لا شيء ؛ الخلفية: # F3A601 ؛) # menu1> ul (محاذاة النص: justify؛ font-size: 1px؛ line-height: 1px؛) # menu1> ul :: after (display: inline-block؛ width: 100٪؛ height: 0px؛ content: ""؛) # menu1 ul li (position : نسبي ؛ عرض: كتلة مضمنة ؛ عرض: تلقائي ؛ ارتفاع: تلقائي ؛ محاذاة رأسية: أعلى ؛ محاذاة النص: يسار ؛) # menu1 ul li.razd (الارتفاع: 28 بكسل ؛ العرض: 1 بكسل ؛ الخلفية: #ffffff ؛ margin-top: 4px؛) # menu1 ul li a (display: block؛ padding: 9px 45px 0px 45px؛ font-size: 14px؛ font-family: Arial، sans-serif؛ color: #ffffef؛ line-height: 1.3 em؛ text-decoration: none؛ font-weight: bold؛ text-convert: uppercase؛ height: 36px؛ box-sizing: border-box؛) # menu1 ul li> a: hover، # menu1 ul li: hover> a (معرفتي: # EBBD5B ؛ اللون: # 2B45E0 ؛ ) # menu1 ul li ul (الموضع: مطلق ؛ أعلى: 36 بكسل ؛ يسار: 0 بكسل ؛ عرض: لا شيء ؛ عرض: تلقائي ؛ الخلفية: # EBBD5B ؛ مسافة بيضاء: nowrap ؛) # menu1> ul> li: last-child> ul (/ * سيتم إرفاق العنصر الأخير إلى اليمين * / اليسار: auto؛ right: 0px؛) # menu1 ul li: hover> ul (display: block؛) / * هذا السطر يطبق آلية التسرب * / # menu1 ul li ul li (display: block؛ width: auto؛) # menu1 ul li ul li a (display: block؛ text-transform: none؛ height: auto؛ padding: 7px 45px؛ width: 100٪؛ box-size: border-box؛ border-top: 1px solid #ffffff؛) # menu1 ul li ul li: first-child> a (border-top: 0px؛) # menu1 ul li ul li a: hover، # menu1 ul li ul li : hover> a (background: # FDDC96؛ color: # 6572BC؛) # menu1 ul li ul li ul (top: 0px؛ left: 100٪؛ display: none؛ background: # fddc96؛) # menu1> ul> li: last-child> ul ul (يسار: تلقائي ؛ يمين: 100٪ ؛) # menu1 ul li ul li ul a (color: # F38A01 ؛)

    انسخ ملفات jQuery كما كانت من المثال السابق. قررت ترك الفواصل حتى تبدو القائمة أفضل قليلاً على الأقل. يمكنك بالطبع بدونهم.

    و هكذا حدثت الحكاية:
    لقد صنعت جلدين في واحد لإظهار كيف تبدو القائمة المنسدلة على اليمين وفي المنتصف.

    يمكنك أدناه مشاهدة عرض توضيحي وتنزيل مثال:

    القائمة المنسدلة متعددة المستويات مع vipadash المنبثقة عند التمرير

    ظهر القليل من الزيت في العنوان ، لكنه سيعمل ، الشيء الرئيسي هو الكود.

    يتمثل جوهر هذا المثال في إنشاء قائمة منسدلة أفقية كاملة العرض مع قائمة منسدلة كاملة العرض + طبقات.

    لن أقوم بتغيير كود html ، يمكن أن يؤخذ من المثال السابق. نحتفظ أيضًا بفواصل jQuery.

    سيتغير CSS الكامل فقط:

    #conteiner (العرض: 1000 بكسل ؛ الارتفاع: تلقائي ؛ الهامش: 0 بكسل تلقائي ؛ المساحة العلوية: 10 بكسل ؛) # menu1 (الموضع: نسبي ؛ العرض: الكتلة ؛ العرض: 100٪ ؛ الارتفاع: تلقائي ؛ مؤشر z: 10 ؛) # menu1 ul (الموضع: نسبي ؛ عرض: كتلة ؛ هامش: 0 بكسل ؛ حشوة: 0 بكسل ؛ عرض: 100٪ ؛ ارتفاع: تلقائي ؛ نمط القائمة: لا شيء ؛ الخلفية: # F3A601 ؛) # menu1> ul (محاذاة النص: justify؛ font-size: 1px؛ line-height: 1px؛) # menu1> ul :: after (display: inline-block؛ width: 100٪؛ height: 0px؛ content: ""؛) # menu1 ul li (position : نسبي ؛ عرض: كتلة مضمنة ؛ عرض: تلقائي ؛ ارتفاع: تلقائي ؛ محاذاة رأسية: أعلى ؛ محاذاة النص: يسار ؛) # menu1> ul> li (الموضع: ثابت ؛) # menu1 ul li.razd (الارتفاع : 28px؛ width: 1px؛ background: #ffffff؛ margin-top: 4px؛) # menu1 ul li a (display: block؛ padding: 9px 45px 0px 45px؛ font-size: 14px؛ font-family: Arial، sans- serif؛ color: #ffffef؛ line-height: 1.3em؛ text-decoration: none؛ font-weight: bold؛ تحويل النص: الأحرف الكبيرة؛ height: 36px؛ box-sizing: border-box؛) # menu1 ul li> أ: تحوم ، # menu1 ul li: hover> a (background: # EBBD5B ؛ اللون: # 2B45E0 ؛ ) # menu1 ul li ul (الموضع: مطلق ؛ أعلى: 36 بكسل ؛ يسار: 0 بكسل ؛ عرض: لا شيء ؛ عرض: 100٪ ؛ الخلفية: # EBBD5B ؛) # menu1> ul> li> ul :: after (clear: both ؛ float: none؛ width: 100٪؛ height: 0px؛ content: ""؛) # menu1 ul li: hover> ul (display: block؛) / * هذا الخط ينفذ آلية التسرب * / # menu1 ul li ul li ( display: block؛ width: 30٪؛ float: left؛) # menu1 ul li ul li a (display: block؛ text-transform: none؛ height: auto؛ padding: 7px 45px؛ width: 100٪؛ box-size: border -box؛) # menu1 ul li ul li: first-child> a (border-top: 0px؛) # menu1 ul li ul li a: hover، # menu1 ul li ul li: hover> a (background: # FDDC96 ؛ اللون: # 6572BC ؛) # menu1 ul li ul li ul (أعلى: 0px ؛ يسار: 100٪ ؛ عرض: لا شيء ؛ الخلفية: # fddc96 ؛ z-index: 15 ؛) # menu1 ul li ul li ul li (عرض : block؛ float: none؛ width: 100٪؛) # menu1 ul li ul li ul a (color: # F38A01؛ border-top: 1px solid #ffffff؛)

    هذا ما ستبدو عليه القائمة: الشيء الوحيد هو أن الموقع يجب أن يحتوي على مساحة كافية ، لأن العنصر المتطرف على اليمين ليس له مكان لقائمة منسدلة. يمكن حل هذه المشكلة من خلال: الطفل التاسع ، لكنني لم أكلف نفسي عناء تسييج الحديقة.

    شاهد عرضًا توضيحيًا لقائمة منسدلة أفقية ذات طبقات:

    كما لاحظت: اللوحة السفلية بعرض كامل أيضًا. هذه هي الطريقة التي يتم بها المتسربين في عدة كتل.

    هذا كل شيء بالنسبة لي ، وآمل أن يناسبك أحد الأمثلة على الأقل. شكرا للاهتمام.

    سوف يفيدهم أنا وأنا 🙂.

    إذا كنت قد قرأت المنشور بالكامل ، ولكنك لم تجد كيفية إنشاء القائمة المنسدلة الأفقية في css ، فاطرح سؤالاً في التعليقات أو استخدم البحث في الموقع.

    كما أنصحك بزيارة الصفحة الرئيسية https: // site / vypadayushhee-menu /، يتم جمع جميع الأمثلة وأنواع القوائم المنسدلة هناك.

    مرحبا. لوقت طويل لم أكتب منشورات عن أعمال html / css. في الآونة الأخيرة ، بدأت للتو في تكوين تصميم جديد وفي هذه العملية صادفت خدعة مثيرة للاهتمام تتيح لك جعل القائمة مطاطية (يمكنك إضافة عناصر جديدة إليها ولن يزداد الحجم ، ولكن سيكون هناك دائمًا 100 ٪ من الكتلة الأصل). لذلك ، سنقوم اليوم بتنفيذ القائمة المطاطية في css.

    إذا كنت كسولًا جدًا لقراءة المقال ، فيمكنك مشاهدة هذا الفيديو. يشرح المؤلف أيضًا كل شيء بشكل رائع:

    قائمة CSS Gum - الخطوة 1

    الخطوة الأولى دائمًا هي ترميز html ، أين يمكننا الذهاب بدونها؟ لكن في حالتنا ، كل شيء سيكون بسيطًا:

    1. المجمع بلوك القائمة
    2. القائمة نفسها ، معروضة عبر قائمة ذات تعداد نقطي (علامة ul)
    3. حسنًا ، عناصر القائمة موجودة بالداخل ، وبالتالي ، توجد روابط بالفعل

    كل شيء واضح ، هذا هو رمز الترميز الخاص بي:

    كل شيء يبدو قياسيًا ، مثل هذا:

    الآن سنقوم بإحضار كل شيء إلى النموذج المطلوب ، يتولى CSS العمل.

    الخطوة 2 - الأنماط الأساسية

    بعد ذلك ، سأضيف التصميم إلى كتلة الغلاف. وبالتحديد ، سأقوم بتعيين الحد الأقصى للعرض على 600 بكسل (فقط لتسهيل التقاط لقطة شاشة بحيث تتلاءم القائمة) ، وكذلك توسيط الكتلة.

    لف (
    الخلفية: #fff ؛
    أقصى عرض: 600 بكسل ؛
    الهامش: 0 تلقائي ؛
    }

    الخطوة 3 - تنفيذ المطاط

    الآن دعنا ننتقل إلى القائمة نفسها. سأقوم بإزالة العلامات منه (في علامة ul) ، وأجعل التدرج الخطي للخلفية ، والأهم من ذلك ، استخدم خاصية display: table-row لجعل حاوية القائمة تتصرف مثل صف الجدول. من المهم القيام بذلك لمزيد من التلاعب.

    قائمة R (
    الخلفية: التدرج الخطي (إلى اليمين ، # b0d4e3 0٪ ، # 88bacf 100٪) ؛
    عرض: صف الجدول.
    نمط القائمة: لا شيء ؛
    }

    كما ترون ، فإن الكود المعطى حل للتو كل شيء كتبت عنه. بالمناسبة ، من الملائم إنشاء تدرجات باستخدام أداة إنشاء التدرجات اللونية Ultimate CSS. سأكتب عنه في وقت لاحق.

    R- القائمة لي (
    محاذاة عمودية: أسفل ؛
    عرض: خلية الجدول.
    العرض: تلقائي ؛
    محاذاة النص: مركز ؛
    الارتفاع: 50 بكسل ؛
    الحد الأيمن: 1 بكسل صلب # 222 ؛
    }

    • محاذاة رأسية: أسفل - هذه الخاصية ضرورية بحيث إذا كان النص في عنصر القائمة يأخذ سطرين ، فسيتم عرضه بالضبط. عندما نقوم بعمل القائمة ، يمكنك إزالة هذه الخاصية ، والتكبير بحيث تتقلص العناصر ويلتف النص على سطرين وسترى مشكلة في العرض. إعادة الممتلكات ويجب أن يكون كل شيء على ما يرام.
    • display: table-cell - نظرًا لأننا قمنا بتعيين قائمة العرض نفسها كصف جدول ، فسيكون من المنطقي تعيين عناصرها ليتم عرضها كخلايا في الجدول. انه ضروري.
    • العرض: تلقائي - سيتم حساب العرض تلقائيًا ، اعتمادًا على طول النص في الفقرة
    • محاذاة النص: المركز هو فقط لتوسيط النص بالداخل
    • الارتفاع: 50 بكسل - اضبط الارتفاع على 50 بكسل
    • حسنًا ، يمين الحد هو مجرد حد على اليمين ، مثل فاصل العناصر

    في حين أن القائمة تبدو قبيحة ، ولكن لا شيء ، فقد حان الوقت لوضعها في الاعتبار.

    آخر شيء يجب القيام به هو تنسيق الروابط داخل الفقرات. هنا لدي هذا الرمز:

    R- القائمة لي أ (
    زخرفة النص: لا شيء ؛
    العرض: 1000 بكسل ؛
    الارتفاع: 50 بكسل ؛
    محاذاة عمودية: وسط ؛
    عرض: خلية الجدول.
    اللون: #fff ؛
    الخط: عادي 14 بكسل Verdana ؛
    }

    وهذا ما تبدو عليه القائمة الآن:

    مرة أخرى ، سأشرح بعض الأسطر:

    • تزيل خاصية زخرفة النص التسطير الافتراضي للروابط
    • العرض: 1000 بكسل هو على الأرجح أهم سطر. تحتاج إلى ضبط الروابط على نفس العرض تقريبًا ، يمكن أن تكون أقل ، ولكن بالضرورة أكثر من عنصر القائمة الأوسع. لن يصبح عرض الروابط 1000 بكسل ، نظرًا لأن عنصر القائمة li مع ضبط العرض على تلقائي سيحد من العرض ، ولكن هذا سيجعله دائمًا بعرض 100 بالمائة لأي عدد من العناصر في القائمة.
    • محاذاة رأسية: وسط وعرض: خلية جدول - الأولى ستحاذي النص عموديًا إلى المركز ، والثانية تجعل الروابط تظهر كخلايا. كلا الخاصيتين مطلوبة.
    • الخط هو مجرد مجموعة من إعدادات الخط. اقرأ عن خصائص css للخطوط في هذه المقالة.

    الخطوة 4 (اختياري) أضف التفاعل

    على سبيل المثال ، لتغيير لون عنصر القائمة عند المرور فوق الماوس. يتم ذلك ببساطة باستخدام الفئة الزائفة hover:

    R- القائمة li: hover (
    لون الخلفية: # 6bba70 ؛
    }

    اختبار المطاطية في القائمة

    رائع ، القوائم جاهزة ، لكننا لم نتحقق من أهم شيء - كم هو مطاطي ، كما وعدتك. حسنًا ، سأضيف عنصرين آخرين إلى القائمة:

    يظل عرض القائمة 600 بكسل. تقلصت العناصر المتبقية قليلاً لتناسب عنصرين جديدين.

    سأضيف نقطة طويلة أخرى:

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

    سأقوم بتقليل القائمة إلى ثلاثة عناصر.

    أصبحت العناصر أكثر حرية ، لكن عرض القائمة نفسها لم يتغير. لذلك قمنا بعمل قائمة طعام مطاط 100٪!

    كيف تتكيف؟

    في الأساس ، إذا أعطيت كتلة الغلاف أقصى عرض بدلاً من عرض ثابت ، فلن تحتاج حتى إلى تكييفها. في حالتي ، لدي خاصية max-width: 600px ، وعندما يصبح العرض أقل من 600 بكسل ، ستتقلص الكتلة ببساطة بعد الشاشة ، دون تشكيل تمرير أفقي.

    حسنًا ، إذا كنت تريد تغيير القائمة أو تصحيحها بطريقة ما على الأجهزة المحمولة أو الشاشات العريضة ، فستساعدك استعلامات الوسائط! حظا سعيدا في بناء الموقع!