كيف يمكنني إجبار TD مع عدم وجود محتوى لتقديم حدوده؟
-
03-07-2019 - |
سؤال
يحتوي 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> </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()
.