ইউআরএল () এর মূল্য উদ্ধৃত করা কি সত্যিই প্রয়োজনীয়?


235

আমার স্টাইলশিটগুলিতে নিচের কোনটি ব্যবহার করা উচিত?

/* Example #1: */ background-image: url(image.png);
/* Example #2: */ background-image: url("image.png");
/* Example #3: */ background-image: url('image.png');

ডাব্লু 3 সি সঠিক উপায় হিসাবে কী নির্দিষ্ট করে ?


উত্তর:


243

ডাব্লু 3 সি বলেছেন উদ্ধৃতিগুলি alচ্ছিক, আপনার তিনটি উপায়ই বৈধ।

খোলার এবং সমাপনী উদ্ধৃতিতে একই চরিত্রটি থাকা দরকার।

আপনার ইউআরএলটিতে যদি বিশেষ অক্ষর থাকে তবে আপনার উদ্ধৃতি ব্যবহার করা উচিত বা অক্ষরগুলি এড়ানো উচিত (নীচে দেখুন)।

সিনট্যাক্স এবং বেসিক ডেটা ধরণের

একটি ইউআরআই মানের বিন্যাস হ'ল ইউআরএল ('পরে whiteচ্ছিক সাদা স্থানের পরে একটি alচ্ছিক একক উদ্ধৃতি (') বা ডাবল উদ্ধৃতি (") অক্ষর এবং তারপরে ইউআরআই নিজেই পরে anচ্ছিক একক উদ্ধৃতি (') বা ডাবল উদ্ধৃতি হয় (") অক্ষর এর পরে )চ্ছিক সাদা স্থান অনুসরণ করবে ')'। দুটি উদ্ধৃতি অক্ষর অবশ্যই একই হতে হবে।

বিশেষ অক্ষরগুলি ছেড়ে যাওয়া:

কোনও অক্ষরযুক্ত ইউআরআই-তে উপস্থিত হওয়া কিছু অক্ষর, যেমন বন্ধনী, সাদা স্থানের অক্ষর, একক উদ্ধৃতি (') এবং ডাবল উদ্ধৃতি ("), অবশ্যই ব্যাকস্ল্যাশ দিয়ে পালাতে হবে যাতে ফলস্বরূপ ইউআরআই মান একটি ইউআরআই টোকেন:' \ (', '\)'।


9
কিছু পুরানো ব্রাউজারগুলিতে আইই ম্যাক নামের উদ্ধৃত ইউআরএলগুলির সাথে সমস্যা থাকতে পারে।
মেমারম্যান

5
বাইক said২ যা বলেছিল তার সংযোজন হিসাবে, কিছু পুরানো ব্রাউজারগুলি সিএসএসে উদ্ধৃত ইউআরএলগুলির সাথে মুখোমুখি হওয়ার সময় দ্বৈত অনুরোধ করে, প্রথমে তারা "মাইফাইল.পিএনজি" এর পরে মাইফাইল.পিএনজি অনুরোধ করে - তাই আমি সেগুলি ব্যবহার করা এড়ানোর কারণ।
পেব্ল

আপনি দ্বিতীয় উক্তিটি পোস্ট করার পর থেকে আপনি যে স্পেকটির সাথে লিঙ্কটি যুক্ত করেছেন সেগুলি আবার লেখা হয়েছিল বলে মনে হয় W কমাতে এখন পালানোর দরকার নেই বলে মনে হচ্ছে।
বেন

@pebbl - আপনি ঠিক বলেছেন, এবং পুরানো ব্রাউজারগুলিতে ম্যাকের উপরে ক্রোমের নতুন সংস্করণ অন্তর্ভুক্ত রয়েছে।
ড্যানিয়েল বিয়ার্ডসলে

7
সিএসএস 3 সর্বশেষ সম্পাদকের খসড়া (মে 2015) আর কোটকে অনুমতি দেবে বলে মনে হচ্ছে না: dev.w3.org/csswg/css-syntax ( url-tokenরেলপথ স্কিমা পরীক্ষা করুন ) যখন বর্তমান প্রার্থীর সুপারিশ (ফেব্রুয়ারী 2014) করেছে: w3.org/TR / css-syax-3 আমি মনে করি তারা উদ্ধৃতিগুলির পরিবর্তে অব্যাহতি ক্রমের ব্যবহার প্রচার করতে চায়
সাইমন মউরিয়ার

34

আরও ভাল ব্যবহারের উদ্ধৃতি কারণ এটি সর্বশেষতম স্ট্যান্ডার্ড দ্বারা প্রস্তাবিত এবং এর চেয়ে কম প্রান্তের কেস রয়েছে।

সিএসএস মানসমূহ এবং মডিউল স্তর 3 (18 ডিসেম্বর 2015) এর নবীনতম সম্পাদকের খসড়া অনুযায়ী

একটি ইউআরএল হ'ল সংস্থানগুলির জন্য একটি পয়েন্টার এবং এটি দ্বারা ব্যবহৃত একটি কার্যকরী স্বরলিপি <url> । এর সিনট্যাক্সটি <url>হ'ল:
<url> = url( <string> <url-modifier>* )

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

এর অর্থ, url(...)সিনট্যাক্সটি একটি কার্যকরী স্বরলিপি বলে মনে করা হয়, যা পরামিতি হিসাবে একটি স্ট্রিং এবং url-modifier নেয়। উদ্ধৃতি স্বরলিপি ব্যবহার করুন (যা একটি স্ট্রিং টোকেন উত্পাদন করে) আরও মানসম্পন্ন হবে এবং কম জটিলতার পরিচয় দেবে।

শীর্ষের উত্তরে সাইমনমিউরিয়ার মন্তব্যটি ভুল, কারণ তিনি ভুল ধারণাটি খুঁজেছিলেন। url-tokenটাইপ শুধুমাত্র উত্তরাধিকার বিশেষ পার্সিং নিয়ম চালু করা হয়েছে যাতে এর কেন এটা কোট সাথে কিছু নেই।


"অব্যক্ত সংস্করণটি কেবলমাত্র উত্তরাধিকারগত কারণেই সমর্থিত [..]" উত্স?
সেমেল

5
drafts.csswg.org/css-values-3/#ref-for-url-value-7 "দ্রষ্টব্য: উত্তরাধিকারের উদ্ধৃতি চিহ্নের জন্য বিশেষ পার্সিং বিধি - কম <url> বাক্য
গঠনটি এর

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

রেফারেন্সড ডকুমেন্টের 2020 সংস্করণে 'অব্যবহৃত সংস্করণটি কেবলমাত্র উত্তরাধিকারের কারণে সমর্থিত' উল্লেখ করা বলে মনে হয় না।
জহমিক

11

এখানে ডাব্লু 3 সিএসএস 2.1 স্পেসিফিকেশন যা বলেছে:

একটি ইউআরআই মানের বিন্যাস হ'ল ইউআরএল ('পরে whiteচ্ছিক সাদা স্থানের পরে একটি alচ্ছিক একক উদ্ধৃতি (') বা ডাবল উদ্ধৃতি (") অক্ষর এবং তারপরে ইউআরআই নিজেই পরে anচ্ছিক একক উদ্ধৃতি (') বা ডাবল উদ্ধৃতি হয় (") অক্ষর এর পরে )চ্ছিক সাদা স্থান অনুসরণ করবে ')'। দুটি উদ্ধৃতি অক্ষর অবশ্যই একই হতে হবে।

সূত্র: http://www.w3.org/TR/CSS21/syndata.html#uri

সুতরাং আপনার প্রস্তাবিত 3 টি উদাহরণের সবই সঠিক, তবে আমি যেটি বেছে নেব তা হ'ল প্রথমটি কারণ আপনি কম অক্ষর ব্যবহার করেন এবং ফলস্বরূপ সিএসএস ফাইলটি ছোট হবে, ফলে ব্যান্ডউইথের ব্যবহার কম হবে।

এটির মতো গুরুত্বপূর্ণ মনে হতে পারে না তবে উচ্চ ট্র্যাফিক ওয়েবসাইটগুলি ব্যান্ডউইথ এবং প্রচুর CSS ফাইলের চেয়ে বেশি সংরক্ষণ করতে পছন্দ করে এবং সেগুলির মধ্যে ইউআরএল রেফারেন্সগুলি ফাইলটিকে আরও ছোট করে তোলে এমন বিকল্পটি বেছে নেওয়াই বুদ্ধিমান হয় ... এমনকি কোনও সুবিধা নেই বলেও না করে

দ্রষ্টব্য: ইউআরএলগুলিতে প্রথম বন্ধনী, কমা, সাদা স্থানের অক্ষর, একক উদ্ধৃতি বা ডাবল উদ্ধৃতি থাকলে আপনার অক্ষরগুলি থেকে বাঁচতে হতে পারে। এটি ইউআরএলকে কেবলমাত্র উদ্ধৃতি ব্যবহারের চেয়ে দীর্ঘতর করতে পারে (যার জন্য কম পালানোর প্রয়োজন)। অতএব আপনি যখন সিএসএস ফাইলটি কোনও কোট ছাড়াই url সহ পরিবেশন করতে পারেন তখনই যখন পলায়নের ওভারহেড কেবলমাত্র উদ্ধৃতি ব্যবহারের চেয়ে url দীর্ঘায়িত করে না (যা খুব বিরল)।

তবে আমি প্রত্যাশা করব না যে কোনও মানুষ এই প্রান্তের কেসগুলিও বিবেচনা করবেন ... একটি সিএসএস অপ্টিমাইজার আপনার জন্য এটি পরিচালনা করবে ... (তবে আপনি যদি সত্যই সিএসএস অপ্টিমাইজার লিখছেন তবে এগুলি সম্পর্কে আপনার জানা দরকার: পি)


5
কেন এটিকে নিচে ভোট দেওয়া হয়েছে তা জানেন না; উচ্চ ট্র্যাফিক সাইটের জন্য, এই জাতীয় ধারণাগুলি এক বছরের ব্যবধানে একটি বড় পার্থক্য করে।
জোসে মাইক

7
↑ আমি সত্যই সন্দেহ করি। প্রতি সিএসএসে কতগুলি ইউআরএল রয়েছে? খুব বেশি না. এবং আপনি কেবলমাত্র দুটিতে বাইটসকে ছাড়িয়েছেন (ascii বা utf-8 এ)। এছাড়াও, আপনি আসলে url আরও দীর্ঘ করতে পারেন, কারণ আপনার ব্যাকস্ল্যাশ ব্যবহার করতে হতে পারে। ওয়েবের আকার হ্রাস করার আরও অনেক ভাল উপায় আছে ...
ক্রেলিক

1
স্পষ্টতই এটি কোনও সঞ্চয় করার মতো নয়, তবে আন্দ্রেয়া এবং জয়েজি এখনও সঠিক are চূড়ান্ত উদাহরণ হিসাবে, গুগলকে ব্যান্ডউইথের বেশ কিছুটা সঞ্চয় করতে কেবল তাদের হোমপেজ থেকে একটি বাইট অপসারণ করতে হবে;)
পেব্ল

2
@ ক্রেলাইক ... অতএব সর্বোত্তম বিষয় হ'ল প্রয়োজনের সময় উদ্ধৃতি ব্যবহার না করা ... সুতরাং আপনার যখন দুটির বেশি বন্ধনী, কমা, সাদা স্থান অক্ষর, একক উদ্ধৃতি বা ডাবল উদ্ধৃতি সহ একটি ইউআরএল থাকবে তখন কোট ব্যবহার করা ভাল better । যাইহোক যা আমি কখনও কোনও সিএসএস ফাইলে পড়িনি ... এবং আমি নিশ্চিত যে আমি কখনই করব না :) (উত্তরটি আপডেট করেছে)
আন্দ্রে জিলিও

18
প্রোগ্রামাররা যারা তাদের উত্স কোডগুলি থেকে স্বতন্ত্র অক্ষরগুলির অনুকূলিতকরণের সাথে নিজেকে উদ্বেগিত করে, তারা নৌকাকে পুরোপুরি অনুপস্থিত - তারা খুব কমই কোনও কিছুতেই অনুকূলিত করবে না। যাইহোক, আমি সর্বদা ডাবল-কোট ব্যবহার করি। আমি ধারাবাহিকতার মানুষ।
চেজমসকাল

6

তিনটি উপায় ডাব্লু 3 সি অনুসারে আইনী। আপনার নামে (অক্ষর হিসাবে) বিশেষ অক্ষর থাকলে আপনার দ্বিতীয় বা তৃতীয়টি ব্যবহার করা উচিত।


3

2 বা 3 উদাহরণ সেরা:

ডাব্লু 3 সি থেকে: ইউআরআই মানের ফর্ম্যাটটি হ'ল ইউআরএল ('optionচ্ছিক সাদা স্থানের পরে একটি singleচ্ছিক একক উদ্ধৃতি (') বা ডাবল উদ্ধৃতি (") অক্ষরের পরে ইউআরআই নিজেই আসে, তার পরে একটি anচ্ছিক একক উদ্ধৃতি (') বা ডাবল উদ্ধৃতি (") অক্ষর এর পরে whiteচ্ছিক সাদা স্থান অনুসরণ করবে ')'। দুটি উদ্ধৃতি অক্ষর অবশ্যই একই হতে হবে।

একই ব্যাখ্যা থেকে নোট করুন, উপযুক্ত অক্ষরগুলি এড়ানো গেলে উদাহরণ 1 গ্রহণযোগ্য characters


1

আমার ছিল:

a.pic{
    background-image: url(images/img (1).jpg);
}

ফাইল নাম বন্ধ বন্ধনীটি নিয়ম ভঙ্গ করছে তা বুঝতে আমার কিছুটা সময় লেগেছে।

সুতরাং এটি বাধ্যতামূলক নয় তবে, পুরানো ব্রাউজারগুলি দ্বারা উদ্ধৃতিটি এতটা ভালভাবে বোঝা না গেলেও এটি মোটামুটি জটিল গতিশীলভাবে উত্পন্ন পৃষ্ঠাগুলিতে আপনাকে কিছুটা মাথা ব্যথা বাঁচাতে পারে।


0

গুগল সিএসএস কোডিং স্টাইল অনুসারে

ইউআরআই মানগুলিতে (url ()) উদ্ধৃতি চিহ্ন ব্যবহার করবেন না।

ব্যতিক্রম: আপনার যদি @ চ্যারসেট বিধিটি ব্যবহার করার প্রয়োজন হয় তবে ডাবল উদ্ধৃতি চিহ্ন ব্যবহার করুন — একক উদ্ধৃতি চিহ্নের অনুমতি নেই।


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