سؤال

يحتوي TD على div من الداخل التي قمت بإزالتها باستخدام وظيفة تلاشي jQuery ، ولكن عندما تنتهي من أن الحدود تختفي أيضًا.

أريد أن أتجنب ذلك ، هل هناك أي طريقة غير إضافة "" (والتي تسبب ذلك قبيحًا)؟

تحرير: أنا أستخدم Internet Explorer (6 و 7)

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

المحلول

CSS:

table {
  empty-cells: show;
}

تحتاج أيضًا إلى وضع IE في وضع عرض المعايير حتى يعمل هذا. بعد إضافة doctype ، يلعب IE8 (بيتا 2 والأعلى) على الأقل بشكل جيد.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 "http://www.w3.org/TR/html4/loose.dtd">

IE7 وتحت ما زال لن يفعل ذلك. الدعم ل empty-cells يقال أنه "جزئي" (ل IE7 و IE8 بيتا 1) على بيان توافق MS CSS. مهما كانت يعني "الجزئي" ، فإن عدم تنفيذ "العرض" بالكاد يمكن أن يطلق عليه "الدعم الجزئي". يمكن إجبار هذه المتصفحات على رسم حدود الخلية من خلال حدود الطاولة المنهارة بشكل عام:

table {
  border-collapse: collapse;   
}

إعداد empty-cells يتم تجاهله. ولكن بمجرد انهيار الحدود ، لا تحتاج إلى ضبط ذلك على أي حال ، لأن جميع المتصفحات ستعرض الحدود المنهارة.

نصائح أخرى

u003Ctd style="font-size: 1pt"> u003Ctd>

أضف مساحة غير متجانسة إلى الخلية:

<td>&nbsp;</td>

اختراق ، ولكن اختراق أفضل من إضافة صورة.

انتهى بي الأمر بإضافة صورة شفافة 1px إلى الخلية كما اقترحه Jukka "Yucca" Korpela. الآن سأستخدم هذا الحل إذا لم يكن هناك بديل أفضل

لذلك إذا كان لديك جدول مثل أدناه:

<table border="1">
<tr>
 <td>Breakfast</td>
 <td><div id="foo">Lunch</div></td>
 <td>Dinner</td></tr>
</table>

وأنت تتلاشى ، مع jQuery ، الغداء ، لماذا لا تعيد أي شيء فارغ مع فدين؟

مثل أدناه:

$("#foo").fadeOut("slow").html('').fadeIn("fast");

اعتمادًا على ما تحاول تحقيقه بالضبط ، يمكنك تعيين ملف visibility-مذاع إلى DIV hidden بدلا من ضبطها display-تمرين ل none, ، أي عليك استعادة display و opacity وحدد visibility يدويًا بعد الدعوة إلى fadeOut().

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