سؤال

كيف يمكنك طي DIV و P-Alements إذا كانت فارغة بواسطة CSS بحيث لا يتم عرض العلامات للمستخدم في التعليمات البرمجية المصدرية؟

هذه العناصر في التعليمات البرمجية المصدرية على الرغم من أنها فارغة. هذا يسبب البق مع بقية الموقع.

أركض هذا دون جدوى

div.unsuccessful,
div.unsuccessful p {
    visibility: collapse;                                                                                                                                                                                      
}

هذا يقترحني أنه لا يمكن أن تفعل هذا الشيء من قبل CSS. ربما تكون هناك حاجة إلى أداة أخرى مثل PHP.

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

المحلول

ليس لدى CSS تأثير على رمز HTML الفعلي، لذلك لا يمكن القيام بذلك. في CSS3 (القادم)، يمكنك إيقافها من العروض باستخدام :empty الطبقة الزائفة:

div:empty {
    display: none;
}

هذا هو بالطبع ليس نفس الشيء، ولكن من المحتمل أن يحل المشكلات التي تواجهها .. في حالة دعمها فقط، فإنهم لا يفعلون ذلك، ومع ذلك.

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

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

أيضا، كن حذرا. العلامات الفارغة ليست دائما بلا معنى. في الواقع، إزالة كل فارغة <div> هناك يمكن اعتبارها ضارة.

نصائح أخرى

نعم، إذا كنت ترغب في إيقافها المصدر, ، ستحتاج إلى إجراء الاعتبارات المناسبة في رمز الخادم الخاص بك. بدلا من ذلك، يمكنك أيضا تعيين HTML في جافا سكريبت، لكنه ليس النهج الموصى به لهذه المشكلة، وربما. قد ترغب في القول قليلا أكثر من ذلك، حول ما تحاول القيام به.

تهدف ملكية الرؤية إلى تعيين ما إذا كان يتم عرض محتوى الكائن أم لا. لن يزيل العنصر من داخل دوم.

طي جديد لنظام التشغيل Windows Internet Explorer 8

المستخدمة في الجداول لإزالة الصفوف والأعمدة؛ لجميع العناصر الأخرى، نفس المخفية.

أيضا لماذا تريد أن تفعل هذا؟

div { display: none; }

يزيل عنصر تماما من الصفحة.

سوف لا تزال تظهر في الخاص بك مصدر الرمز, ، بغض النظر عن ما تفعله مع CSS. يجمع المتصفح بين مصدر HTML وتوجيهات CSS في صفحة عرضية، لم يتم تعديل المصدر الأصلي. يمكن أن تؤثر CSS فقط على العرض المرئي للعناصر، لا يمكن تغيير العناصر. لإزالة العناصر من DOM، ستحتاج إلى جافا سكريبت (أو عدم وضع العناصر هناك في المقام الأول).

نعم، سيتعين عليك استخدام معالجة جانب الخادم لإظهار أو عدم إظهار بعض التعليمات البرمجية للمستخدم:

if ($showAdminLink) {
    echo "<p><a href=\"admin.php\">Admin panel</a></p>";
}

بغض النظر عن الحيل التي تجربتها، يمكن تغيير أي شيء تم القيام به على جانب العميل (HTML، JavaScript، CSS) ولعبها.

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