خط طويل في طاولة HTML تلوث تخطيط الخطوط الأخرى

StackOverflow https://stackoverflow.com/questions/775248

  •  13-09-2019
  •  | 
  •  

سؤال

لدي جدول HTML يعمل كتخطيط لصفحة (ممارسة سيئة أعرفها). هذا الجدول يذهب شيئا مثل هذا:

Label1    Value1
Label2    Value2
Label3    Value3
Label4    Value4a   Value4b    Value4c   Value4d

أضفت رسالة خطأ التحقق من الصحة التي يمكن أن تكون كبيرة جدا في وضعها، لذلك الآن هي:

Label1    Value1    ErrorMessage
Label2    Value2
Label3    Value3
Label4    Value4a   Value4b    Value4c   Value4d

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

Label1    Value1    Veeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeery long ErrorMessage
Label2    Value2
Label3    Value3
Label4    Value4a   Value4b                 Value4c               Value4d

خط 4 افسدت تماما. هل هناك طريقة لتحديد أن محتويات خلية رسالة الخطأ يجب أن تفيض الجدول، بدلا من تكبير المساحة للخلايا الأخرى في نفس الأعمدة؟ ربما بعض css السحرية؟

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

المحلول

لجعل النص يمتد خارج الجدول، يجب أن يكون عنصر النص إما على مستوى أعلى (هرمي) من الجدول، أو يجب وضعه دون علاقة مع الجدول.

يمكنك إنجاز لاحقا عن طريق القيام بشيء ما:

Label1    Value1    <span class="outside">Veeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeery long ErrorMessage</span>
Label2    Value2
Label3    Value3
Label4    Value4a   Value4b                 Value4c               Value4d

ثم إعطاء الطبقة الخارجية:

.outside
{
    position:absolute;
}

سيتعين عليك القيام ببعض التنسيق الإضافي للحصول عليه لإظهاره في موقع التصحيح.

تعديل:

أدركت فقط التنسيق ينظف قليلا إذا كنت تستخدم فكرة خوسية وكذلك تمتد بدلا من DIV.

table 
{
   table-layout:fixed;
   width:100em;
}

نصائح أخرى

حسنا، إليك الحل الذي اختبره ويعمله في Firefox 3:

<style type="text/css">
#error {
    width: inherit;
    overflow: auto;
    padding: 0;
    margin: 0;
}
</style>

<table width="400">
  <tr>
    <td width="100">A</td>
    <td colspan="3" width="300">
      <div id="error">Really long line...</div>
    </td>
  </tr>
  <tr>
    <td>1A</td>
    <td>1B</td>
    <td>1C</td>
    <td>1D</td>
  </tr>
  <tr>
    <td>2A</td>
    <td>2B</td>
    <td>2C</td>
    <td>2D</td>
  </tr>
</table>

هذا هو المخربقة جدا ولكن قد تعمل من أجل وضعك. إذا كان إمكاني العرض العرض الثابت لكل من خلايا المحتوى منك. ثم أضف خلية إضافية دون عرض. يجب بعد ذلك توسيع الخلية الأخيرة من ترك الآخرين في عرضها المحدد.

تحرير: بناء على تعليقك، يمكنك أيضا محاولة إعطاء رسالة الخطأ أعلى Z-Index. في CSS. سوف تحتاج أيضا إلى تعيين الرسائل وضع لجعل هذا العمل.

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