এক্সএইচটিএমএলে সমস্ত বৈধ স্ব-সমাপনকারী উপাদানগুলি কী কী (প্রধান ব্রাউজারগুলি দ্বারা প্রয়োগ করা হয়)?


188

এক্সএইচটিএমএলে (যেমন প্রধান ব্রাউজারগুলি প্রয়োগ করা হয়েছে) সমস্ত বৈধ স্ব-সমাপনকারী উপাদানগুলি কী কী?

আমি জানি যে এক্সএইচটিএমএল প্রযুক্তিগতভাবে কোনও উপাদানকে স্ব-বন্ধ হওয়ার অনুমতি দেয় তবে আমি সমস্ত প্রধান ব্রাউজার দ্বারা সমর্থিত সেই উপাদানগুলির একটি তালিকা খুঁজছি। <ডিভ /> হিসাবে স্ব-সমাপনকারী উপাদানগুলির কারণে সৃষ্ট কিছু সমস্যার উদাহরণগুলির জন্য http://dusan.fora.si/blog/self-closing- ট্যাগগুলি দেখুন ।


7
এই ডিএফএলটি কি এক্সএইচটিএমএলগুলির উদ্দেশ্যগুলির মধ্যে একটি নয়? আমি ভেবেছিলাম এক্সএইচটিএমএল এর একটি সুবিধা হল আপনি এইচটিএমএল তৈরি করতে কোনও এক্সএমএল জেনারেটর ব্যবহার করতে পারেন। কেন কোনও এক্সএমএল জেনারেটর সচেতন থাকবে যে কোন ট্যাগগুলিকে স্ব-সমাপনের অনুমতি দেওয়া হচ্ছে? খুব অদ্ভুত.
ইলিয়াস

6
"খোঁড়া", "ভুল" উত্তর গৃহীত হওয়ার কারণটি হ'ল কামেনরা স্পষ্টতই জিজ্ঞাসা করছে এমন প্রশ্নের উত্তর দিয়েছে। তিনি জানতে চেয়েছিলেন যে ব্রাউজারগুলিতে রেন্ডারিংয়ের সমস্যা না ঘটিয়ে এক্সএইচটিএমএলটিকে পাঠ্য / এইচটিএমএল হিসাবে পরিবেশন করার সময় কোন উপাদানগুলি স্ব-বন্ধ হয়ে যেতে পারে। প্রযুক্তিগতভাবে ভুল হওয়া সত্ত্বেও প্রচুর পৃষ্ঠাগুলি এক্সএইচটিএমএলে লেখা হয় এবং পাঠ্য / এইচটিএমএল হিসাবে পরিবেশন করা হয়। এই ব্যাখ্যাটি দিয়ে প্রশ্নটি উন্নত করা যেতে পারে, তবে একটি ভিন্ন প্রশ্নের উত্তর দেওয়া (আপনি যখন অ্যাপ্লিকেশন / এক্সএমএল হিসাবে পরিবেশন করবেন তখন কি হবে, বা পাঠ্য / এইচটিএমএলতে একক ট্যাগ থাকা উচিত কিনা) এই উদাহরণটিতে সহায়ক নয়।
নিক লকউড

উত্তর:


180

এক্সএইচটিএমএল (ফায়ারফক্স, অপেরা, সাফারি, আই 9 ) সমর্থন করে এমন প্রতিটি ব্রাউজার প্রতিটি উপাদানগুলিতে স্ব-সমাপনী বাক্য গঠন সমর্থন করে

<div/>, <script/>, <br></br>সব ঠিক সূক্ষ্ম কাজ করা উচিত। তারা না থাকে, তাহলে আপনি এইচটিএমএল অযথাযথভাবে যোগ এক্সএইচটিএমএল DOCTYPE সঙ্গে।

ডকুমেন্ট কীভাবে দস্তাবেজকে ব্যাখ্যা করা হয় তা পরিবর্তন করে না। কেবল মাইম টাইপ করে

ডক্টেপিকে উপেক্ষা করার বিষয়ে ডব্লু 3 সি সিদ্ধান্ত :

এইচটিএমএল ডাব্লুজি এই সমস্যাটি নিয়ে আলোচনা করেছে: উদ্দেশ্যটি ছিল পুরানো (কেবলমাত্র এইচটিএমএল) ব্রাউজারগুলি নির্দেশিকা অনুসরণ করে এবং সেগুলি পাঠ্য / এইচটিএমএল হিসাবে পরিবেশন করে এক্সএইচটিএমএল 1.0 নথি গ্রহণ করার অনুমতি দেয়। সুতরাং, পাঠ্য / এইচটিএমএল হিসাবে দস্তাবেজগুলি এইচটিএমএল হিসাবে নয়, এইচটিএমএল হিসাবে বিবেচনা করা উচিত।

এটি একটি খুব সাধারণ ক্ষতি, কারণ ডাব্লু 3 সি ভ্যালিডেটর মূলত এই নিয়মটিকে উপেক্ষা করে তবে ব্রাউজারগুলি এটিকে ধর্মীয়ভাবে অনুসরণ করে। ওয়েবকিট ব্লগ থেকে বোঝার এইচটিএমএল, এক্সএমএল এবং এক্সএইচটিএমএল পড়ুন :

প্রকৃতপক্ষে, ইন্টারনেটে অনুমিত এক্সএইচটিএমএল ডকুমেন্টগুলির সিংহভাগ হিসাবে পরিবেশন করা হয় text/html। যার অর্থ তারা মোটেও এক্সএইচটিএমএল নয়, তবে প্রকৃতপক্ষে অবৈধ এইচটিএমএল যা এইচটিএমএল পার্সারগুলির ত্রুটি পরিচালনার ক্ষেত্রে ঘটছে। এই সমস্ত "বৈধ এক্সএইচটিএমএল 1.0!" ওয়েবে লিঙ্কগুলি সত্যই "অবৈধ এইচটিএমএল 4.01!" বলছে।


আপনার এক্সএইচটিএমএল এর ডক্টইপিই সহ সত্যিকারের এক্সএইচটিএমএল বা অবৈধ এইচটিএমএল আছে কিনা তা পরীক্ষা করতে এটি আপনার নথিতে রাখুন:

<span style="color:green"><span style="color:red"/> 
 If it's red, it's HTML. Green is XHTML.
</span>

এটি বৈধতা দেয় এবং বাস্তব এক্সএইচটিএমএলে এটি পুরোপুরি কার্যকর হয় (দেখুন: 1 বনাম 2 )। আপনি যদি নিজের চোখকে বিশ্বাস করতে না পারেন (বা এমআইএমআই টাইপ কীভাবে সেট করবেন তা জানেন না) তবে এক্সএইচটিএমএল প্রক্সি দিয়ে আপনার পৃষ্ঠাটি খুলুন ।

ফায়ারফক্সে দেখার উত্স যাচাই করার আরেকটি উপায়। এটি অকার্যকর হলে এটি লালচে স্ল্যাশগুলি হাইলাইট করবে।

এইচটিএমএল 5 / এক্সএইচটিএমএল 5 এ এটি পরিবর্তিত হয়নি এবং পার্থক্যটি আরও পরিষ্কার হয়, কারণ আপনার কাছে অতিরিক্তও নেই DOCTYPEContent-Typeরাজা।


রেকর্ডের জন্য, এক্সএইচটিএমএল স্পেসটি এক্সএইচটিএমএলকে একটি এক্সএমএল অ্যাপ্লিকেশন তৈরি করে যে কোনও উপাদানকে স্ব-সমাপন হতে দেয় : [জোর আমার]

EMPTY কীওয়ার্ড ব্যবহার করে ঘোষিত হোক বা না হোক খালি-উপাদান ট্যাগগুলি এমন কোনও উপাদানের জন্য ব্যবহার করা যেতে পারে যার কোনও সামগ্রী নেই

এটি এক্সএইচটিএমএল স্পষ্টেও স্পষ্টভাবে প্রদর্শিত হয়েছে :

খালি উপাদান আবশ্যক হয় শেষ ট্যাগ বা স্টার্ট ট্যাগ দিয়ে শেষ হবে আছে />। উদাহরণস্বরূপ, <br/>বা<hr></hr>


7
আফাইক সঠিক নয়, কারণ স্ব-সমাপনী সংস্করণগুলি ব্যবহার করা <script>বা <div>বিভিন্ন রেন্ডারিং / ব্যাখ্যার ফলাফল।
জিসিস

13
@ZeissS শুধুমাত্র মধ্যে text/html। বাস্তব এক্সএইচটিএমএল এ প্রেরিত application/xhtml+xmlএটি ঠিক কাজ করে। ডাউনভোটিংয়ের আগে দয়া করে আমি নিবন্ধটি লিখিত (বা এক্সএইচটিএমএল স্পেস পরিশিষ্ট সি) পড়ুন।
কর্নেল

3
@ কর্নেল আপনি কী গ্যারান্টি দিতে পারেন যে স্বয়ং ক্লোজিং <লিপি /> ট্যাগগুলি পুরানো ব্রাউজারগুলিতে কাজ করবে? আমি তাই মনে করি না. আপনি প্রাপ্য বলে মনে করেন এবং আপনার বেশিরভাগ তথ্যই সঠিক, তবে অভিজ্ঞতা আমাকে বলে যে স্ব-সমাপনী স্ক্রিপ্ট ট্যাগগুলি সমস্যাযুক্ত হবে এবং নিজেকে মাথা ব্যথা না করে কেবল এগুলি সম্পূর্ণ এড়ানো ভাল।
মেটাগ্রাফার

6
@ মেটাগ্রাফার যদি পুরানো ব্রাউজারগুলি বাস্তব এক্সএইচটিএমএল সমর্থন করে না, বা আপনি মাইমে টাইপ সেট করতে ব্যর্থ হন , তবে এটি কার্যকর হবে না। যাইহোক, এ এক্সএইচটিএমএল-সমর্থনকারী ব্রাউজার (এই সময়ে সমস্ত প্রধান বেশী) সঙ্গে application/xhtml+xmlMIME প্রকার আমি যে নিশ্চিত করতে পারে না <script/>ইচ্ছার হবে। মাইম টাইপের সাথে। কেবল.
কর্নেল

4
@ ক্যাপড্রাগন: পুরানো ব্রাউজারগুলি এক্সএইচটিএমএল সমর্থন করে না ('অ্যাপ্লিকেশন / এক্সএইচটিএমএল + এক্সএমএল হিসাবে পরিবেশন করা)। আপনি যদি তাদের একটি এক্সএইচটিএমএল ডকুমেন্টকে 'পাঠ্য / এইচটিএমএল' হিসাবে প্রেরণ করেন তবে এক্সএইচটিএমএল ট্যাগ স্যুপ হিসাবে রেন্ডার হয়ে যায় (যেমন ব্রাউজারটি এটি এইচটিএমএল হিসাবে বিশ্লেষণ করে এবং স্ব-সমাপনী ট্যাগগুলির ত্রুটিগুলি বিবেচনা করে, যা এটি কৃত্রিমভাবে পুনরুদ্ধার করে)। আপনার বিকল্পগুলি হ'ল ১ টি এইচটিএমএল 4 লিখুন (এক্সপিএইচএমএল রেন্ডার করে এমন ASP.NET ব্যবহার করে ঠিক কোন বিকল্প নয়), ২. আপনার এক্সএইচটিএমএলকে 'অ্যাপ্লিকেশন / এক্সএইচটিএমএল + এক্সএমএল' হিসাবে পরিবেশন করুন (আইআই 9 + প্রয়োজন, এবং এই এমআইএমএম টাইপটি সমস্ত ব্রাউজারে স্ক্রিপ্টগুলি ভেঙে ফেলবে) যাইহোক, তাই কোনও বিকল্প
ডিএফ

41

এই বিষয়টিতে খুব সতর্কতা অবলম্বনের একটি উপাদান হ'ল <script > উপাদান। আপনার যদি কোনও বাহ্যিক উত্স ফাইল থাকে তবে এটি স্বয়ংক্রিয়ভাবে বন্ধ করলে এটি সমস্যার সৃষ্টি করবে। এটি চেষ্টা করুন:

<!-- this will not consistently work in all browsers! -->
<script type="text/javascript" src="external.js" />

এটি ফায়ারফক্সে কাজ করবে, তবে অন্তত আই 6 break এ বিরতি। আমি জানি, কারণ আমি যখন দেখেছি প্রতিটি উপাদান অত্যধিক উদ্যোগের সাথে নিজেকে বন্ধ করে দিচ্ছি ;-)


MSIE এর সমস্ত সংস্করণকে প্রভাবিত করে: webbugtrack.blogspot.com/2007/08/…
স্কানলিফ

4
<script> ফায়ারফক্স 3-এ স্ব-বন্ধ হয় না
hsivonen

ঠিক আছে, আমি যখন এটির মুখোমুখি হয়েছিলাম তখন এটি ফায়ারফক্সে কাজ করত। দেখে মনে হচ্ছে এটি আর কোনও ব্রাউজারে কাজ করে না। এছাড়াও কেবল কুইর্কস মোডে কাজ করতে পারে?
এরিক ভ্যান ব্রাকেল

1
@ এমিকসন আপনার ফায়ারফক্সে ঠিকঠাক কাজ করে যদি আপনি আপনার এমএমআই টাইপটি সঠিকভাবে পান।
কর্নেল

ওয়েবকিটটি তুলনামূলক কারণে এটি চালিয়ে যেতে পারে।
যুহং বাও

35

স্ব-সমাপনী সিনট্যাক্স অ্যাপ্লিকেশন / এক্সএইচটিএমএল + এক্সএমএল সমস্ত উপাদানগুলিতে কাজ করে। এটি পাঠ্য / এইচটিএমএল কোনও উপাদানকে সমর্থন করে না, তবে এইচটিএমএল 4-এ "শূন্য" বা এইচটিএমএল 5-এ "শূন্য" যে উপাদানগুলি কোনওভাবেই শেষ ট্যাগ গ্রহণ করে না, সুতরাং আপনি যদি স্ল্যাশ রাখেন তবে এটি প্রদর্শিত হবে স্ব-সমাপনী সিনট্যাক্স সমর্থিত ছিল।


33

থেকে W3 শিক্ষক রেফারেন্স সাইটে :

<area />
<base />
<basefont />
<br />
<hr />
<input />
<img />
<link />
<meta />

7
w3schools.com/tags/default.asp আমি 12 টি ট্যাগ দিয়ে শেষ দেখতে পাচ্ছি />:"area", "base", "basefont", "br", "col", "frame", "hr", "img", "input", "link", "meta", "param"
এমপেন

94
দয়া করে মনে রাখবেন যে ডাব্লু 3 স্কুলগুলি ডাব্লু 3 সি এর সাথে অনুমোদিত নয়, এমনকি ডাব্লু 3 সি সদস্যদের পাঠানো সংশোধনীর প্রতিক্রিয়া জানাতেও ব্যর্থ হয়েছে।
কর্নেল

2
প্রায়শই, ডাব্লু 3 স্কুলগুলি প্রায় সঠিক। খালি উপাদানগুলি খুঁজে পাওয়ার একটি সঠিক উপায় হ'ল চালানো grep EMPTY xhtml1-strict.dtd | sortবাgrep EMPTY xhtml1-transitional.dtd | sort
cayhorstmann

1
আইএমএইচও, মানুষ ডাব্লু 3 স্কুলগুলিকে খুব শক্তভাবে মারছে। আপনি নিজের সম্পর্কে কিছুই জানেন না এমন কোনও বিষয়ে আপনি যখন সূচনা (!) পাচ্ছেন তার পক্ষে এটি নিজেকে দুর্দান্ত একটি সংস্থান হিসাবে প্রমাণিত হয়েছে।
প্রিয়দু নিমরে

28

সর্বোত্তম প্রশ্নটি হ'ল: কোডগুলি প্রভাবিত না করে এইচটিএমএল মোডে কী ট্যাগগুলি স্ব-বন্ধ হয়ে যেতে পারে? উত্তর: কেবল খালি সামগ্রী (শূন্য) ( এইচটিএমএল স্প্যাস অনুসারে নিম্নলিখিত উপাদানগুলি শূন্য:

area, base, br, col, embed, hr, img, input, keygen, link, menuitem, meta, param, source, track, wbr

স্পেসিফিকেশন পুরানো সংস্করণ এছাড়াও তালিকাভুক্ত command। এছাড়াও, বিভিন্ন উত্স অনুসারে নিম্নলিখিত অপ্রচলিত বা অ-মানক ট্যাগগুলি বাতিল are

basefont, bgsound, frame, isindex


10

আশা করি এটি কাউকে সহায়তা করবে:

<base />
<basefont />
<frame />
<link />
<meta />

<area />
<br />
<col />
<hr />
<img />
<input />
<param />

5

কি সম্পর্কে <meta>এবং<link> ? তারা কেন সেই তালিকায় নেই?

থাম্বের দ্রুত নিয়ম, বিষয়বস্তু রাখার উদ্দেশ্যে যে কোনও উপাদান স্ব-বন্ধ করবেন না কারণ তাড়াতাড়ি বা পরে অবশ্যই ব্রাউজারের সমস্যা তৈরি করবে।

যেগুলি স্বভাবতই স্ব-বন্ধ হয়ে থাকে, তাদের পছন্দ <br>এবং <img>হওয়া উচিত। এগুলি যা নয় ... কেবল সেগুলি বন্ধ করুন না!


4

আমি শেষবার যাচাই করেছিলাম, নিম্নলিখিতটি হ'ল এইচটিএমএল-এ তালিকাভুক্ত ফাঁকা / শূন্য উপাদান রয়েছে।

লেখকদের জন্য বৈধ: অঞ্চল, বেস, বিআর, কর্নেল, কমান্ড, এম্বেড, ইভেন্টসোর্স, এইচআর, আইএমজি, ইনপুট, লিঙ্ক, মেটা, পরম, উত্স

লেখকদের জন্য অবৈধ: বেসফন্ট, বিগসাউন্ড, ফ্রেম, স্পেসার, ডাব্লুবিআর

এইচটিএমএল 5-এ নতুন কয়েকটি ছাড়াও, আপনাকে এক্সএইচটিএমএলকে পাঠ্য / এইচটিএমএল হিসাবে পরিবেশন করার সময় সমর্থন করা যেতে পারে এমন একটি ধারণা দেওয়া উচিত। (কেবলমাত্র উত্পাদিত ডিওএম পরীক্ষা করে এগুলি পরীক্ষা করুন))

এক্সএইচটিএমএল হিসাবে অ্যাপ্লিকেশন / এক্সএইচটিএমএল + এক্সএমএল হিসাবে পরিবেশন করা হয়েছে (এটি এটি এক্সএমএল করে তোলে), এক্সএমএল বিধি প্রয়োগ হয় এবং যে কোনও উপাদান খালি থাকতে পারে (যদিও এক্সএইচটিএমএল ডিটিডি এটি প্রকাশ করতে পারে না)।


4

আপনার এক্সএইচটিএমএল ডিটিডি দেখতে হবে, সেগুলি সব তালিকাভুক্ত। এখানে সমস্ত প্রধানকে একটি দ্রুত পর্যালোচনা দেওয়া হয়েছে:

<br />
<hr />
<img />
<input />

1
স্থির এবং পরিষ্কার আপ মার্কআপ। এই পৃষ্ঠাগুলিতে লিঙ্ক সহ যত্নবান, তারা লোড করতে ধীর।

4

তাদের এইচটিএমএল 5-তে "অকার্যকর" উপাদান বলা হয় They এগুলি অফিসিয়াল ডাব্লু 3 অনুমানের তালিকায় রয়েছে

একটি অকার্যকর উপাদান এমন উপাদান যাঁর বিষয়বস্তু মডেল এটি কোনও পরিস্থিতিতে সামগ্রী থাকতে দেয় না।

এপ্রিল ২০১৩ পর্যন্ত, তারা হলেন:

অঞ্চল, বেস, বিআর, কর্নেল, কমান্ড, এম্বেড, এইচআর, আইএমজি, ইনপুট, কীজেন, লিঙ্ক, মেটা, পরম, উত্স, ট্র্যাক, ডাব্লুবিআর

ডিসেম্বর 2018 (HTML 5.2) হিসাবে, তারা হ'ল:

অঞ্চল, বেস, বিআর, কল, এম্বেড, এইচআর, আইএমজি, ইনপুট, লিংক, মেটা, পরম, উত্স, ট্র্যাক, ডাব্লুবিআর


2

আই-এর জন্য আরেকটি স্ব-সমাধা ট্যাগ সমস্যা হ'ল শিরোনাম উপাদান। যখন আইই (কেবল এটি আই 7 এ চেষ্টা করে) এটি দেখায় এটি ব্যবহারকারীকে একটি ফাঁকা পৃষ্ঠা উপস্থাপন করে। তবে আপনি "উত্স দেখুন" এবং সবকিছু সেখানে রয়েছে।

<title/>

আমার এক্সএসএলটি স্ব-ক্লোজিং ট্যাগ উত্পন্ন করার সময় আমি মূলত এটি দেখেছিলাম।


ক্রোমিয়াম ট্যাগও পছন্দ করে না <title/>
uınbɐɥs

2

আমি এটি নিয়ে অতিরিক্ত আলোচনা করার চেষ্টা করতে যাচ্ছি না, বিশেষত যেহেতু আমি যে বেশিরভাগ পৃষ্ঠাগুলি লিখি সেগুলি হয় উত্পাদিত হয় বা ট্যাগটিতে লিখিত থাকে না। এগুলি স্ব-সমাপনে তৈরি করার সময় কেবলমাত্র দু'জনই আমাকে কষ্ট দিয়েছেন:

<title/>

এর জন্য, আমি কেবল সর্বদা এটির জন্য পৃথক ক্লোজিং ট্যাগ দেওয়ার অবলম্বন করেছি, যেহেতু এটি একবারে এটির পরে <head></head>এটি আপনার কোডটিকে যেভাবেই কোনও কাজ করতে ম্যাসিগার করে না।

<script/>

এটি হ'ল এটিই একটি বড় বিষয় যা আমি খুব সম্প্রতি সমস্যার মধ্যে পড়েছিলাম। <script/>স্ক্রিপ্টটি যখন বাহ্যিক উত্স থেকে আসে তখন আমি কয়েক বছর ধরে সর্বদা স্ব-সমাপনী ট্যাগ ব্যবহার করি । তবে আমি খুব সম্প্রতি একটি নাল ফর্ম সম্পর্কে জাভাস্ক্রিপ্ট ত্রুটি বার্তাগুলি পাওয়া শুরু করেছি। বেশ কয়েক দিন গবেষণার পরে, আমি দেখতে পেলাম যে সমস্যাটি (ধারণা করা হয়েছিল) যে ব্রাউজারটি কখনই <form>ট্যাগটি পাচ্ছে না কারণ এটি বুঝতে পারে নি যে এটি <script/>ট্যাগের শেষ । সুতরাং যখন আমি এটিকে পৃথক <script></script>ট্যাগগুলিতে পরিণত করি তখন সমস্ত কিছুই কাজ করে। একই ব্রাউজারে তৈরি করা বিভিন্ন পৃষ্ঠায় কেন আলাদা, আমি জানি না, তবে সমাধানটি খুঁজে বের করা বড় স্বস্তি!


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