قم بتمديد القائمة إلى العرض الكامل لـ css. كيف تصنع قائمة استجابة مرنة في المغلق؟ ترميز HTML والأنماط الأساسية للقوائم الأفقية
تخطيط شائع إلى حد ما لقائمة الموقع ، عندما تشغل الحاوية بها العرض الكامل المتاح على الصفحة. في هذه الحالة ، يكون العنصر الأول مجاورًا للحافة اليسرى ، والعنصر الأخير على اليمين ، والمسافة بين جميع العناصر متساوية. اليوم سوف نخبرك كيف يتم ذلك.
نقدم لك مثالاً على كيفية تنفيذ قائمة مطاطية باستخدام CSS لموردك. في هذه القائمة ، سيتم وضع العناصر في سطر واحد. لن يتم استخدام جافا سكريبت. سيتم تضمين محتويات القائمة في قائمة منتظمة. السمة الرئيسية لهذه القائمة هي تنوعها ، والذي يتم التعبير عنه في حقيقة أن كل من عدد العناصر وطولها يمكن أن يكونا.
كيف يتم تنفيذ هذا؟
يمكن لكل مبرمج أن يقدم طريقته الخاصة لحل المشكلة. كل هذا يتوقف على خياله ومستوى الاحتراف والقدرات. الحل الأكثر شيوعًا لهذه المشكلة هو استخدام الجدول. أيضا ، قد يقترح الكثيرون استخدام جافا سكريبت. أولئك الذين يقترحون استخدام خاصية العرض مع القيمة الطاولةأو خلية الجدول- أسارع إلى الغضب. هذه الطريقة ليست متوافقة بشكل كافٍ مع المستعرضات.
حلنا
سيتم بناء اقتراحنا على أساس متين من معرفة HTML5 و CSS3.
يعتمد جوهر العملية على خاصية محاذاة النص بقيمة ضبط. بالنسبة لأولئك الذين نسوا ، أذكركم: هذه الخاصية توجه محاذاة النص عبر عرض الحاوية بالكامل.
هناك قاعدتان أساسيتان يجب اتباعهما عند استخدام الحل. الأول هو أن عرض حاوية عنصر القائمة يجب أن يكون أصغر من النص. هذا ليس في سطر واحد. القاعدة الثانية المهمة هي أن الكلمات تمتد بالتساوي ، بغض النظر عما إذا كانت تنتمي إلى نفس النقطة أم لا.
يوجد أدناه الرمز الذي يعمل كمثال على إنشاء قائمة "مطاطية":
لغة البرمجة
< ul> < li>< a href= "#" >الرئيسي a> li> < li>< a href= "#" >مدونة او مذكرة a> li> < li>< a href= "#" >الإخبارية a> li> < li>< a href= "#" >شائع a> li> < li>< a href= "#" >عناصر جديدة a> li> ul>
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" > li> ")) ؛) ul .last (margin-left: 100٪؛) * html ul (/ * need ie6 only * / height: 30px؛)
بعد تسجيل قيم الممتلكات الضرورية والرمز ، نحصل على القائمة المطاطية التالية:
عيوب الطريقة
- كود بالجملة
- عدم القدرة على تحديد الحالة النشطة لعنصر من خلال محدد الفئة. هذا بسبب كسر الكلمات في الفقرات (إذا كانت واحدة). الحل لهذه المشكلة هو إضافة حاوية أخرى داخل عناصر القائمة.
- بالنسبة إلى القائمة المنسدلة ، تحتاج إلى تخصيص الكود نظرًا للتأثير السلبي للتجاوز.
ما المتصفحات التي تعمل فيها؟
6.0+ | 6.0+ | 10.5+ | 5.0+ | 3.6+ | - | - |
قائمة أفقيةهي قائمة بأقسام الموقع ، لذا فمن المنطقي أكثر أن تضع علامة عليها داخل العنصر
- ثم قم بتطبيق أنماط CSS على عناصرها. ترتيب القائمة هذا هو الأكثر شيوعًا بسبب المزايا الواضحة في وضعه على صفحة الويب.
- عنصر القائمة
- عنصر القائمة
- عنصر القائمة ...
كيفية عمل قائمة أفقية: أمثلة على الترميز والتصميم
ترميز 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 وأيضًا بدون استخدام الجداول