পারফরম্যান্সের জন্য গুরুত্বপূর্ণ?


192

আমি তাদের ঘৃণা করি, এটি সিএসএসের ক্যাসকেডিং প্রকৃতিটিকে অস্বীকার করে এবং আপনি যদি সেগুলি যত্ন সহ ব্যবহার না করেন তবে আপনি আরও যুক্ত করার লুপে শেষ করবেন !important

তবে আমি জানতে চাই তারা কি পারফর্মেন্সের জন্য খারাপ?


(দ্রুত) জবাবগুলি থেকে সম্পাদনা করুন আমি উপসংহারে পৌঁছাতে পারি যে এটির পারফরম্যান্সে (উল্লেখযোগ্য) প্রভাব পড়বে না। তবে এটি জেনে রাখা ভাল, এমনকি এটি অন্যকে নিরুৎসাহিত করার জন্য অতিরিক্ত যুক্তি হিসাবেও;)।

সম্পাদনা 2
বোল্টক্লক উল্লেখ করেছে যে 2 টি !importantঘোষণা থাকলে চশমা বলে যে এটি সুনির্দিষ্ট একটি বেছে নেবে।


7
কৌতূহলের বাইরে, আপনি সিএসএস স্টাইলশিটের পারফরম্যান্সকে কীভাবে মূল্যায়ন করবেন? আরও ভাল সিএসএস দ্রুত বা কিছু রেন্ডার করে?
xiaoyi

4
@ ইউশি এটি এখনও অন্যান্য !importantনিয়ম সন্ধান করতে হবে ।
জন ডিভোরাক

1
@ জঞ্জাব: আমি কেবল স্পষ্ট করে দিয়েছি যে এটি সুনির্দিষ্ট একটিটিকে বেছে নিয়েছে ... আমি বিভ্রান্তিকর মন্তব্যটি সরিয়েছি।
BoltClock

15
এলোমেলোভাবে চিন্তা: শিরোনামটি আরও মজাদার হবে যদি এটি পড়ে: "গুরুত্বপূর্ণ! গুরুত্বপূর্ণ?"
নিক বোগালিস

59
আমি সর্বদা পড়ি! গুরুত্বপূর্ণ হিসাবে 'গুরুত্বপূর্ণ' নয়
o

উত্তর:


269

সত্যিই পারফরম্যান্সের উপর এটির কোনও প্রভাব ফেলতে হবে না। দেখতে দেখতে এ ফায়ারফক্সের CSS পার্সার/source/layout/style/nsCSSDataBlock.cpp#572 এবং আমি মনে করি যে প্রাসঙ্গিক রুটিন হয়, হ্যান্ডলিং মুছে যাওয়ার সিএসএস নিয়ম।

এটি কেবল "গুরুত্বপূর্ণ" এর সাধারণ চেক বলে মনে হচ্ছে।

  if (aIsImportant) {
    if (!HasImportantBit(aPropID))
      changed = PR_TRUE;
    SetImportantBit(aPropID);
  } else {
    // ...

এছাড়াও, এ মন্তব্য source/layout/style/nsCSSDataBlock.h#219

    /**
     * Transfer the state for |aPropID| (which may be a shorthand)
     * from |aFromBlock| to this block.  The property being transferred
     * is !important if |aIsImportant| is true, and should replace an
     * existing !important property regardless of its own importance
     * if |aOverrideImportant| is true.
     * 
     * ...
     */

  1. ফায়ারফক্স ম্যানুয়ালি লিখিত একটি শীর্ষ ডাউন পার্সার ব্যবহার করে। উভয় ক্ষেত্রেই প্রতিটি সিএসএস ফাইল স্টাইলশিট অবজেক্টে পার্স করা হয়, প্রতিটি বস্তুতে সিএসএস বিধি থাকে।

  2. ফায়ারফক্স তখন স্টাইলের প্রসঙ্গ গাছ তৈরি করে যা শেষ মানগুলি (সঠিক নিয়মে সমস্ত নিয়ম প্রয়োগ করার পরে) ধারণ করে

সিএসএস পার্সার ফায়ারফক্স

থেকে: http://taligarsiel.com/Projects/howbrowserswork1.htm#CSS_parsing

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

তবে রক্ষণাবেক্ষণ সামর্থ্য লাভ করে (অন্যান্য উত্তর হিসাবে উল্লিখিত), এটি তাদের বিরুদ্ধে আপনার যুক্তি হতে পারে।


87
আমি পছন্দ করি যে আপনিই একমাত্র যারা ধরে নেওয়ার পরিবর্তে চেকিংকে বিরক্ত করেছিলেন। দুর্দান্ত কাজ স্যার!
মোক্স

এই অবজেক্ট মডেলটি কোনওভাবেই ডোম নয় ... এটি সিএসএসএম। কারও অবাক হওয়ার ক্ষেত্রে।
বোল্টক্লক

5
এই উত্তর হওয়া উচিত। আমি লজ্জা বোধ করছি যে আমার প্রতিক্রিয়াটি আপনার চেয়ে দ্বিগুণ পয়েন্ট রয়েছে। ওহে প্রিয় ওহ প্রিয়। এই লোকটিকে Someoneণ দেওয়ার জন্য কেউ এই ব্যক্তিকে দেন!
মাইকেল জিওভান্নি পমো

3
এই পোস্টটি পার্সিং সম্পর্কে সমস্ত, এবং আমি আশা করি সেখানে পারফরম্যান্সের প্রভাবটি শুন্য হবে। পার্সারগুলি দ্রুত। প্রশ্নটি হল, রেন্ডারিংয়ের সময়, ব্রাউজার যখন কোনও নির্দিষ্ট উপাদানের সাথে মিলে সিএসএস ঘোষণার অনুসন্ধান করে? সাধারণ পরিস্থিতি যেখানে কোনও !importantনিয়ম নেই বিশেষভাবে অনুকূলিত হয়েছে? আমি এটা মনে করি না, তবে এটি নিশ্চিত করা শক্ত; ফায়ারফক্সে লেআউট / স্টাইল ডিরেক্টরিটি কোডের 80,000 লাইন।
জেসন ওরেডরফ

1
সঠিক উত্সটি পরীক্ষা করার জন্য এবং জ্ঞানের এই উচ্চ স্তরের ভাগ করে নেওয়ার আপনার প্রচেষ্টা কেবল অসাধারণ এবং আশ্চর্যজনক। আপনার মতো লোকেরা স্ট্যাক ওভারফ্লোকে এত জনপ্রিয় এবং বিশ্বাসযোগ্য করে তোলে। এই উত্তর এবং ভাগ করে নেওয়ার জন্য অনেক ধন্যবাদ।
আনমল সারাফ

113

আমি মনে করি না যে !importantব্রাউজারটি কত দ্রুত নিয়মের সাথে মেলে (এটি নির্বাচকটির অংশ নয়, কেবল ঘোষণার অংশ)

তবে ইতিমধ্যে যেমন বলা হয়েছে, এটি আপনার কোডের রক্ষণাবেক্ষণকে হ্রাস করবে এবং ভবিষ্যতে পরিবর্তনের কারণে এটি আকারে অকারণে বৃদ্ধি পেতে পারে। এর ব্যবহার !importantসম্ভবত বিকাশকারীদের কার্যকারিতা হ্রাস করবে।

আপনি যদি সত্যই পিকে হয়ে যাচ্ছিলেন, আপনি এটিও বলতে পারেন যে !importantআপনার সিএসএস ফাইলে 11 টি অতিরিক্ত বাইট যুক্ত করা হয়েছে, এটি আসলে খুব বেশি নয় তবে আমার ধারণা !importantআপনার স্টাইলশীটে যদি এটি মোটামুটি কয়েকটি পেতে পারে তবে এটি যুক্ত হতে পারে।

কেবল আমার চিন্তাভাবনা, দুর্ভাগ্যক্রমে আমি কোনও !importantকার্যকারিতা কীভাবে প্রভাবিত করতে পারি তার কোনও মানদণ্ড খুঁজে পাইনি ।


56
"১১ টি অতিরিক্ত বাইটস"
alচ্ছিক শ্বেতস্পেসের

11
আমি জানি ... আমি পারফরম্যান্সের ক্ষেত্রে অত্যন্ত বাছাই করা লোকেরা কীভাবে পায় তা নিয়ে মজা করছি, সেই বাছাইটিকে পরবর্তী স্তরে নিয়ে গিয়ে।
BoltClock

11
আপনি যদি সত্যই পিক হয়ে থাকেন তবে সঠিকভাবে এটি করার জন্য যুক্ত হওয়া নির্দিষ্টতাটি প্রায় 11 বাইটের বেশি হয়।
ব্লেকগ্রু


10
@ ডিসগ্রান্টলড গোট: একটি স্তরযুক্ত ব্যক্তি বুঝতে পারবেন যে এটি বাইটগুলি নষ্ট হচ্ছে না তবে সেকেন্ড, মিনিট, ঘন্টা, দিন এবং নিউরনগুলি নষ্ট করছে। (আমি এখনও কেন এখানে আছি?)
বোল্টক্লক

59

!importantএর জায়গা আছে আমাকে বিশ্বাস করুন। এটি আমাকে বহুবার সাশ্রয় করেছে এবং আপনার সমস্যার দীর্ঘতর ও আরও মার্জিত পদ্ধতি খুঁজে পাওয়ার আগে এটি একটি স্বল্প-মেয়াদী সমাধান হিসাবে প্রায়শই বেশি কার্যকর।

তবে বেশিরভাগ জিনিসের মতো এটিও আপত্তিজনকভাবে ব্যবহার করা হয়েছে, তবে 'পারফরম্যান্স' নিয়ে চিন্তার দরকার নেই। আমি একটি ছোট 1x1 জিআইএফ-কে বাজেব করব ওয়েবপৃষ্ঠায় একটি গুরুত্বপূর্ণ পারফরম্যান্স হিট! গুরুত্বপূর্ণটির চেয়ে বেশি।

আপনি যদি আপনার পৃষ্ঠাগুলি অনুকূল করতে চান তবে আরও অনেকগুলি গুরুত্বপূর্ণ পথ অবলম্বন করতে হবে;);)


8
এটি একটি মজার শেষ মাত্র ছিল, আসুন সমস্ত হাসি এবং ঠিক ... শিথিল!
মাইকেল জিওভান্নি পুমো

12
কি গাধা? আমাকে জানতে হবে!
অস্কার ব্রোম্যান

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

7
@ দিমিতারস্লাচেভ জান হাসির কথা বলছিলেন না। মাইকেল এর পোস্টের প্রথম সংস্করণ দেখুন (সংশোধন 2)
andytuba

5
@ অ্যান্ডিটিবা টিবিএইচ, এটি দিমিতার্স যুক্তিটিকে অকার্যকর করেছে, তবে তার বক্তব্য নয় :) :)
হতাশার

31

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

আপনার সিএসএসে গুরুত্বপূর্ণ ব্যবহারের অর্থ সাধারণত বিকাশকারী নারকিসিস্টিক এবং স্বার্থপর বা অলস। ডেভেলসদের আসতে শ্রদ্ধা ...

ব্যবহারকারীর বিকাশকারীদের চিন্তাভাবনা !important:

  1. আমার দোলনা সিএসএস কাজ করছে না ... grrrr।
  2. আমার এখন কি করা উচিত ??
  3. এবং !importantহ্যাঁ .... এখন এটি ঠিকঠাক কাজ করছে।

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

আমরা ব্যবহার করতে পারি!important । তবে এটিকে অল্প পরিমাণে এবং কেবল তখনই ব্যবহার করুন যখন অন্য কোনও উপায় নেই।

এখানে চিত্র বর্ণনা লিখুন


কোন পদ্ধতিটি ভাল? উপাদানটি প্রয়োগ করা হয়েছে কিনা তা নিশ্চিত করার জন্য সিএসএসের নির্দিষ্টতা এটি সঠিক শৈলীসমূহ (যার অর্থ বিশাল সিএসএস বিবৃতি হতে পারে; যেমন # নিউজ .আর্টিকাল। খণ্ড-শিরোনাম এইচ 3 এ}}) বা কেবল গুরুত্বপূর্ণ ট্যাগটি যুক্ত করা?
ডেনিস মার্টিনেজ

1
@ ডেনিসমার্টিনিজ এটি আরও ভাল হবে যে শিরোনাম লিঙ্কটির জন্য একটি শ্রেণি তৈরি করা এবং কেবল এটি যুক্ত করা
নুলপোয়েস্টя

না, শুধু অলস। লাঠি পেতে। হিট।
এরিক পুনরায়

1
আমি মনে করি না ক্যাস্পার ওন ছবিগুলি লোড করার ক্ষেত্রে ধীর হয়ে যাওয়ার কারণে সরিয়ে নিয়েছিল ...
বোল্টক্লক

13

পারফরম্যান্স নির্বিশেষে এটি ব্যবহার না করার বিষয়ে আমি আপনার সাথে একমত। এই ভিত্তিতে একা, আমি !importantযেখানেই সম্ভব ব্যবহার করা এড়াব।

তবে কার্য সম্পাদনের প্রশ্নে: না, এটি লক্ষণীয় হওয়া উচিত নয়। এটির কিছুটা প্রভাব থাকতে পারে তবে এটি এত ছোট হওয়া উচিত আপনার এটি কখনই লক্ষ্য করা উচিত নয় এবং এটি নিয়ে আপনার চিন্তা করা উচিত নয়।

যদি তা লক্ষণীয় হিসাবে যথেষ্ট তাৎপর্যপূর্ণ হয় তবে আপনি সম্ভবত আপনার কোডটিতে আরও বড় সমস্যা পেয়েছেন !important। আপনি যে মূল ভাষাগুলি ব্যবহার করছেন তার সাধারণ বাক্য গঠন উপাদানের সাধারণ ব্যবহার কখনই পারফরম্যান্সের সমস্যা হতে পারে না।

বিনিময়ে আমাকে একটি প্রশ্নের উত্তর দিয়ে আপনার প্রশ্নের উত্তর দিন; এমন একটি কোণ যা আপনি সম্ভবত বিবেচনা করেন নি: আপনি কোন ব্রাউজারটি বোঝাচ্ছেন?

প্রতিটি ব্রাউজারের স্পষ্টতই নিজস্ব রেন্ডারিং ইঞ্জিন রয়েছে যার নিজস্ব অপটিমেশেশন রয়েছে। সুতরাং এখন প্রশ্নটি হয়ে ওঠে: প্রতিটি ব্রাউজারে পারফরম্যান্সের কী কী প্রভাব পড়ে? সম্ভবত !importantএকটি ব্রাউজারে খারাপ অভিনয় করে তবে অন্যটিতে খুব ভাল হয়? এবং সম্ভবত পরবর্তী সংস্করণগুলিতে, এটি অন্যভাবে হয়ে যাবে?

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

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


ভাল যুক্তি। আমি জানি এটির জন্য অপ্টিমাইজ করার মতো মূল্য নেই তবে আমি কেবল কৌতূহলী।
janw

7

এটি লক্ষণীয়ভাবে পারফরম্যান্সকে প্রভাবিত করে না। এটি আপনার কোডটির রক্ষণাবেক্ষণযোগ্যতা হ্রাস করে এবং তাই দীর্ঘমেয়াদে কর্মক্ষমতা হ্রাস পেতে পারে।


2
@ জন ডিভোরাক আপনার সমস্যা কি?
এনভেল

@ ব্লটক্লক আমি প্রথম বাক্যটি উল্লেখ করছি।
জন ডিভোরাক

4
@ আমার সমস্যাটি হ'ল আমি একটি মানদণ্ড দেখতে চাই, এপ্রিওরি অনুমানকে সত্য হিসাবে উপস্থাপন করা নয়। আমি জানি না এটি কোনটি?
জন ডিভোরাক

আমি যুক্তি দিয়ে বলব যে এটি আপনার কোড বজায় রাখা শক্ত করে তোলে তা ব্যবহার না করার পক্ষে যথেষ্ট যুক্তি হওয়া উচিত। CLASS নির্বাচকদের পরিবর্তে আইডি ব্যবহারের মতো অন্যান্য ছোটখাটো পারফরম্যান্স বর্ধনের তুলনায় এমনকি আমি কখনই কোনও পারফরম্যান্স ক্ষয়ক্ষতি অনুভব করতে পারি নি।
হেনরিক

7

এর !importantআগে বেশ কয়েকবার ব্যবহার করার পরে, আমি ব্যক্তিগতভাবে এটি ব্যবহার করার সময় কোনও প্রদর্শনযোগ্য পারফরম্যান্সের নজরে পড়েছি।

একটি নোট হিসাবে আপনি ব্যবহার করতে চাইতে পারেন এমন কোনও কারণে এই স্ট্যাক প্রশ্নের উত্তর দেখুন!important

এছাড়াও আমি এমন কিছু উল্লেখ করব যা উল্লেখ করার ক্ষেত্রে প্রত্যেকেই ব্যর্থ হয়েছিল। !importantজাভাস্ক্রিপ্ট ফাংশন লেখার জন্য ইনলাইন সিএসএস সংক্ষিপ্তকরণের একমাত্র উপায় (যা সামান্য কিছুটা হলেও আপনার পারফরম্যান্সে প্রভাব ফেলবে)। সুতরাং এটি আসলে সংরক্ষণ করতে পারেআপনার যদি ইনলাইন সিএসএস ওভাররাইড করার দরকার হয় তবে আপনাকে কিছুটা পারফরম্যান্স সময় করতে ।


6

হুম ...! গুরুত্বপূর্ণ নাকি !! গুরুত্বপূর্ণ?

আসুন এই ধাপে ধাপে ধাপে:

  1. পার্সারকে প্রতিটি সম্পত্তির জন্য গুরুত্বপূর্ণ যাচাই করা উচিত, আপনি এটি ব্যবহার করেন বা না করেন তা নির্বিশেষে - সুতরাং এখানে পারফরম্যান্স পার্থক্য 0
  2. কোনও সম্পত্তি ওভাররাইট করার সময়, পার্সারটিকে পরীক্ষা করতে হবে যে সম্পত্তিটি ওভাররাইট করা হচ্ছে কিনা গুরুত্বপূর্ণ বা না - তাই এখানে পারফরম্যান্সের পার্থক্য আবার 0
  3. সম্পত্তিটি ওভাররাইট করা হচ্ছে যদি গুরুত্বপূর্ণ! তবে এটি সম্পত্তিটি ওভাররাইট করতে হবে - ব্যবহার না করার জন্য -1-এর পারফরম্যান্স হিট! গুরুত্বপূর্ণ!
  4. ওভাররাইট করা হচ্ছে সম্পত্তিটি যদি গুরুত্বপূর্ণ! তবে এটি সম্পত্তি ওভাররাইটিং এড়িয়ে যায় - ব্যবহারের জন্য +1 এর কার্যকারিতা বৃদ্ধি!
  5. নতুন সম্পত্তিটি যদি গুরুত্বপূর্ণ হয় তবে সম্পত্তিটি ওভাররাইট করা নির্বিশেষে পার্সের এটিকে ওভাররাইট করতে হবে! গুরুত্বপূর্ণ বা !! গুরুত্বপূর্ণ - পারফরম্যান্স পার্থক্য 0 আবার

সুতরাং আমার ধারণা! গুরুত্বপূর্ণটির আরও ভাল পারফরম্যান্স রয়েছে কারণ এটি পার্সারকে এমন অনেকগুলি সম্পত্তি এড়িয়ে যেতে সহায়তা করতে পারে যা এটি অন্যথায় এড়াতে পারে না।

এবং @ রাইয়ান নীচে উল্লেখ করেছেন যে, ইনলাইন সিএসএসকে ওভাররাইড করার এবং জাভাস্ক্রিপ্ট ব্যবহার করা এড়ানোর একমাত্র উপায় ... সুতরাং অপ্রয়োজনীয় পারফরম্যান্স হিট করার অন্য উপায় another

হুম ... দেখা যাচ্ছে যে গুরুত্বপূর্ণ!

এবং যদিও,

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

সুতরাং আমি অনুমান করি যে গুরুত্বপূর্ণটি বিকাশকারীদের খুশি করতে পারে এবং আমি মনে করি এটি খুব গুরুত্বপূর্ণ : ডি


1
"সুতরাং আমি অনুমান করি! গুরুত্বপূর্ণটির আরও ভাল পারফরম্যান্স রয়েছে কারণ এটি পার্সারকে এমন অনেক সম্পত্তিকে এড়িয়ে যেতে সহায়তা করতে পারে যা অন্যথায় এড়াতে পারে না।" আপনার একাধিক !importantঘোষণার পরে এই বিবৃতিটি অবিলম্বে বাতিল করা হবে । ব্রাউজারটি তাদের সমস্ত পরীক্ষা করতে হবে। সুতরাং এটি আসলে 1 ম পদক্ষেপে ফিরে এসেছে।
বোল্টক্লক

1
@ বল্টলক্লক পার্সারটিকে সম্পত্তিটি আপনি কতবার ব্যবহার না করে তা পরীক্ষা করে দেখতে হবে ... সুতরাং আপনার যদি 10 টি সম্পত্তি থাকে তবে সেই সম্পত্তিটি গুরুত্বপূর্ণ কিনা তা বিবেচনা ছাড়াই পার্সারকে 10 বার সেই চেক করতে হবে। সুতরাং যদি আপনার 10 টি গুরুত্বপূর্ণ বৈশিষ্ট্য থাকে তবে পার্সারটি 10 ​​বার চেক তৈরি করে, এবং যদি আপনার 10 টি নয়! গুরুত্বপূর্ণ বৈশিষ্ট্য থাকে তবে পার্সারটি এখনও 10 বার চেকটি করে ... তা বোঝায়?
xtrahelp.com

গুরুত্বপূর্ণ কি না পারফরম্যান্স উত্সাহ বা না, সত্যিই ... তবে আমি সমস্ত মন্তব্য এবং আলোচনা পুরোপুরি উপভোগ করছি। আমার জ্ঞান তার পরবর্তী পদক্ষেপগুলি এগিয়ে নিয়ে যাচ্ছে। স্ট্যাকওভারফ্লো কেবল আশ্চর্যজনক: ডি
আনমল সারাফ

4

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

গুরুত্বপূর্ণ সিএসএস নিয়ম মেম

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

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

!importantশৃঙ্খলাবদ্ধতা, যোগ্যতা বা আইডি ছাড়াই আপনি কীভাবে সুনির্দিষ্টতা যুক্ত করতে পারেন (যথা #)

এইচটিএমএল

<div class="eg1-foo">
    <p class="eg1-bar">foobar</p>
</div>
<div id="eg2-foo">
    <p id="eg2-bar">foobar</p>
</div>
<div class="eg3-foo">
    <p class="eg3-foo">foobar</p>
</div>

সিএসএস

.eg1-foo {
    color: blue;
}
.eg1-bar {
    color: red;
}
[id='eg2-foo'] {
    color: blue;
}
[id='eg2-bar'] {
    color: red;
}
.eg3-foo {
    color: blue;
}
.eg3-foo.eg3-foo {
    color: red;
}

JSFiddle

ঠিক আছে, তাহলে কিভাবে কাজ করে?

প্রথম এবং দ্বিতীয় উদাহরণগুলি একই কাজ করে, প্রথমটি আক্ষরিক অর্থে একটি শ্রেণি, এবং দ্বিতীয়টি বৈশিষ্ট্য নির্বাচনকারী। ক্লাস এবং অ্যাট্রিবিউট সিলেক্টারের অভিন্ন বৈশিষ্ট্য রয়েছে। .eg1/2-barএর রঙ থেকে উত্তরাধিকারী না.eg1/2-foo কারণ এর নিজস্ব নিয়ম রয়েছে।

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

আপনি এই কৌশলটি কী বলবেন তা আমি নিশ্চিত নই, তবে আচরণটি ইচ্ছাকৃত এবং হ'ল ডাব্লু 3 সি দ্বারা নথিভুক্ত করা হয়েছে

একই সাধারণ নির্বাচকের পুনরাবৃত্তি হওয়ার অনুমতি দেওয়া হয় এবং নির্দিষ্টতা বাড়ায়।

দুটি নিয়মের মধ্যে স্বতন্ত্রতা অভিন্ন হলে কী ঘটে?

@ বোল্টক্লক যেমন উল্লেখ করেছে , যদি একাধিক! গুরুত্বপূর্ণ ঘোষণাপত্র থাকে তবে অনুমান নির্দেশ দেয় যে সর্বাধিক সুনির্দিষ্ট ব্যক্তিকে অগ্রাধিকার দেওয়া উচিত।

নীচের উদাহরণে, উভয় .fooএবং .barঅভিন্ন বৈশিষ্ট্য রয়েছে, সুতরাং আচরণটি সিএসএসের ক্যাসকেডিং প্রকৃতির হয়ে পড়ে, যার মাধ্যমে সিএসএসে ঘোষিত শেষ বিধিটি প্রাধান্য দাবি করে .foo

এইচটিএমএল

<div>
    <p class="foo bar">foobar</p>
</div>

সিএসএস

.bar {
    color: blue !important;
}
.foo {
    color: red !important;
}

JSFiddle

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