CSS المجاورة الأخوة محددات - IE8 المشكلة
سؤال
أنا إنشاء نظام القائمة باستخدام UL/LI هيكل.أحاول استخدام الأخوة محددات لتحوم/تظهر القوائم الفرعية.
أنا باستخدام هذا ؛
#MainMenu li.Sel ul li.HasSub a:hover+ul {
display: block;
}
UL هيكل سيكون شيئا مثل هذا ؛
<ul id='MainMenu'>
<li class='Sel'>
<a href='#'>Click Me</a>
<ul>
<li class='HasSub'>
<a href='#'>Hover Over Me</a>
<ul>
<li>Link</li>
<li>Link</li>
</ul>
</li>
</ul>
</li>
</ul>
يفترض عندما تحوم فوق "تحوم فوق لي" ، الأخوة المجاهدين يجب أن يتم عرض.يعمل كبيرة في فايرفوكس ، ولكن ليس على الإطلاق في IE8.أنا متأكد من أني قد رأيت '+' الأخوة محدد المستخدمة في IE8 قبل, أين أنا ذاهب خاطئ ؟
المحلول
كنت بحاجة للتأكد من أي قيد التشغيل في وضع المعايير - ضع في doctype مثل هذا:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
من الوثائق:
المجاورة الأخوة combinator هو "علامة زائد" (+) الحرف الذي يفصل بين اثنين بسيطة محددات.بيضاء ليست كبيرة.
محدد من شكل "E+F" مباريات عنصر و عندما يتبع مباشرة الأخوة العنصر E في الوثيقة شجرة ، وتجاهل غير العقد عنصر (مثل نص العقد و تعليقات).العنصر E و F يجب أن تشترك في نفس الأم و E يجب أن يسبق مباشرة F.أن يطابق الطفل الأول من الأصل ، استخدم :الطفل الأول الدرجة الزائفة.
ملاحظة يتطلب Windows Internet Explorer 7 أو في وقت لاحق.
ملاحظة Combinators يتم تمكين فقط في وضع المعايير المتوافقة (الصارم !DOCTYPE).
نصائح أخرى
وسيكون من الأسهل لإضافة تحوم على عنصر لى وإصلاح تحوم لأي استخدام هذا <وأ href = "http://www.xs4all.nl/~peterned/csshover.html" يختلط = "نوفولو noreferrer "> http://www.xs4all.nl/~peterned/csshover.html
وأي
#MainMenu li.Sel ul li.HasSub:hover {
display: block;
}
وعلى أمل أن يساعد
وجوش