সিউডো-উপাদানগুলির জন্য আমার একক বা ডাবল কোলন স্বরলিপি ব্যবহার করা উচিত?


108

যেহেতু আই 7 এবং আই 8 সিউডো-এলিমেন্টের জন্য ডাবল-কোলন স্বরলিপি সমর্থন করে না (যেমন ::afterবা ::first-letter) এবং আধুনিক ব্রাউজারগুলি :afterপিছনের সামঞ্জস্যের জন্য একক-কোলন স্বরলিপি (উদাহরণস্বরূপ ) সমর্থন করে , তখন আমি কি একা একক-কোলন স্বরলিপি ব্যবহার করব এবং কখন? আইই 8-র বাজার ভাগ কমেছে তুচ্ছ পর্যায়ে ফিরে গিয়ে আমার কোড বেসটিতে সন্ধান / প্রতিস্থাপন করুন? অথবা আমি উভয় অন্তর্ভুক্ত করা উচিত:

.foo:after,
.foo::after { /*styles*/ }

আইই 8 ব্যবহারকারীদের (দরিদ্র স্নেহ) সম্পর্কে যত্ন নিয়ে যদি একা ডাবল ব্যবহার করা নিরীহ বলে মনে হয়।

উত্তর:


71

দুটোকে কমা দিয়ে মিলিয়ে ব্যবহার করবেন না । একটি CSS 2.1 অনুবর্তী (CSS3 সক্ষম নয়) ব্যবহারকারী এজেন্ট পুরো নিয়মটিকে উপেক্ষা করবে:

যখন কোনও ব্যবহারকারী এজেন্ট বাছাইকারীকে পার্স করতে পারে না (যেমন, এটি সিএসএস ২.১ এর বৈধ নয়), অবশ্যই এটি নির্বাচক এবং নিম্নলিখিত ঘোষণা ব্লক (যদি থাকে) উপেক্ষা করতে হবে।

সিএসএস ২.১ নির্বাচকদের কমা (,) এর একটি বিশেষ অর্থ দেয়। তবে, যেহেতু এটি জানা যায়নি যে সিএসএসের ভবিষ্যতের আপডেটগুলিতে কমাটি অন্য অর্থ অর্জন করতে পারে, তাই নির্বাচকের অন্য কোথাও সিএসএস ২.১ এ যুক্তিসঙ্গত দেখা গেলেও নির্বাচকের যে কোনও জায়গায় ত্রুটি থাকলে পুরো বিবৃতিটি এড়ানো উচিত।

http://www.w3.org/TR/CSS2/syndata.html#rule-sets

আপনি তবে ব্যবহার করতে পারেন

.foo:after { /*styles*/ }
.foo::after { /*styles*/ }

অন্যদিকে এটি প্রয়োজনের চেয়ে আরও ভার্জোজ; আপাতত, আপনি এক-কোলন স্বরলিপি দিয়ে আটকে থাকতে পারেন।


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

2
এটি এগিয়ে যাওয়ার পথ নয়। যদি লোকে অ্যান্টিলিউভিয়ান, ভাঙা এবং অবহেলিত ব্রাউজারগুলিতে প্রসার করা বন্ধ করে দেয় তবে ব্রাউজারের অগ্রগতি জোর করে দ্রুত করা হবে।
গেরশম

2
@ জারশোম মেস: দুর্ভাগ্যক্রমে আপনার এটি বলার পক্ষে নয়। আমি মনে করি বিকাশকারীদের একটি বড় অংশ একই জন্য আশাবাদী, তবে এটি ঘটবে না just
BoltClock

@ গারশম মেইস আমরা স্বপ্ন দেখতে পারি
জেমস কুশিং

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

62

থেকে সিএসএস 3 নির্বাচক REC :

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

দেখে মনে হচ্ছে যে সিএএস 2.1 তে ইতিমধ্যে বিদ্যমান ইউএসএর হিসাবে পশ্চাদমুখে সামঞ্জস্যপূর্ণ থাকতে পারে এমন সিউডো-এলিমেন্টগুলির জন্য (কেবলমাত্র) এক-কোলন স্বরলিপি ব্যবহার করে আপনি নিরাপদ


1
রেকর্ডের জন্য, এই উত্তরটি সমানভাবে সঠিক হিসাবে চিহ্নিত হতে পারে। এটি কিছু মূল্যবান দৃষ্টিভঙ্গি সরবরাহ করে, যদিও মূল প্রশ্নের উত্সাহটি ছদ্ম উপাদানগুলির আগে এবং পরে বিশেষত ছিল। এটি যুক্ত করার জন্য ধন্যবাদ।
জিঙ্গলেস্তুলা

কীভাবে আপনি এই সিদ্ধান্তে এসেছেন? আমি বিপরীতে উপসংহারে এসে পৌঁছেছি ... নতুন সিউডো-উপাদানগুলির জন্য যদি একক কলোনকে অনুমতি দেওয়া না হয় তবে আপনি অভ্যাসে ডাবল কলোন ব্যবহার শুরু করবেন না?
অ্যান্ড্রুটবার

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

@ ওয়ান্ডেউইবার +1 ওপি ইয়েপের জন্য, আইই 8 কে 2012 সালে বিবেচনা করা উচিত এবং - ওয়াইএমএমভি - এখনও 2015 সালে বিশাল বি 2 বি প্রকল্পে এবং একইভাবে তবে অন্যান্য ওয়েব প্রকল্পে নয়। উভয় স্বরলিপি এই বিদ্যমান সিউডোগুলির জন্য পুরোপুরি বৈধ। সিএসএস মিনিফিকেশন ওয়ান-কোলন স্বরলিপি ব্যবহার করে 1 বাইট অর্জন করবে। আপনি যদি সর্বদা একটি স্বরলিপি ব্যবহার করতে এবং অন্যটিকে নিষেধ করতে চান তবে ভাল এটি একটি সম্মেলন যা আপনি আপনার দলের সাথে সম্পূর্ণরূপে মুক্ত কিন্তু এটি কোনও সুপারিশ নয়।
ফিলিপলস

@ জিংস্টেস্টুলা এবং ফিলিপ, আপনি ঠিক বলেছেন, আমি তারিখটি লক্ষ্য করিনি। সম্ভবত উত্তরটি আপডেট করা উচিত, যেহেতু এই প্রশ্নটি অনুসন্ধানের ফলাফলগুলিতে
শীর্ষে

22

একটি কোলন "নিরাপদ" ব্যবহার বিবেচনা করার ক্ষেত্রে আমি @ এমডিডিডাব্লু এবং @ ফিলিপএলগুলির সাথে একমত নই।

ব্রাউজার-ভিত্তিক প্রযুক্তিগুলি এগিয়ে এবং অগ্রগতিতে এত মন্থর কারণেই এই "আমি এটি ব্যবহার না করলেও এটি হ্রাস পেয়েছি" ব্যবহার করব।

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

যতটা সম্ভব উত্তরাধিকারের মানকে সমর্থন করার সময়, বর্তমান মানগুলির সাথে সম্মতি বজায় রাখা লক্ষ্য হওয়া উচিত।

সিউডো-উপাদানের ব্যবহার করেন তাহলে :CSS 2 এবং ::সিএসএস 3, আমরা এক বা অন্যান্য ব্যবহার করছেন না হওয়া উচিত; আমাদের উভয় ব্যবহার করা উচিত ।

জিজ্ঞাসিত মূল প্রশ্নের সম্পূর্ণ উত্তর দিতে, নিম্নলিখিত সংস্করণ 2-এর উত্তরাধিকার সমর্থন বজায় রেখে সিএসএসের সর্বাধিক বর্তমান বাস্তবায়ন (সংস্করণ 3) সমর্থন করার উপযুক্ত পদ্ধতি method

.foo:after {
  /* styles */
}
.foo::after {
  /* same styles as above. */
}

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

9
আপনি যদি আমার উত্তরটির সাথে " একেবারে একমত নন ", তবে আপনি ডাব্লু 3 সি প্রস্তাবের মধ্যে অবশ্যই এই শব্দটির সাথে একমত নন। " সম্ভাব্য যতটা সম্ভব উত্তরাধিকারের মানকে সমর্থন করার সাথে সাথে বর্তমান মানগুলির সাথে সম্মতি বজায় রাখা লক্ষ্য হওয়া উচিত। " আরইসি এর এই অংশটি যা সম্বোধন করছে এবং এটি স্পষ্টভাবে বলেছে যে ইউএদের লেখকদের উভয় স্বীকৃতি ব্যবহার করতে বাধ্য করা উচিত নয় এবং এই ইউএএগুলি কীভাবে এটি করা উচিত তা ব্যাখ্যা করে by আপনি যদি ঠিকঠাক না হয়ে থাকেন তবে সিএসএস ডাব্লুজি মেইলিং-লিস্টের সাথে যোগাযোগ করতে নির্দ্বিধায় (বা টুইটারে @ এই ওয়ার্কিং গ্রুপের কো-চেয়ারম্যান)
ফিলিপএলস

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

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

8
@ জোশুয়া বার্নস যদি আমার পূর্বসূরী কোনও কাল্পনিক ভবিষ্যতের হুমকির হাত থেকে রক্ষা করার জন্য কোডের একটি লোড নকল করে ফেলেছিল তবে আমি আরও "বিভ্রান্ত" বোধ করব।
মার্ক আমেরিকা

2

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


এটি মূলত কেবল একটি মেটা উত্তর; এটি কোনও দরকারী তথ্য সরবরাহ করে না। যদি কোনও উত্তর পুরানো হয়, তবে এটিকে নিম্নমানে করুন এবং / অথবা এর উপর মন্তব্য করে।
11,000

2
কেন এমন একটি পলফিল লিঙ্ক করবেন না, তাই আমরা আরও গুগলিং ছাড়াই এটি ব্যবহার করতে পারি?
মাইটিপোর্ক

4
হ্যাঁ, প্রথম অংশটি মেটা হতে পারে তবে আমি মনে করি দ্বিতীয় অংশটি একটি ভাল উত্তর। আমি যেখানে কাজ করি আমরা কোনও প্রিপ্রসেসর এবং / অথবা পলিফিল ব্যবহার করি না, তাই গ্রহণযোগ্য উত্তর আমার পক্ষে কাজ করে। তবে যে কোনও দোকান বা দেব যা এই জাতীয় সরঞ্জাম ব্যবহার করে, সম্ভবত এই উত্তরটি আরও কার্যকর।
জিঙ্গলেস্টুলা

1

ব্রাউজারের পরিসংখ্যান অনুসারে এটির জন্য মূল্যবান IE 8.0 গত এক বছরে মার্কিন যুক্তরাষ্ট্রে 1% এরও কম নেমে গেছে।

http://gs.statcounter.com/browser-version-partially-combined-market-share/desktop/united-states-of-america/#monthly-201512-201612

ডিসেম্বর 2015 আইই 8.0 এর বাজারের 2.92% ছিল । ডিসেম্বর 2016 আইই 8.0 এর বাজারের .77% ছিল ।

পতনের এই হারে IE এর পুরানো সংস্করণগুলি সমর্থন করা বন্ধ করা এবং সিউডো উপাদানগুলির জন্য :: ব্যবহার শুরু করা সবচেয়ে খারাপ ধারণা হবে না।


যা উদযাপন করার মতো বিষয় :) এটি উল্লেখ করাও গুরুত্বপূর্ণ যে এটি এখনও পরিস্থিতির উপর নির্ভর করে। আপনি যদি আমাজন হন তবে আপনার ব্যবহারকারীর 0.5% এর মিলিয়ন গ্রাহকের সমান যারা আপনার সাইটটি ভাঙ্গা বলে মনে করে। আপনি যদি কোনও 10 জন ব্যক্তির সূচনার জন্য ব্লগ করে থাকেন তবে তা বাধে ভিন্ন।
জিঙ্গলেস্টুলা

অ্যামাজনের মতো প্রতিষ্ঠানের ব্যাপারে অবশ্যই সত্য। তবে 7777% পুরো জনসংখ্যায় সমানভাবে বিতরণ করা হয়নি। এটি তুলনামূলকভাবে পুরানো লোকেরা বা অল্প অর্থের লোকেরা যা আপগ্রেড করতে পারে না। খাঁটি ব্যবসায়ের দৃষ্টিকোণ থেকে সেগুলি সম্ভবত আদর্শ টার্গেট মার্কেট নয়। সুতরাং বেশিরভাগ সংস্থার কাছে .77% গোষ্ঠীটি এই সংখ্যার সংখ্যার চেয়ে কম তাত্পর্যপূর্ণ। এবং এই সংখ্যাটি আরও ছোট হবে।
DR01D

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

0

উভয় স্বরলিপি অন্তর্ভুক্ত করা অবশ্যই নিরাপদ তবে আমি কোনও ব্রাউজারকে দীর্ঘ সময়ের জন্য একক স্বরলিপিটি ফেলে আসা দেখতে পাচ্ছি না, সুতরাং কেবলমাত্র একটি একক ভাল থাকবে (এটি কার্যকর সিএসএস 2))

ব্যক্তিগতভাবে আমি কেবলমাত্র একক কোলন স্বরলিপি ব্যবহার করি, বেশিরভাগ অভ্যাস অনুসারে।


1
অন্যান্য উত্তরগুলি যেমন পরিষ্কার করে দেয়, এটি এর চেয়ে কিছুটা জটিল এবং কিছু অ-স্পষ্ট ফাঁদ রয়েছে (যেমন সিএসএস 3 সিউডো-এলিমেন্টের জন্য সিঙ্গেল-কোলন স্বীকৃতি সমর্থন করা অনুমানের স্পষ্ট লঙ্ঘন, সুতরাং এটি CSS লেখকদের পক্ষে বুদ্ধিমান বলে মনে হয় না) এই নির্বাচকদের জন্য একক-কোলন স্বরলিপি ব্যবহার করতে)।
মার্ক অ্যামেরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.