<p> ট্যাগটিতে কেন এটি <div> ট্যাগ থাকতে পারে না?


169

আমি যতদূর জানি, এটি সঠিক:

<div>
  <p>some words</p>
</div>

তবে এটি ভুল:

<p>
  <div>some words</div>
</p>

প্রথমটি ডাব্লু 3 সি ভ্যালিডেটর (এক্সএইচটিএমএল 1.0) পাস করতে পারে তবে দ্বিতীয়টি পারবে না। আমি জানি যে কেউ দ্বিতীয়টির মতো কোড লিখবে না। আমি শুধু জানতে চাই কেন।

এবং অন্যান্য ট্যাগগুলির সংযুক্তি সম্পর্কে কী?


9
কারণ <p>এটি একটি ব্লক স্তর উপাদান, এবং এটি পাঠ্য প্রদর্শন করার জন্য ব্যবহৃত (ধারণা করা হয়), এটি এর ভিতরে থাকা অন্য ব্লক স্তরের উপাদানগুলিকে অনুমতি দেয় না, তবে কেবল ইনলাইনগুলি পছন্দ করে <span>এবং পছন্দ করে <strong>
বোজাঙ্গলেস

22
জামওয়াফেলস: pএটি একটি ব্লক স্তর উপাদানটির সাথে কোনও সম্পর্ক নেই। divএটিও একটি এবং অন্য ব্লকগুলিকে অনুমতি দেয়।
জোয়

: এর সম্ভাব্য প্রতিলিপির stackoverflow.com/questions/4967976/... (unflagged): যে কোন ভদ্র উত্তর উত্তর দিতে হবে কিভাবে এইচটিএমএল বৈশিষ্ট পড়তে এবং এইভাবে এই উত্তর দিন।
সিরো সান্তিলি 郝海东 冠状 病 六四 事件 法轮功

ডিভের স্টাইলটিকে ইনলাইন হিসাবে ঘোষণা করা কোনওভাবেই কাজ করে না।
ট্রাইঙ্কো

উত্তর:


198

অনুমোদিত ধারক সম্পর্কগুলির সন্ধানের জন্য একটি অনুমোদিত স্থান হ'ল এইচটিএমএল স্পেক। উদাহরণস্বরূপ, http://www.w3.org/TR/html4/sgml/dtd.html দেখুন । এটি নির্দিষ্ট করে কোন উপাদানগুলি ব্লক উপাদানগুলি এবং কোনটি ইনলাইন রয়েছে। এই তালিকাগুলির জন্য, "এইচটিএমএল সামগ্রী সামগ্রীগুলি" চিহ্নিত চিহ্নিত বিভাগটির জন্য অনুসন্ধান করুন।

পি উপাদানগুলির জন্য, এটি নিম্নলিখিতগুলি নির্দিষ্ট করে, যা নির্দেশ করে যে পি উপাদানগুলিকে কেবল ইনলাইন উপাদান থাকতে পারে।

<!ELEMENT P - O (%inline;)*            -- paragraph -->

এটি http://www.w3.org/TR/html401/struct/text.html#h-9.3.1 এর সাথে সামঞ্জস্যপূর্ণ , যা বলে যে পি উপাদানটিতে "ব্লক-স্তরীয় উপাদান থাকতে পারে না (নিজে পি সহ)" "


74
আমার চশমা এড়ানোর অভ্যাস আছে, আমাদের কাছে এ জাতীয় জিনিসের জন্য সর্বাধিক অনুমোদিত ডকুমেন্ট রয়েছে, কারণ তারা পড়তে মজাদার নয়। প্রকৃতপক্ষে এগুলি পড়ার জন্য, তাদের বোঝার জন্য এবং প্রশ্নের উত্তর দেওয়ার জন্য তাদের ব্যবহারের জন্য +1।
স্টুটি

3
এটি এখনও এইচটিএমএল 5 এর জন্য বৈধ? যুক্ত লিঙ্কটি বিশেষত এইচটিএমএল 4 উল্লেখ করে এবং এইচটিএমএল 5 এর নথির কোনও সংজ্ঞা নেই
আজেদী 32

2
@ আজেদী 32 হ্যাঁ, এখানে । এইচটিএমএল 5 প্রচুর পরিভাষার নাম বদলেছে, তবে "অনুমোদিত সামগ্রী: ফ্রেসিং সামগ্রী" এর অর্থ %inlineউপরের বিটের মতোই । ওরিওলের উত্তরও দেখুন।
মিস্টার লিস্টার

আপনার সাথে স্টুটি ঠিক আছে, এজন্য স্ট্যাক ওভারফ্লো বিদ্যমান।
ক্যাপ্টেন হাইপারটেক্সট

69

সংক্ষেপে, DOM এর মধ্যে কোনও <div>উপাদান স্থাপন করা অসম্ভব <p>কারণ খোলার <div>ট্যাগটি স্বয়ংক্রিয়ভাবে <p>উপাদানটি বন্ধ করে দেবে ।


2
আহ, এটি ব্যাখ্যা করে কেন এপি-র ভিতরে একটি ডিভের আগে বিশাল জায়গা রয়েছে, কারণ পি আসলে ডিভের ঠিক আগেই শেষ হয়।
অ্যারোনএলএস

2
আপনি ডোমের মধ্যে একটি উপাদান রাখতে পারেন , যেমন । তবে একটি HTML পার্সার এটি করবে না। divp myP.appendChild(myDiv)
ওরিওল

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

39

HTML5 এর মতে, বিষয়বস্তুর মডেল এর divউপাদান প্রবাহ বিষয়বস্তু

নথি এবং অ্যাপ্লিকেশনগুলির শরীরে ব্যবহৃত বেশিরভাগ উপাদানগুলি প্রবাহ সামগ্রী হিসাবে শ্রেণীবদ্ধ করা হয়।

এর মধ্যে এমন pউপাদান রয়েছে যা কেবল যেখানে ব্যবহার করা যেতে পারে প্রবাহ বিষয়বস্তু আশা করা হচ্ছে।

অতএব, divউপাদানগুলিতে উপাদান থাকতে পারে p


যাইহোক, বিষয়বস্তু মডেল এর pউপাদান Phrasing কন্টেন্ট

বিষয়বস্তু ফ্রেসিং হ'ল ডকুমেন্টের পাঠ্য, সেইসাথে উপাদানগুলি যে পাঠ্যটিকে আন্তঃ অনুচ্ছেদ স্তরে চিহ্নিত করে। এর চালায় Phrasing কন্টেন্ট ফর্ম অনুচ্ছেদ

অন্তর্ভুক্ত নয় যে divউপাদান, যা শুধুমাত্র ব্যবহার করা যেতে পারে যেখানে প্রবাহ বিষয়বস্তু প্রত্যাশিত পারে।

অতএব, pউপাদান থাকতে পারে নাdiv

যেহেতু শেষ ট্যাগ এর pউপাদান যখন বাদ দেওয়া যেতে পারে pউপাদান অবিলম্বে দ্বারা অনুসরণ করা হয় divউপাদান (অন্যদের মধ্যে), নিম্নলিখিত

<p>
  <div>some words</div>
</p>

হিসাবে পার্স করা হয়

<p></p>
<div>some words</div>
</p>

এবং শেষটি </p>একটি ত্রুটি।


তবে সিএসএসে যদি আমি ডিভ সেট করে থাকি তবে কেন এটি সম্মান হয় না?
সঞ্জয়

যেহেতু সিএসএসের মানগুলি ডোম পার্সিংয়ের পরে প্রয়োগ করা হয় ... এমনকি যদি আমরা div as inline in CSSএটির কোনও ব্যবহার না করি তবে নতুন পার্স করা কাঠামোটি <p>Text</p> <div>some words</div> <p></p> কি আমার বোঝাটি সঠিক?
সঞ্জয়

@ সঞ্জয় হ্যাঁ, আপনি ঠিক আছেন বলে মনে হচ্ছে। এবং তদুপরি, আমার পর্যবেক্ষণের সময় আপনি যদি <span> <p> এর ভিতরে রাখেন এবং তারপরে স্প্যানের প্রদর্শনটি "ব্লক" এ সেট করেন তবে এটিকে কোনও প্রভাব ছাড়াই একটি সাধারণ ব্লক উপাদান হিসাবে উপস্থাপন করা হবে।
Andrii Naumovych

-1

এক্স এইচটিএমএল-এর পরে, কনভেনশনগুলি পরিবর্তন করা হয়েছে, এবং এখন এটি এক্সএমএল এবং এইচটিএমএল এর কনভেনশনগুলির মিশ্রণ, সুতরাং সে কারণেই দ্বিতীয় পদ্ধতিটি ভুল এবং ডাব্লু 3 সি বৈধকরণকারী মান এবং কনভেনশন অনুসারে সঠিক জিনিসগুলি গ্রহণ করে।


এক্সএইচটিএমএল খুব বেশি পরিবর্তন হয়নি। পি উপাদানটি কখনও ডিভ উপাদান ধারণ করার অনুমতি দেয় নি
কোয়ান্টিন

-7

কারণ divট্যাগটির চেয়ে pট্যাগটির চেয়ে বেশি অগ্রাধিকার রয়েছে । pট্যাগ যেহেতু একটি অনুচ্ছেদের ট্যাগ প্রতিনিধিত্ব করেdiv ট্যাগটি একটি নথি ট্যাগ প্রতিনিধিত্ব করে।

আপনি একটি ডকুমেন্ট ট্যাগে অনেক অনুচ্ছেদ লিখতে পারেন, তবে আপনি অনুচ্ছেদে কোনও দস্তাবেজ লিখতে পারবেন না। ডিওসি ফাইলের মতোই।


2
আসলে, এটি বিভাগ। অন্যথায় এটি হবে <doc>: ডি
কাইল

6
অগ্রাধিকার এইচটিএমএল উপাদানগুলির ক্ষেত্রে প্রযোজ্য এমন ধারণা নয় এবং ডিভ একটি বিভাগকে প্রতিনিধিত্ব করে, যেমন @ কাইলসিভেনোকস বলেছেন :)
সিম্পলজি

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