ডিজাইনের সিদ্ধান্ত - <p> ব্যতীত <p> উত্পন্ন কেন?


14

TL; ড

কিছু ব্যাপকভাবে ব্যবহৃত প্রোগ্রাম, যা এইচটিএমএল জেনারেট করে কেবল ব্রাউজারটি সঠিকভাবে অনুচ্ছেদগুলি বন্ধ করে দেবে বলে ধরে নিলেই কেবল খোলার অনুচ্ছেদ ট্যাগ তৈরি করা হবে এবং বন্ধ করা হবে না।

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


মইনমোইন উত্স কোডের মাধ্যমে ব্রাউজ করা, নিম্নলিখিত কোডের লাইনটি আমার দৃষ্টি আকর্ষণ করেছে:

# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])

( উত্স )

বাস্তবায়নটির বাকি অংশগুলি পড়ার পরে, আমি নিজেকে নিশ্চিত করেছিলাম যে হ্যাঁ, সত্যই, যখন মoinনমাইন তার কোনও পৃষ্ঠার জন্য এইচটিএমএল কোড উত্পন্ন করবে, এটি যথাযথভাবে অনুচ্ছেদে উন্মুক্ত ট্যাগ তৈরি করবে, যেখানে একই সাথে উদ্দেশ্যমূলকভাবে কোনওটিকে এড়ানো হবে appropriate অনুচ্ছেদে নিকটবর্তী ট্যাগগুলি (তুচ্ছভাবে করতে সক্ষম হওয়া সত্ত্বেও)

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

এই কোডটি ব্রাউজার বাস্তবায়ন সম্পর্কে কার্যকর ধারণা গ্রহণ করছে? উত্পন্ন এইচটিএমএল কি বৈধ? আরও সাধারণভাবে, আমি এখানে কোন ট্রেড অফ মিস করছি?


2
বর্তমান উত্তরগুলি সত্ত্বেও, এটি মরোনিক ডিজাইনের মতো দেখাচ্ছে। "আপনি যা প্রেরণ করেন তাতে রক্ষণশীল এবং আপনি যা প্রেরণ করেন তাতে উদার হন" এবং এগুলি। এটিও সম্পূর্ণ অপ্রয়োজনীয়। আমি অবশ্যই ম (নমোইনের কাছে একটি (দৃ strongly়ভাবে শব্দযুক্ত) বাগ রিপোর্ট জমা দেব। খুব কমপক্ষে তাদের এই অনাদায়ী আচরণটি স্পষ্ট করে ডকুমেন্ট এবং মন্তব্য করা উচিত।
কনরাড রুদল্ফ 4:13

উত্তর:


33

pউপাদানগুলির জন্য শেষ ট্যাগগুলি এইচটিএমএলে alচ্ছিক ছিল এবং কেবলমাত্র এক্সএইচটিএমএলে প্রয়োজনীয় ছিল। তবে, এইচটিএমএল 5 খসড়া শর্তগুলির একটি সেট প্রবর্তন করে যখন pশেষ ট্যাগটি আসলে alচ্ছিক হয়:

যদি পি উপাদানটির সাথে সাথে ঠিকানা, নিবন্ধ, একপাশে, ব্লককোট, দির, ডিভি, ডিএল, ফিল্ডসেট, পাদচরণ, ফর্ম, এইচ 1, এইচ 2, এইচ 3, এইচ 4, এইচ 5, এইচ 6, শিরোনাম অনুসরণ করা হয় তবে পি উপাদানগুলির শেষ ট্যাগটি বাদ দেওয়া যেতে পারে , এইচগ্রুপ, এইচআর, মেনু, এনএভি, ওল, পি, প্রাক, বিভাগ, টেবিল বা উল, উপাদান বা যদি পিতামন্ডলের কোনও উপাদান না থাকে এবং প্যারেন্ট উপাদান কোনও উপাদান না থাকে element

উত্স: এইচটিএমএল 5 স্পেসিফিকেশন

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


5
মহা মন একসাথে ভাবেন, আমার ধারণা। :)
রবার্ট হার্ভে

@ রবার্তাহারভে আপনি এই সেকেন্ডটি 12 সেকেন্ডের মধ্যে
জিতেছেন

2
শেষ ট্যাগগুলি বাদ দেওয়ার পক্ষে আর একটি যুক্তি: তারা নথির কাঠামো থেকে স্পষ্ট হয় এবং যখন অপব্যবহার করা হয়, তখন তারা উত্সর্গীয় হোয়াইটস্পেসেরও পরিচয় দিতে পারে।
জন পুর্ডি

1
শেষ-ট্যাগগুলি বাদ দিতে সক্ষম হওয়াই স্পষ্টতই এসজিএমএলের একটি ডিজাইন বৈশিষ্ট্য ছিল, যা এইচটিএমএল ভিত্তিক ছিল। এটি স্পষ্টতই এক্সএমএলের কোনও বৈশিষ্ট্য নয়, যা এক্সএইচটিএমএল ভিত্তিক।
অ্যালান শুটকো

4
একটি যুক্তি যা আমি অনেক দেখি তা হ'ল এটি পরিষ্কার দেখায়। বিশেষত <li>ট্যাগগুলির ক্ষেত্রে, ট্যাগগুলি বুলেট পয়েন্টের মতো আরও কাজ করে।
অসন্তুষ্টগোটটি

16

HTML5 এর জন্য W3C এর স্পেসিফিকেশন বিশেষভাবে যে:

যদি পি উপাদানটির সাথে সাথে ঠিকানা, নিবন্ধ, একপাশে, ব্লককোট, দির, ডিভি, ডিএল, ফিল্ডসেট, পাদচরণ, ফর্ম, এইচ 1, এইচ 2, এইচ 3, এইচ 4, এইচ 5, এইচ 6, শিরোনাম অনুসরণ করা হয় তবে পি উপাদানগুলির শেষ ট্যাগটি বাদ দেওয়া যেতে পারে , ঘন্টা, মেনু, এনএভি, ওল, পি, প্রাক, বিভাগ, টেবিল বা উল উপাদান, বা যদি পিতামন্ডলটিতে আরও সামগ্রী থাকে না এবং পিতামণ্ডল উপাদান কোনও উপাদান নয়।

সুতরাং মূলত স্পেকটি অনেকগুলি উপায় সরবরাহ করেছে যার দ্বারা ট্যাগটি বন্ধ করার জটিলতা (বড় বা ছোট এটি হতে পারে) এড়ানো যায়। যে কোনও ব্রাউজার প্রয়োগের ক্ষেত্রে এই ব্যতিক্রমগুলি সমন্বিত করতে হবে।

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