'এক্সএমএলএনএস' এবং 'সংস্করণ' এর মতো এসভিজি পরামিতিগুলি কী দরকার?


203

ইন্টারনেটে আমি দেখতে পাই এমন প্রায় অর্ধশত এসভিজি উদাহরণে কোডটি সাধারণ সরল <svg></svg>ট্যাগগুলিতে মোড়ানো থাকে ।

অন্য অর্ধে, এসভিজি ট্যাগগুলিতে এরকম জটিল জটিল বৈশিষ্ট্য রয়েছে:

<svg 
  xmlns="http://www.w3.org/2000/svg" 
  version="1.1" 
  xmlns:xlink="http://www.w3.org/1999/xlink"> 

আমার প্রশ্ন হ'ল: সহজ এসভিজি ট্যাগ ব্যবহার করা কি ঠিক? আমি জটিলগুলির সাথে খেলার চেষ্টা করেছি এবং আমি যদি এগুলিকে অন্তর্ভুক্ত না করি তবে আমার শেষে সবকিছু ঠিকঠাক কাজ করে।

উত্তর:


206

সমস্ত ব্যবহারকারী এজেন্ট (ব্রাউজারগুলি) সংস্করণ বৈশিষ্ট্যটিকে উপেক্ষা করে, যাতে আপনি সর্বদা এটি ফেলে দিতে পারেন।

যদি আপনি কোনও এইচটিএমএল পৃষ্ঠায় আপনার এসভিজি ইনলাইন এম্বেড করেন এবং সেই পৃষ্ঠাটি সেবার পরিবেশন করেন text/htmlতবে xMLns বৈশিষ্ট্যগুলির প্রয়োজন নেই । এইচটিএমএল নথিগুলিতে এসভিজি ইনলাইন এম্বেড করা মোটামুটি সাম্প্রতিক উদ্ভাবন যা এইচটিএমএল 5 এর অংশ হিসাবে উপস্থিত হয়েছিল।

তাহলে কিন্তু আপনি ইমেজ / SVG + XML বা অ্যাপ্লিকেশন / XHTML + + XML বা অন্য কোন MIME প্রকার যে তারপর একটি XML পার্সার ব্যবহার করতে ইউজার এজেন্ট ঘটায় যেমন আপনার পৃষ্ঠার পরিবেশন করা xmlns বৈশিষ্ট্যাবলী হয় প্রয়োজনীয় । সাম্প্রতিক অবধি এই জিনিসগুলি করার একমাত্র উপায় ছিল তাই এখানে প্রচুর সামগ্রী সরবরাহ করা হয়।


5
"সমস্ত সংযুক্ত আরব আমিরাত সংস্করণ বৈশিষ্ট্যটিকে উপেক্ষা করে, তাই আপনি সর্বদা এটি বাদ দিতে পারেন।" - তবে বিষয়টি সম্পর্কে স্পেকের কী বলতে হবে? "ব্রাউজারগুলি আপনাকে এ থেকে দূরে সরিয়ে দেবে" এমন অনেক অনুশীলনের ক্ষেত্রে সত্য (বা কোনও সময় হয়েছে) যা (বা ছিল) নিস্পষ্টভাবে ভুল।
মার্ক আমেরিকা

আইই ১১ এ, যদি আমি <!DOCTYPE svg xmlns="www.w3.org/2000/svg">এটি ব্যবহার করি তবে আমি যদি এক্সএমএনএলগুলি কেড়ে নিই বা এটিতে পরিবর্তন করি তবে <!DOCTYPE svg xmlns="www.example.com">এটি কার্যকর হয় না। তা কেন?
ডোনাল্ড হাঁস

8
দয়া করে এই উত্তরের জন্য কোনও উত্স উদ্ধৃত করা যেতে পারে?
2540625

69
আমি ফায়ারফক্সে এসভিজি কোডের একটি উল্লেখযোগ্য ভগ্নাংশ লিখেছি এবং আমি তা বলেছি। তা কি যথেষ্ট নয়? যদি তা না হয় তবে আমি কিছু লিঙ্ক যুক্ত করেছি।
রবার্ট লংশন

1
@ মার্সেল নয় যদি সেই ডেটা-ইউরিসগুলি চিত্র / এসভিজি + এক্সএমএল হয়, যা সাধারণত হয় তবে উত্তরের শেষ অংশটি ধারণ করে।
রবার্ট লঙ্গসন

228

xmlns="http://www.w3.org/2000/svg"অ্যাট্রিবিউট হল:

  • চিত্র / এসভিজি + এক্সএমএল ফাইলগুলির জন্য প্রয়োজনীয়1
  • ঐচ্ছিক জন্য inlined <svg>2

xmlns:xlink="http://www.w3.org/1999/xlink"অ্যাট্রিবিউট হল:

  • Xlink: বৈশিষ্ট্যযুক্ত চিত্র / এসভিজি + এক্সএমএল ফাইলের জন্য প্রয়োজনীয়1
  • ঐচ্ছিক জন্য inlined <svg> সঙ্গে xlink: বৈশিষ্ট্যাবলী। 2

version="1.1"অ্যাট্রিবিউট হল:

  • চিত্র / এসভিজি + এক্সএমএল ফাইলের মান মেনে চলার জন্য প্রস্তাবিত3
  • স্পষ্টতই প্রতিটি ব্যবহারকারীর দ্বারা উপেক্ষা করা হয়। 4
  • সরানো হয়েছে করা SVG 2. 5

1 আন্তর্জাতিকীকৃত রিসোর্স আইডেন্টিফায়ার (আরএফসি 3987)
2 HTML5 থেকে
3 এক্সটেনসিবল মার্কআপ ল্যাঙ্গুয়েজ (এক্সএমএল) 1.0
4 সম্ভবত আরও বড় সংস্করণ প্রকাশ না হওয়া পর্যন্ত।
5 এসভিজি 2, ডাব্লু 3 সি প্রার্থীদের প্রস্তাবনা, 07 আগস্ট 2018


2
এটির কি এইচটিপি হওয়া দরকার বা এটিও https হতে পারে?
জোহানেসবি

2
@ জোহনেসবি উভয় প্রোটোকলই সামঞ্জস্যপূর্ণ: ডি
এন কম্পিউটারগুলি

1
@JohannesB হ্যাঁ এখানে আপনি একটি আছে inlined উদাহরণ HTTP- র HTTPS দ্বারা এবং ইমেজ / SVG + XML ফাইল inlined সঙ্গে SVG xlink বৈশিষ্ট্যাবলী উদাহরণ HTTP- র HTTPS দ্বারা
ncomputers

1
ধন্যবাদ, অনুমান নিক Craver যেমন ভুল তোলে ঠিক আছে তাহলে;)
JohannesB

2
উপাদানটির বৈশিষ্ট্যের জন্য versionএক্সএমএল ঘোষণার ( <?xml version...) বৈশিষ্ট্যটি ভুল করবেন না । প্রথমটি এক্সএমএল মার্কআপ ভাষার সংস্করণ সম্পর্কে, তবে দ্বিতীয়টি এসভিজির সংস্করণ নির্দিষ্ট করে। এই উত্তরের লেখক ML-তে এসভিজি স্পেসিফিকেশন নয়, এক্সএমএলকে উল্লেখ করে এই ভুল করেছিলেন ³ আমি এটি সংশোধন করার চেষ্টা করেছি, কিন্তু কিছু বোকামি সম্পাদনাটি প্রত্যাখ্যান করেছে। version<svg>
বাচসউ

7

আমি উভয় উত্তর যুক্ত করতে চাই, কিন্তু আমার কোন পয়েন্ট নেই, আমি একটি নতুন উত্তর যুক্ত করছি। ক্রোমের সাম্প্রতিক পরীক্ষাগুলিতে (সংস্করণ .0৩.০.৩৩৩৯.১৩২ (অফিসিয়াল বিল্ড) (-৪-বিট উইন্ডোজ)) আমি পেয়েছি যে:

  1. টেক্সট সম্পাদক বা জাভাস্ক্রিপ্ট এবং elm.innerH HTML এর মাধ্যমে HTML ফাইলটিতে সরাসরি প্রবেশ করা ইনলাইন এসভিজির জন্য, অন্য দুটি উত্তরে বর্ণিত হিসাবে এক্সএমএলএন বৈশিষ্ট্যগুলি প্রয়োজনীয় নয়।
  2. তবে জাভাস্ক্রিপ্ট এবং এজেএক্সের মাধ্যমে লোড হওয়া ইনলাইন এসভিজির জন্য দুটি বিকল্প রয়েছে:
    • ব্যবহার করুন xhr.responseTextএবং elm.innerHTML। এটির জন্য xMLns প্রয়োজন হয় না।
    • ব্যবহার করুন xhr.responseXML.documentElementএবং elm.appendChild()বা elm.insertBefore()। ইনলাইন এসভিজি তৈরির এই পদ্ধতিটি বেসিক এসভিজি নেমস্পেস হিসাবে ঘোষণা না করে অর্ধ-বেকড ফলাফল দেয় xmlns="http://www.w3.org/2000/svg"। <svg> এইচটিএমএলে লোড হয় তবে ডকুমেন্ট-স্তরের ফাংশন যেমন getElementById()<svg> উপাদানটিতে স্বীকৃত হয় না। আমি ধরে নিই যে এটি এটি HTML এর বাইরে এক্সএমএলএইচটিটিপিআরেক্সেস্ট এক্সএমএল পার্সার ব্যবহার করে।

0

এসভিজি সংস্করণ সম্পর্কে এমডিএন ওয়েবডক বৈশিষ্ট্যটি বলেছেন

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

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

পিএস: এসভিজি 2 এখনও স্ট্যান্ডার্ড হওয়ার থেকে দূরে।

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