টিডির অভ্যন্তরে একটি ডিআইভি একটি খারাপ ধারণা?


143

দেখে মনে হয়েছে আমি কোথাও শুনে / পড়েছি যে <div> অভ্যন্তরটি <td>নো-নো। এটি কাজ করে না এমন নয়, তাদের প্রদর্শন ধরণের উপর ভিত্তি করে তাদের সত্যিকারের সামঞ্জস্যপূর্ণ না হওয়ার বিষয়ে কিছু। আমার কুঁচকে ব্যাক আপ করার কোনও প্রমাণ খুঁজে পাচ্ছে না, তাই আমি সম্পূর্ণ ভুল হতে পারি।

উত্তর:


144

বিন্যাসের জন্য সারণী ব্যবহারের অন্য কোনও divপদ্ধতির tdচেয়ে একটি অন্তর্নিহিত এ ব্যবহার করা খারাপ নয়। (কিছু লোক যদিও লেআউটের জন্য টেবিলগুলি কখনও ব্যবহার করেন না এবং আমি তাদের মধ্যে একটি হয়ে ওঠে))

আপনি যদি একটি ব্যবহার করেন তাহলে divএকটি tdআপনি কিন্তু পরিস্থিতি যেখানে এটি ভবিষ্যদ্বাণী করা কিভাবে উপাদানের মাপের হবে কঠিন হতে পারে পাবেন। ডিভের জন্য ডিফল্ট হ'ল তার পিতামাতার কাছ থেকে তার প্রস্থ নির্ধারণ করা হয় এবং কোনও টেবিল ঘরের জন্য ডিফল্ট তার সামগ্রীর আকারের উপর নির্ভর করে তার আকার নির্ধারণ করে।

কীভাবে divআকার নির্ধারণ করা tdউচিত সে সম্পর্কে নিয়মগুলি মানগুলিতে ভালভাবে সংজ্ঞায়িত করা হয় তবে কীভাবে আকার নির্ধারণ করা উচিত তার বিধিগুলিও যথাযথভাবে সংজ্ঞায়িত হয় না, তাই বিভিন্ন ব্রাউজারগুলি কিছুটা পৃথক অ্যালগোরিদম ব্যবহার করে।


আমার সন্দেহ হয় এখান থেকে আমার কুঁচি এসেছে। এটা পরিষ্কার করার জন্য ধন্যবাদ।
jcollum

9
যদি আপনার কলামগুলির একটি পূর্বনির্ধারিত প্রস্থ থাকে, তবে এটি কোনও সমস্যা হওয়া উচিত নয়। কেবল সারণী-বিন্যাস সেট করতে মনে রাখবেন: টেবিলের উপরে স্থির করে দেওয়া হয়েছে যাতে ব্রাউজারগুলি আপনার প্রস্থগুলিকে ওভাররাইড না করে (সম্ভাব্যভাবে সমস্যার দিকে পরিচালিত করে)
জেনস রোল্যান্ড

6
তিনি কখনও বলেননি যে তিনি বিন্যাসগুলির জন্য টেবিল ব্যবহার করছেন।
টেক্সলেট করুন

@ টেক্সলেট table-layout:fixedসিএসএস আপনি যা ভাবেন তা নয়। এটি কেবল প্রথম সারির আকারের গণনা করে টেবিলগুলি রেন্ডারিংয়ের সময় গণনা ব্রাউজারগুলির পরিমাণ হ্রাস করে।
স্টিভবি

73

এক্সএইচটিএমএল ডিটিডি চেক করার পরে আমি আবিষ্কার করেছি যে <TD> এলিমেন্টে ব্লক উপাদানগুলি শিরোনাম, তালিকাগুলি এবং </ strong> উপাদানগুলিতে ধারণ করার অনুমতি রয়েছে। সুতরাং, <TD> এলিমেটের <<<< এলিমেন্ট ব্যবহার করে এক্সএইচটিএমএল মান লঙ্ঘন করে না। আমি নিশ্চিত যে এইচটিএমএলের অন্যান্য আধুনিক প্রকরণের <TD> এলিমেন্টের জন্য একটি সমতুল্য সামগ্রীর মডেল রয়েছে pretty

এখানে সম্পর্কিত ডিটিডি বিধি রয়েছে:

<!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">

1
এটি সুনির্দিষ্ট উত্তরটি আমি খুঁজছিলাম। তাই আপনাকে ধন্যবাদ আমি ভেবে দেখছি আমি আজ রাতে কিছুটা ভাল ঘুমাব।
3Dom

পেইক দ্বারা সমর্থিত একমাত্র উত্তর।
পিটারচৌলা

ডিটিডি যেখানে এটি ব্যাখ্যা করে আমাদের সাথে ভাগ করুন। এটি পড়ার পক্ষে সহজ দলিল নয়। ধন্যবাদ!
স্মৃতিভারাতুর

1
@ রেডোলেন্ট: আমি আমার উত্তরে প্রাসঙ্গিক ডিটিডি বিধি যুক্ত করেছি।
মার্টিন লিভারেজ

এইচটিএমএল নয়, যা এক্সএইচটিএমএল নয়?
ক্রাশ

38

না। অগত্যা।

আপনার যদি কোনও টিডির মধ্যে ডিআইভি স্থাপনের প্রয়োজন হয় তবে নিশ্চিত হয়ে নিন যে আপনি টিডিটি সঠিকভাবে ব্যবহার করছেন। আপনি যদি সারণী-উপাত্ত এবং শব্দার্থবিজ্ঞানের বিষয়ে যত্নশীল না হন তবে আপনি শেষ পর্যন্ত টিডিতে ডিআইভি সম্পর্কে চিন্তা করবেন না। আমি মনে করি না যদিও এখানে কোনও সমস্যা আছে - যদি এটি করতে হয় তবে আপনি ভাল আছেন।

এইচটিএমএল স্পেসিফিকেশন অনুযায়ী

একটি <div>যেখানে স্থাপন করা যেতে পারে প্রবাহ বিষয়বস্তু বলে আশা করা হচ্ছে 1 , যা <td>বিষয়বস্তু মডেল 2


2
আমি সর্বদা একটি হ্যাঁ বা না দিয়ে কোনও প্রশ্নের উত্তর দিতে চেয়েছিলাম;)
জানি হার্টিকাইনেন

+1 - সত্যই কিছু উত্তর দিয়ে উত্তর দিতে চেয়েছিল, কিন্তু ব্যর্থ হয়েছে।
karim79

যদিও এটি আরও উত্সাহ পেয়েছে আমার মনে হয় যে গুফা এখানে এমন একটি বক্তব্য নিয়ে এসেছিল যা এখানে সম্বোধন করা হয়নি (এবং আমার
কুঁচকের

14

একটি সারণী-ঘরে বৈধভাবে ব্লক-স্তরের উপাদানগুলি থাকতে পারে তাই এটি সহজাতভাবে, কোনও ভুল-প্যাস নয়। অবশ্যই ব্রাউজারের ইমপ্লান্টেশন এটিকে একটি অনুমানমূলক-তাত্ত্বিক অবস্থান ছেড়ে দেয়। এটি লেআউট সমস্যা এবং ত্রুটি সৃষ্টি করতে পারে।

যদিও সারণিগুলি লেআউটটির জন্য ব্যবহৃত হত - এবং কখনও কখনও এখনও থাকে - আমি ধারণা করি যে বেশিরভাগ ব্রাউজারগুলি সামগ্রীটি যথাযথভাবে রেন্ডার করে। এমনকি IE।


আমার সন্দেহ হয় যে আমি ব্রাউজার বাস্তবায়ন হলাম সেখান থেকে আমার "অপেক্ষা, এটি একটি খারাপ ধারণা"।
jcollum

13

আপনি যদি অবস্থান ব্যবহার করতে চান: পরম; টিডি সহ position: relative;ডিভ উপর আপনি ইস্যুতে চালানো হবে। এফএফ, সাফারি এবং ক্রোম (ম্যাক, যদিও পিসি নয়) টিডির তুলনায় ডিভের অবস্থান করবে না (যেমনটি আপনি আশা করবেন) এটি ডিভের ক্ষেত্রেও সত্য display: table-whatever;যদি আপনি এটি করতে চান যে আপনার দুটি ডিভ প্রয়োজন, একটি ধারক width: 100%; height: 100%;এবং কোনও সীমানা নেই তাই এটি কোনও ভিজ্যুয়াল প্রভাব ছাড়াই টিডি পূরণ করে। এবং তারপরে পরম একটি one

অন্যটি কেন শুধু ঘরের বিভাজন নয়?


6
একমাত্র ব্যবহারিক, অ পবিত্র-উত্তর উত্তর
অ্যান্টনি হ্যাচকিনস

2

<div>ভিতরে রেখে সমস্যার মুখোমুখি হয়েছি <td>

আমি document.getElementById()ডিডিটি ভিতরে রাখলে আমি ডিভটি সনাক্ত করতে পারিনি । কিন্তু বাইরে, এটি ঠিকঠাক কাজ করছিল।


1

সবাই উল্লিখিত হিসাবে, এটি লেআউট উদ্দেশ্যে ভাল ধারণা নাও হতে পারে। আমি এই প্রশ্নে পৌঁছেছি কারণ আমি একই ভাবছিলাম এবং আমি কেবল এটি বৈধ কোড হবে কিনা তা জানতে চেয়েছিলাম।

যেহেতু এটি বৈধ, আপনি এটি অন্য কাজে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আমি এটি ব্যবহার করতে যাচ্ছি তা হ'ল টেবিলের সারিগুলির মধ্যে কিছু অভিনব "সিএসএসডি" ডিভগুলি রেখে তারপরে একটি তাত্ক্ষণিক jQuery ফাংশন ব্যবহার করে ব্যবহারকারীকে মূল্য, নাম ইত্যাদির মাধ্যমে তথ্য সাজানোর জন্য এই পদ্ধতিতে, কেবলমাত্র লেআউট টেবিলটি আমাকে "উল্লম্ব ক্রম" দিবে তবে আমি সিএসএস দ্বারা ডিভের প্রস্থ, উচ্চতা, পটভূমি ইত্যাদি নিয়ন্ত্রণ করব।



-4

এটি শব্দার্থবিভাজনকে ভেঙে দেয় , এটাই সব। এটি দুর্দান্ত কাজ করে তবে স্ক্রিন পাঠক বা রাস্তার নিচে এমন কিছু থাকতে পারে যা যদি আপনি "শব্দার্থবিজ্ঞান" ভাঙেন তবে আপনার এইচটিএমএল প্রসেস করা উপভোগ করতে পারবেন না।


13
@ গ্রেগ, কেন এটি শব্দার্থবিধি ভাঙবে? একটি ডিভ হ'ল পৃষ্ঠার সামগ্রীর একটি ব্লক-স্তরীয় বিভাগ বা উপ-বিভাগ। এগুলি কোনও টেবিলে রাখার জন্য এটি মূলত এবং অপরিবর্তনীয়ভাবে অ্যান্টি-সিমেটিক নয়।
ডেভিড বলছেন মনিকা

2
আমি আপনাকে বেশ কয়েকটি প্রতিক্রিয়া লেখার চেষ্টা করেছি যা আমার উত্তরকে ন্যায়সঙ্গত করেছে, তবে আমি ব্যক্তিগত মতামত অবতীর্ণ করে চলেছি। : / আমি অনুমান করি আমার সেরা প্রতিক্রিয়াটি হ'ল যেটি আপনার কক্ষে যা রয়েছে সম্ভবত অন্য কোনও HTML ট্যাগ দ্বারা এটি আরও ভালভাবে উপস্থাপিত হতে পারে। আপনি যদি সত্যই আপনার কক্ষগুলিকে উপাদানগুলিতে বিভক্ত করে থাকেন তবে সম্ভবত আপনার কোনও টেবিলটি ব্যবহার শুরু করা উচিত নয়, আপনার লেআউটের জন্য আপনার ডিআইভিগুলির একটি সিরিজ স্টাইল করা উচিত। আমি কেন এটি আরও ভাল শব্দে রাখতে পারি না তা নিশ্চিত নই ... আইএমএইচও-র কাছে এটি চক করুন, আমার ধারণা।
গ্রেগ

হুম, আপনি কি বোঝাতে চেয়েছেন যে কোনও টিডি অর্থাত্‍ ডিআইভির মতো একই জিনিস, তাই কেন তার দুটি কেন পর পর থাকে?
jcollum

2
@ জ্যাকলুম: না, আমি এটি বলব না যে তারা শব্দার্থগতভাবে একই রকম। টিডি অবশ্যই একটি টেবিলের একটি ঘর; এটি একটি পরিচিত কাঠামোর একটি অংশ: একটি টেবিলের সারি রয়েছে, একটি সারিতে কোষ রয়েছে, কোষগুলিতে ডেটা রয়েছে। ডিআইভি হ'ল একটি ধারক ... এটি নথির যে কোনও সময় যে কোনও কিছু উপস্থাপন করতে পারে - মার্কআপের উদ্দেশ্যে উদ্দেশ্য হিসাবে এটি থেকে কোনও শব্দার্থবিজ্ঞান পেতে আপনাকে এটিকে স্টাইল প্রয়োগ করতে হবে।
গ্রেগ

7
একটি ডিআইভি অর্থহীন অর্থহীন, তাই আমি দেখি না যে এটি কীভাবে ভুল হতে পারে।
রেক্স এম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.