সিএসএসে ইমপোর্ট এবং লিঙ্কের মধ্যে পার্থক্য


118

আমি আমার প্রকল্পের টেমপ্লেটটি টুইঙ্ক করতে কিছু সিএসএস শিখছি। আমি এই সমস্যায় এসেছি এবং ওয়েবে একটি পরিষ্কার উত্তর খুঁজে পাইনি। সিএসএসে @ ইম্পোর্ট বা লিঙ্ক ব্যবহারের মধ্যে কি কোনও পার্থক্য রয়েছে?

@ ইম্পোর্টের ব্যবহার

<style>@import url(Path To stylesheet.css)</style>

লিঙ্ক ব্যবহার

<link rel="stylesheet" href="Path To stylesheet.css">

এটি করার সর্বোত্তম উপায় কী? এবং কেন? ধন্যবাদ!

উত্তর:


142

তত্ত্বের মধ্যে, তাদের মধ্যে একমাত্র পার্থক্য @importহ'ল স্টাইল শিট এবং <link>এইচটিএমএল প্রক্রিয়া অন্তর্ভুক্ত করার জন্য সিএসএস প্রক্রিয়া। যাইহোক, ব্রাউজারগুলি <link>পারফরম্যান্সের ক্ষেত্রে একটি স্পষ্ট সুবিধা প্রদান করে এগুলি আলাদাভাবে পরিচালনা করে ।

স্টিভ সোডারস একটি বিস্তৃত ব্লগ পোস্ট লিখেছিলেন <link>এবং উভয় এবং @import(এবং তাদের সমস্ত ধরণের সংমিশ্রণের) প্রভাবের তুলনায় " @ ইমপোর্ট ব্যবহার করবেন না " নামে পরিচিত । এই শিরোনামটি নিজের পক্ষে কথা বলছে।

ইয়াহু এটিকে তাদের পারফরম্যান্সের অন্যতম সেরা অনুশীলন হিসাবে উল্লেখ করেছে (স্টিভ সাউডারস সহ- রচিত ): @ ইমপোর্টের উপর থেকে বেছে নিন<link>

এছাড়াও, <link>ট্যাগ ব্যবহার আপনাকে "পছন্দসই" এবং বিকল্প স্টাইলশিট সংজ্ঞায়িত করতে দেয় । আপনি এটি দিয়ে করতে পারবেন না @import


ধন্যবাদ - দুর্দান্ত হাইপারলিঙ্কস - বিশেষত প্রথমটি।
ফয়সাল ভালি

6

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


6

আজ কোনও সত্যিকারের পার্থক্য নেই, তবে @importপুরানো ব্রাউজারগুলি (নেটস্কেপ 4, ইত্যাদি) দ্বারা সঠিকভাবে পরিচালিত হচ্ছে না, তাই @importহ্যাকটি পুরানো ব্রাউজারগুলির থেকে সিএসএস 2 নিয়মগুলি লুকাতে ব্যবহার করা যেতে পারে।

আবার, আপনি যদি সত্যই পুরানো ব্রাউজারগুলি সমর্থন না করেন তবে কোনও পার্থক্য নেই।

তবে আমি যদি আপনি হয়ে থাকি তবে আমি <link>আপনার HTML পৃষ্ঠাগুলিতে রূপটি ব্যবহার করতাম , কারণ এটি আপনাকে মিডিয়া টাইপের (মুদ্রণ, স্ক্রিন ইত্যাদি) নির্দিষ্ট করার অনুমতি দেয়।


5
মিডিয়া নির্দিষ্ট করার জন্য @ গুরুত্বপূর্ণ বয়ানগুলির পক্ষেও সম্ভব।
জর্জি স্কলি

সত্যি? আমার ধারণা আপনি আপনার স্টাইল ট্যাগে একটি মিডিয়া টাইপ রাখতে পারেন তবে এটি আমার কাছে হ্যাকের মতো মনে হয়।
zenazn

5
আপনি যেমন "@ ইম্পোর্ট ইউআরএল (স্টাইল। সিএসএস) স্ক্রিন, প্রিন্ট" করতে পারেন, যদিও আই 7 এবং এর আগে মিডিয়া প্রকারগুলি সমর্থন করে না।
মরাকেটর

5

<লিঙ্ক> নির্দেশটি একাধিক সিএসএসের জন্য লোড করা এবং অ্যাসিঙ্ক্রোনালি ব্যাখ্যা করতে পারে।

@ ইম্পোর্টের নির্দেশিকা ব্রাউজারকে * তার ইঞ্জিন দ্বারা সঠিকভাবে প্রক্রিয়া করার আগে আমদানিকৃত স্ক্রিপ্টটি প্যারেন্ট স্ক্রিপ্টটিতে ইনলাইন লোড না হওয়া পর্যন্ত অপেক্ষা করতে বাধ্য করে, কারণ প্রযুক্তিগতভাবে এটি কেবল একটি স্ক্রিপ্ট।

প্রচুর CSS মিনিমাইজেশন স্ক্রিপ্টগুলি (এবং কম বা সাসের মতো ভাষা) লিঙ্কিত স্ক্রিপ্টগুলিকে স্বয়ংক্রিয়ভাবে মূল স্ক্রিপ্টে সংযুক্ত করে তুলবে কারণ এটি কম ট্রান্সফার ওভারহেডের কারণে শেষ হয়।

* (ব্রাউজারের উপর নির্ভর করে)


2

1
উদ্ধৃতি: "আসুন কল্পনা করুন যে আমাদের একটি 1000 পৃষ্ঠার ওয়েবসাইট রয়েছে এবং আমরা সাইটের প্রতিটি পৃষ্ঠা থেকে একটি সিএসএস ফাইলে লিঙ্ক করেছি Now এখন কল্পনা করুন যে আমরা এই পৃষ্ঠাগুলির মধ্যে একটি দ্বিতীয় সিএসএস ফাইল যুক্ত করতে চাই। আমরা সমস্ত 1000 HTML ফাইল সম্পাদনা করতে এবং দ্বিতীয় সিএসএস লিঙ্ক যুক্ত করুন বা আরও ভাল উপায় হ'ল প্রথম ফাইলের মধ্যে থেকে দ্বিতীয় সিএসএস ফাইলটি আমদানি করা We আমরা কেবল নিজের বেশ কয়েক ঘন্টা কাজ সংরক্ষণ করেছি! "
কেসব্যাশ

1

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


1

@ ইম্পোর্টটি সাধারণত আপনার উদাহরণের মতো ইনলাইন না করে বাহ্যিক স্টাইলশিটে ব্যবহার করা বোঝায়। আপনি যদি সত্যিই খুব পুরানো ব্রাউজারগুলির থেকে স্টাইলশিটটি আড়াল করতে চান তবে আপনি স্টাইলশীটটি ব্যবহার থেকে বিরত রাখতে হ্যাক হিসাবে ব্যবহার করতে পারেন। 

সামগ্রিকভাবে, <link>ট্যাগটি ইমপোর্ট রুলের চেয়ে আরও দ্রুত প্রক্রিয়া করা হয় (যা সিএসএস প্রসেসিং ইঞ্জিনের সাথে সম্পর্কিত হিসাবে কিছুটা ধীরে ধীরে ধীরে ধীরে)।


0

মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরার 9 (MSIE9) @ ইমপোর্টটি সঠিকভাবে পরিচালনা করবে বলে মনে হচ্ছে না। আমার অ্যাপাচি লগ থেকে এই এন্ট্রিগুলি পর্যবেক্ষণ করুন (আইপি অ্যাড্রেস লুকিয়েছে কিন্তু whoisবলেছেন যে এটি মাইক্রোসফ্টের নিজস্ব মালিকানাধীন): স্ক্রিন.এসএস-এর সাথে লিঙ্কযুক্ত মূল এইচটিএমএল

@import url("print.css") print;
@import url("speech.css") aural;

যা আমি এখন linkএইচটিএমএলের উপাদানগুলিতে পরিবর্তন করতে চলেছি, কারণ মনে হয় MSIE9 সার্ভারের কাছে দুটি ভুল অনুরোধ জারি করে, 404 ত্রুটিগুলি না করেই আমি করতে পারি:

[ip] - - [21/Dec/2019:05:49:28 +0000] "GET /screen.css HTTP/1.1" 200 2592 "https://ssb22.user.srcf.net/zhimo/"; "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;  Trident/5.0)" ssb22.user.srcf.net
[ip] - - [21/Dec/2019:05:49:28 +0000] "GET /url(%22print.css%22)%20print HTTP/1.1" 404 7498 "https://ssb22.user.srcf.net/zhimo/"; "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;  Trident/5.0)" ssb22.user.srcf.net
[ip] - - [21/Dec/2019:05:49:28 +0000] "GET /url(%22speech.css%22)%20aural HTTP/1.1" 404 7498 "https://ssb22.user.srcf.net/zhimo/"; "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;  Trident/5.0)" ssb22.user.srcf.net

এরপরে এই ফাইলগুলির জন্য যথাযথ অনুরোধ ছিল , তবে আমরা এই "সার্ভারে প্রথমে শ্যুট এট, পার্স urlপরে" যুক্তি যুক্ত করতে পারি।

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