সিএসএস কেন সিঙ্গল-লাইনের মন্তব্যের অনুমতি দেয় না? [বন্ধ]


14

আমি বুঝতে পেরেছি যে সিএসএস কেবল এই জাতীয় মতামতকে সমর্থন করে

/* foobar */

কেন একক লাইনের মন্তব্যের জন্য সমর্থন নেই।

// foobar

এগুলি প্রোগ্রামিংয়ে যেমন সাধারণ হয় এবং সিএসএসের মতো ভাষার জন্য বিশেষভাবে কার্যকর বলে মনে হয় যেখানে প্রতিটি নিয়ম নিজস্ব লাইনে থাকে।

যদি এই সিদ্ধান্তের কোনও নির্দিষ্ট historicalতিহাসিক কারণ না থাকে, তবে ব্রাউজারগুলি এর সমর্থনের দিকে যেতে বাধা দেয় কি?


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

1
@ গুজ: আপনি কি সাসল্যাং.কমের দিকে নজর দিয়েছেন ?
কেভিন


1
@ তুলিনস কর্ডোভা আমি উত্তরগুলি সমর্থন করি নি, কেবল উল্লেখ করেছেন যে এই আলোচনা ইতিমধ্যে হয়ে গিয়েছিল।
এরিক কিং

2
এই প্রশ্নটি এমন উত্তর পেয়েছে যা এখানে উত্তরগুলির চেয়ে বেশি প্রযুক্তিগত। "সিএসএস অন্য সমস্ত সাদা স্থানের মতো নিউলাইনগুলিকে আচরণ করে এবং একটি সমাপ্তি ডিলিমিটার ছাড়াই মন্তব্যের সমাপ্তি নির্ধারণ করতে সক্ষম হবে না।"
গোস

উত্তর:


9

পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যপূর্ণ

সিএসএস সিনট্যাক্সে একক-লাইন মন্তব্যের পরিচয় দেওয়া বর্তমানে টোকন ব্যবহার করে এমন ফাইলগুলির অর্থ পরিবর্তন করতে পারে //। ব্রাউজার বিক্রেতারা এমন পরিবর্তনগুলি চালু করতে খুব নারাজ যা সম্ভাব্যভাবে বিদ্যমান পৃষ্ঠাগুলি ভেঙে দিতে পারে।

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

পুরানো ব্রাউজারগুলি না ভেঙে নতুন সিনট্যাক্সের প্রবর্তনকে মঞ্জুর করার জন্য সিএসএস এর মতো নকশা করা হয়েছে। পুরানো ব্রাউজারগুলি কেবল অসমর্থিত সিনট্যাক্সযুক্ত ঘোষণাটি এড়িয়ে যাবে এবং পরে চালিয়ে যাবে।

তবে এই যুক্তিটি "ইউনিট "টিকে প্রক্রিয়াজাত করা বা এড়িয়ে যাওয়া হ'ল ঘোষণাটি is যদি সিঙ্গল-লাইনের মন্তব্যগুলি প্রবর্তিত হয় তবে এর অর্থ পার্সের //পরের সেমিকোলনের পরিবর্তে পরের লাইনব্রেক না হওয়া পর্যন্ত এড়িয়ে যাওয়া উচিত, কোন নিয়মগুলি পার্স করা হয় এবং কোনটি এড়িয়ে যায় তা পরিবর্তিত হয়। এটি সম্ভাব্য বিস্ময়কর উপায়ে বিদ্যমান সিএসএস ফাইলগুলির অর্থ পরিবর্তন করতে পারে।

একটি উদাহরণ:

P { font: 12px//16px; }
... hundreds of additional lines of CSS...

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

এখন আপনি বলতে পারেন যে এটি আমার নিজের দোষ থেকে যেহেতু আমি একটি ভুল করেছি, তবে এটি কোনও পরিবর্তন করে না যে ইন্টারনেটে অজানা সংখ্যক পৃষ্ঠাগুলি অস্পষ্ট কারণে অদ্ভুতভাবে ভেঙে বা রেন্ডার করতে পারে।

পিছনে সামঞ্জস্যতা ভেঙে এই জাতীয় যে কোনও পরিবর্তন খুব সাবধানতার সাথে বিবেচনা করা উচিত এবং একক-লাইন মন্তব্যগুলি সম্ভবত ঝুঁকির জন্য যথেষ্ট বাধ্যকারী নয়, কারণ একমাত্র উপকারের ফলে এটি আপনাকে কয়েকটি কীস্ট্রোক সংরক্ষণ করে।

সুতরাং সিএসএসের যদি সিজ-লাইন মন্তব্য থাকতে পারে তবে এটি সম্ভবত প্রথম থেকেই চালু করা উচিত ছিল। তবে সিএসএস একটি খুব সাধারণ ভাষা হিসাবে শুরু হয়েছিল এবং দুটি পৃথক মন্তব্যের বাক্য গঠন থাকলে সেই সময়ে অযথা জটিলতা দেখা যেত। (এমনকি এএনএসআই সি-তেও একক লাইনের মন্তব্য ছিল না))


ওহ, // সিএসএসে একটি টোকেন? বলতে পারা.
মাইকেল ব্ল্যাকবার্ন

বর্তমানে //দুটি "ডিলিম টোকেন" বিভক্ত হবে যার সাথে ব্যাকরণের কোথাও অনুমোদিত নয়। বিস্তারিত জানতে w3.org/TR/css-syntax-3/# টোকেনাইজেশন দেখুন ।
জ্যাকবিবি

মেনমা এর জন্য কেন এটি শুরু হয়েছিল /**/, তার জন্য +1 , তবে কেন এটি পরিবর্তিত হয়নি তাও এটি সম্বোধন করে one
গুজ

8

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

যদি এটি ভাষার প্রয়োজনীয় হয়, যেমন বিকাশকারীদের জীবনকে আরও সহজ করে তোলে, এটি করা যেতে পারে। উদাহরণস্বরূপ, সিএসএসে কোনও ধরণের মন্তব্য না করাই স্তন্যপান হবে এবং মন্তব্যগুলিকে সীমিত করে এমন নির্দিষ্ট সিনট্যাক্স উপাদান যুক্ত করার চেষ্টা করা উচিত। //অন্যদিকে স্টাইল মন্তব্য? ... আমি বিন্দুটি দেখতে পাচ্ছি না। দেখুন /* Hello, World! */,: একটি লাইনের মন্তব্য

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

একইভাবে, পাইথন প্রোগ্রামার দাবি করবে যে CSS এরও #স্টাইল মন্তব্য করা উচিত ; সুতরাং এখন, আমাদের উভয় শৈলী সমর্থন করা প্রয়োজন? তারপরে হাস্কেল বিশ্বের কোনও লোক অন্তর্ভুক্ত করতে অনুরোধ করবে --এবং {- -}পাশাপাশি আপনি নিজেরাই জিজ্ঞাসা করবেন আপনি আর সিএসএস কোড কেন চিনেন না।

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

তারা [...] সিএসএসের মতো ভাষার জন্য বিশেষভাবে দরকারী বলে মনে হয় যেখানে প্রতিটি নিয়ম নিজস্ব লাইনে থাকে।

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

সিএসএস মন্তব্যগুলির ব্যবহার এখানে আমি ভাবতে পারি:

  • একটি ফাইল শিরোনাম হিসাবে (কপিরাইট তথ্য, ভ্যানিটি স্টাফ, ইত্যাদি)
  • একদল শৈলীর সীমানা হিসাবে।
  • একটি হ্যাক ব্যাখ্যা হিসাবে।
  • নির্দিষ্ট শৈলী বা সম্পত্তি সম্পর্কে বিশদ হিসাবে।

প্রথম তিনটি ক্ষেত্রে, আপনি যাইহোক একাধিক-স্টাইলের মন্তব্য ব্যবহার করবেন use এটি ফাইলের শিরোনাম এবং হ্যাকের ব্যাখ্যার জন্য সুস্পষ্ট (বেশিরভাগ হ্যাকের কমপক্ষে একটি বাক্য এবং স্ট্যাকওভারফ্লো বা একটি ব্লগ নিবন্ধের একটি হাইপার লিঙ্ক প্রয়োজন); সীমানা হিসাবে:

/**
 * Footer and sitemap styles.
 */

সি-স্টাইলের মন্তব্য এর চেয়ে অনেক বেশি দৃশ্যমান:

// Footer and sitemap styles.

পাঠ্য মধ্যে সমাধি।


জাভাস্ক্রিপ্ট এছাড়াও একক লাইন //মন্তব্য সমর্থন করে ।
তুলাইনস কর্ডোভা

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

আমি মনে করি না এটি মোটেই একটি ছোট উপসেট। কাঁচা সিএসএস লিখতে কেবল যে কেউ সম্পর্কে // এর সাথে মন্তব্য যুক্ত করা আরও সহজ হবে। তবে পিছনের সামঞ্জস্যতা বিন্দুটি এটিকে মোটা করে তোলে।
ও'রুনি

-5

বিষয়টি হ'ল মন্তব্যগুলির সাথে বেশিরভাগ ভাষা (যেমন সি #, জাভা) সংকলিত ভাষা হয় এবং সংকলক গ্রাহককে (সিপিইউ) উপস্থাপনের আগে সমস্ত মন্তব্য সরিয়ে দেয়। সিএসএস সংকলিত হয় না; ডিজাইনার এটি বিকাশ করায় সাধারণত ফাইলটি অপরিবর্তিতভাবে প্রেরণ করা হয়, সুতরাং মন্তব্যগুলি সরিয়ে দেওয়ার কোনও সুযোগ নেই। // স্টাইলের মন্তব্যের জন্য সিনট্যাক্টিক যথার্থতা ধরে রাখতে // চিহ্ন এবং একটি লাইন ফিড উভয়ই দরকার।

হ্যাঁ, মিনিফায়ার উপস্থিত রয়েছে এবং হ্যাঁ, জাভাস্ক্রিপ্ট এই ধরণের মন্তব্যের অনুমতি দেয়। জাভাস্ক্রিপ্টও বিবর্তন () এর অনুমতি দেয় তাই আমি মনে করি না যে আমরা এটিকে একটি মডেল হিসাবে নিতে চাই।


3
এই উত্তরটি মোটেই বোঝা যায় না। "মন্তব্যটি ছড়িয়ে দেওয়ার কোনও সুযোগ নেই" - অবশ্যই আছে, মন্তব্যটি অন্য কোনও ভাষার মতো পার্সার দ্বারা প্রকাশ করা হয়েছে। নাহলে সিএসএসের কীভাবে /* */মন্তব্য থাকতে পারে ?
জ্যাকবিবি

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

সুতরাং কেন পার্সার স্ট্রিপ //মন্তব্যগুলি বাইরে বেরিয়ে যেতে পারে যখন তা বেরিয়ে যেতে পারে /* */?
জ্যাকবিবি

1
এটি হতে পারে তবে তারপরে এটি // এবং লাইন ফিড উভয়ই সন্ধান করতে হবে এবং লাইন ফিডগুলি মূলত সিনমেটিক সামগ্রী নয়, সিনট্যাকটিক নয়। সিএসএস হিসাবে ডিজাইন করা সমস্ত সাদা স্থানকে একই করে। // সমর্থন করার জন্য আপনার কাছে এখন "বিশেষ" শ্বেত স্পেস এবং তদ্ব্যতীত, সেই "বিশেষ" শ্বেত স্থানটি একটি অক্ষর (\ n) হতে পারে এবং এটি দুটি (\ r \ n) হতে পারে।
মাইকেল ব্ল্যাকবার্ন

3
@ মিশেলব্ল্যাকবার্ন: ডিএসএসএসএল (যা এস-এক্সপ্রেশন সিনট্যাক্স ব্যবহার করে সিএসএসের পূর্বসূরী) তেও একক লাইনের মন্তব্য রয়েছে। এটি আবশ্যক বনাম ঘোষিত ভাষাগুলির সাথে কোনও সম্পর্ক নেই।
জ্যাকবিবি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.