سؤال

يبدو أنني سمعت / اقرأ في مكان ما <div> داخل <td> كان لا لا. ليس الأمر بأنه لن يعمل، فقط شيء عنهم لا يتوافق حقا على أساس نوع العرض. لا يمكن العثور على أي دليل لدعم حدتي، لذلك قد أكون مخطئا تماما.

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

المحلول

باستخدام أ div على مرحلة ما td ليست أسوأ من أي طريقة أخرى لاستخدام الجداول للتخطيط. (بعض الناس لا يستخدمون الجداول أبدا للتخطيط، وحدثت أن أكون واحدا منهم.)

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

قواعد كيف div يجب أن يكون حجمها محددة جيدا في المعايير، ولكن قواعد كيف td يجب أن تكون حجمها ليست محددة جيدا، لذلك تستخدم المتصفحات المختلفة خوارزميات مختلفة قليلا.

نصائح أخرى

بعد التحقق من XHTML DTD. اكتشفت أنu003CTD> يسمح بإلقاء المساعدة لاحتواء عناصر كتلة مثل العناوين والقوائم وأيضاu003CDIV style=";text-align:right;direction:rtl"> -عناصر. وبالتالي، باستخدامu003CDIV style=";text-align:right;direction:rtl"> -إلقاء داخل أu003CTD> -إلقاء لا ينتهك معيار XHTML. أنا متأكد من أن الاختلافات الحديثة الأخرى ل HTML لها نموذج محتوى مكافئu003CTD> -جزء.

فيما يلي قواعد DTD ذات الصلة:

<!ELEMENT td %Flow;>
<!-- %Flow; mixes block and inline and is used for list items etc. -->
<!ENTITY %Flow "(#PCDATA | %block; | form | %inline; | %misc;>
<!ENTITY %block "p | %heading; | div | %lists; | %blocktext; | fieldset | table">

لا، ليس بالضرورة.

إذا كنت بحاجة إلى وضع حمس داخل TD، فتأكد من أنك تستخدم TD بشكل صحيح. إذا كنت لا تهتم بالبيانات المجدولة، والدلالات، فأنت لن تهتم في نهاية المطاف بالإحباط في TDS. لا أعتقد أن هناك مشكلة رغم ذلك - إذا كنت يملك للقيام بذلك، أنت بخير.

وفقا لمواصفات HTML

أ <div> يمكن وضعها حيث تدفق المحتوى متوقع1, ، وهو <td> نموذج المحتوى2.

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

على الرغم من استخدام الجداول للتخطيط - ومع ذلك، لا تزال في بعض الأحيان - أتصور أن معظم المتصفحات سوف تجعل المحتوى بشكل صحيح. حتى أي.

إذا كنت ترغب في استخدام الموضع: مطلق؛ على الحمل مع position: relative; على TD سوف تعمل في القضايا. FF، Safari، و Chrome (MAC، وليس الكمبيوتر الشخصي) لن يوضع Div بالنسبة إلى TD (مثلك تتوقع) هذا صحيح أيضا على Divs display: table-whatever; لذلك إذا كنت تريد أن تفعل ذلك تحتاج إلى اثنين divs، واحد للحاوية width: 100%; height: 100%; ولا توجد حدود بحيث تملأ TD دون أي تأثير بصري. ثم واحد المطلق.

بخلاف ذلك لماذا لا تقسم الخلية فقط؟

لقد واجهت المشكلة عن طريق وضع <div> في داخل <td>.

كنت غير قادر على تحديد DIV باستخدام document.getElementById() إذا قمت بوضع ذلك داخل TD. ولكن في الخارج، كان يعمل بشكل جيد.

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

نظرا لأنه ساري المفعول، يمكنك استخدامه لأغراض أخرى. على سبيل المثال، ما سألتحقه هو وضع بعض الفاخرة "CSSed" divs داخل صفوف الجدول ثم استخدام وظيفة مسج سريعة للسماح للمستخدم بفرز المعلومات حسب السعر، الاسم، إلخ. بهذه الطريقة، سيعطيني جدول التخطيط الوحيد هو "الترتيب العمودي"، لكنني سأتحكم في العرض والارتفاع والخلفية وغيرها من Divs by CSS.

طريقتان للتعامل معها

  1. وضع div في داخل tbody بطاقة شعار
  2. وضع div في داخل tr بطاقة شعار

كلا النهجين صالحة، إذا رأيت التقدير: https://stackoverflow.com/a/23440419/2305243.

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

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