সিএসএস বিস্ফোরণ পরিচালনা করা


682

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

তবে এখন সমস্যাটি আমি লক্ষ্য করেছি যে আমি একটি "সিএসএস বিস্ফোরণ" পাচ্ছি। সিএসএস ফাইলের মধ্যে কীভাবে উপাত্তকে সর্বোত্তমভাবে সংগঠিত এবং বিমূর্ত করা যায় তা সিদ্ধান্ত নেওয়া আমার পক্ষে কঠিন হয়ে উঠছে।

আমি divভারী টেবিল-ভিত্তিক ওয়েবসাইট থেকে সরানো ওয়েবসাইটের মধ্যে প্রচুর ট্যাগ ব্যবহার করছি । সুতরাং আমি অনেকগুলি সিএসএস নির্বাচককে দেখতে যাচ্ছি:

div.title {
  background-color: blue;
  color: white;
  text-align: center;
}

div.footer {
  /* Styles Here */
}

div.body {
  /* Styles Here */
}

/* And many more */

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

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


122
এটি একটি দুর্দান্ত প্রশ্ন তবে অনেক সংস্থার কাছে সত্যিই অবিশ্বাস্য সমস্যা। প্রধানত কারণ সিএসএস রচনা করা হচ্ছে এবং পরিচালিত গ্রাফিক ডিজাইনার যারা পদ সচেতন নাও হতে পারে দ্বারা simplicity, complexity, maintenance, structureএবং refactoring
চেরোভিম

8
@ কেরাউভিম - আপনার মজার বিষয়টি বলা উচিত যে কারণ আমার এই প্রশ্নটি জিজ্ঞাসা করার সম্পূর্ণ কারণটি গ্রাফিক শিল্পী দ্বারা ডিজাইন করা কিছু ভীতিজনক সিএসএস দেখে শুরু হয়েছিল। তাদের জন্য আমাদের আরও ভাল প্রশিক্ষণের দরকার আছে?
জ্যাসকাভ

13
আমার সমাধান (একটি আদর্শ বিশ্বে) আপনার দলে নিবেদিত লোকদের এইচডিএমএল + সিএসএসে কাটা এবং পরে রক্ষণাবেক্ষণ করা। এই লোকেরা প্রোগ্রামার এবং ডিজাইনারদের কাছাকাছি হওয়া উচিত।
চেরোভিম

@ চেরউভিমকে সম্মতি জানাতে হবে - এজেন্সিগুলি যেভাবে চলেছে তা বেশিরভাগ ক্ষেত্রে, বিশেষত সিএসএস আরও জটিল হওয়ার কারণে।
জন পার্কার

27
@ জ্যাসকাভ, গ্রাফিক শিল্পীদের সিএসএস স্পর্শ করা উচিত নয়। ওয়েব ডিজাইনার এবং ফ্রন্ট-এন্ড ওয়েব বিকাশকারীদের সিএসএস সহ ডিল করা উচিত। গ্রাফিক ডিজাইনারের কাজ গ্রাফিক্স তৈরি করা।
zzzzBov

উত্তর:


566

এটি একটি খুব ভাল প্রশ্ন। আমি যেখানেই দেখি, সিএসএস ফাইলগুলি কিছুক্ষণ পরে নিয়ন্ত্রণের বাইরে চলে যাওয়ার ঝোঁক — বিশেষত, তবে কেবল দলে কাজ করার সময় নয়।

নীচে আমি নিজে যে নিয়মগুলি মেনে চলার চেষ্টা করছি সেগুলি নীচে রইল (আমি সর্বদা এটি পরিচালনা করি না))

  • রিফ্যাক্টর প্রথম দিকে, রিফেক্টর প্রায়শই। সিএসএস ফাইলগুলি প্রায়শই পরিষ্কার করুন, একই শ্রেণীর একাধিক সংজ্ঞা একসাথে ফিউজ করুন। অপ্রচলিত সংজ্ঞা সাথে সাথে মুছে ফেলুন ।

  • বাগ ফিক্স করার সময় সিএসএস যুক্ত করার সময়, পরিবর্তনটি কী করবে সে সম্পর্কে একটি মন্তব্য দিন ("এটি নিশ্চিত করা উচিত যে বাক্সটি IE <7 এ সারিবদ্ধ হয়েছে)"

  • চলুন ছাঁটাই'র যেমন সংজ্ঞা একই জিনিস .classnameএবং .classname:hover

  • /** Head **/একটি পরিষ্কার কাঠামো তৈরি করতে মন্তব্যগুলি ব্যবহার করুন ।

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

  • বুদ্ধিমান ক্লাস তৈরি করুন। এটিতে কয়েকটি নোটের জন্য নীচে দেখুন।

  • শব্দার্থক ব্যবহার করুন, ডিআইভি স্যুপ এড়ান - <ul>উদাহরণস্বরূপ মেনুগুলির জন্য এস ব্যবহার করুন।

  • যতটা সম্ভব নিচু স্তরে সমস্ত কিছু সংজ্ঞায়িত করুন (উদাহরণস্বরূপ একটি ডিফল্ট ফন্ট পরিবার, রঙ এবং আকার body) এবং inheritযেখানে সম্ভব ব্যবহার করুন

  • আপনার যদি খুব জটিল সিএসএস থাকে তবে একটি সিএসএস প্রাক-সংকলক সাহায্য করে। আমি শিগগিরই একই কারণে xCSS দেখার জন্য পরিকল্পনা করছি । আশেপাশে আরও বেশ কয়েকজন রয়েছেন।

  • যদি কোনও দলে কাজ করে থাকেন তবে সিএসএস ফাইলের মান এবং মানগুলির প্রয়োজনীয়তাও হাইলাইট করুন। সকলেই তাদের প্রোগ্রামিং ভাষার (ভাষা) ভাষাতে কোডিং মানের বিষয়ে বড়, তবে সিএসএসের জন্যও এটি প্রয়োজনীয় awareness

  • যদি কোনও দলে কাজ করে থাকেন তবে সংস্করণ নিয়ন্ত্রণ ব্যবহার করার বিষয়টি বিবেচনা করবেন না । এটি এমন জিনিসগুলিকে ট্র্যাক করা সহজ করে তোলে এবং সংঘাতগুলি সম্পাদন করে যা সমাধান করা খুব সহজ। আপনি এইচটিএমএল এবং সিএসএসে "ন্যায়সঙ্গত" হলেও, এটি সত্যই মূল্যবান।

  • সাথে কাজ করবেন না !important। কেবল তাই নয় যে IE = <7 এটির সাথে ডিল করতে পারে না। একটি জটিল কাঠামোতে, এর ব্যবহার !importantপ্রায়শই এমন আচরণ পরিবর্তন করতে প্ররোচিত করে যার উত্সটি পাওয়া যায় না, তবে এটি দীর্ঘমেয়াদী রক্ষণাবেক্ষণের জন্য বিষ

বুদ্ধিমান ক্লাস বিল্ডিং

এইভাবে আমি বোধগম্য ক্লাস তৈরি করতে পছন্দ করি।

আমি প্রথমে বিশ্বব্যাপী সেটিংস প্রয়োগ করি:

body { font-family: .... font-size ... color ... }
a { text-decoration: none; }

তারপরে, আমি পৃষ্ঠার বিন্যাসের প্রধান বিভাগগুলি সনাক্ত করি - যেমন শীর্ষ অঞ্চল, মেনু, সামগ্রী এবং পাদচরণ। আমি যদি ভাল মার্কআপ লিখি তবে এই অঞ্চলগুলি HTML কাঠামোর মতো হবে।

তারপরে, আমি সিএসএস ক্লাসগুলি তৈরি করা শুরু করি, যতক্ষণ সম্ভব বোধগম্য তত বেশি পূর্বসূত্র নির্দিষ্ট করে এবং যতটা সম্ভব নিবিড়ভাবে সম্পর্কিত ক্লাসগুলিকে গ্রুপিং করি।

div.content ul.table_of_contents 
div.content ul.table_of_contents li 
div.content ul.table_of_contents li h1
div.content ul.table_of_contents li h2
div.content ul.table_of_contents li span.pagenumber

গাছ হিসাবে পুরো সিএসএস কাঠামোর কথা ভাবেনআপনার মূল থেকে আরও দূরে ক্রমবর্ধমান নির্দিষ্ট সংজ্ঞা সহ । আপনি ক্লাসের সংখ্যা যথাসম্ভব কম রাখতে চান এবং আপনি নিজেকে যথাসম্ভব কমই পুনরাবৃত্তি করতে চান।

উদাহরণস্বরূপ, ধরা যাক আপনার কাছে নেভিগেশনাল মেনুগুলির তিনটি স্তর রয়েছে। এই তিনটি মেনু দেখতে আলাদা, তবে তারা কিছু বৈশিষ্ট্যও ভাগ করে দেয়। উদাহরণস্বরূপ, এগুলি সমস্ত <ul>, তাদের সবার একই ফন্টের আকার এবং আইটেমগুলি একে অপরের পাশে থাকে (কোনওটির ডিফল্ট রেন্ডারিংয়ের বিপরীতে ul)। এছাড়াও, মেনুগুলির কোনওটিরই বুলেট পয়েন্ট নেই ( list-style-type)।

প্রথমে নামের একটি শ্রেণিতে সাধারণ বৈশিষ্ট্যগুলি সংজ্ঞায়িত করুন menu:

div.navi ul.menu { display: ...; list-style-type: none; list-style-image: none; }
div.navi ul.menu li { float: left }

তারপরে, তিনটি মেনুর প্রত্যেকের নির্দিষ্ট বৈশিষ্ট্যগুলি সংজ্ঞায়িত করুন। স্তর 1 40 পিক্সেল লম্বা; স্তর 2 এবং 3, 20 পিক্সেল।

দ্রষ্টব্য: আপনি এটির জন্য একাধিক ক্লাসও ব্যবহার করতে পারেন তবে ইন্টারনেট এক্সপ্লোরার 6 এর একাধিক শ্রেণিতে সমস্যা রয়েছে , সুতরাং এই উদাহরণটি idগুলি ব্যবহার করে ।

div.navi ul.menu#level1 { height: 40px; }
div.navi ul.menu#level2 { height: 20px; }
div.navi ul.menu#level3 { height: 16px; }

মেনুটির মার্কআপটি এর মতো দেখতে পাবেন:

<ul id="level1" class="menu"><li> ...... </li></ul>
<ul id="level2" class="menu"><li> ...... </li></ul>
<ul id="level3" class="menu"><li> ...... </li></ul>

আপনি যদি এই তিনটি মেনুর মতো পৃষ্ঠাতে শব্দার্থত অনুরূপ উপাদানগুলি রেখে থাকেন - তবে প্রথমে সাধারণতাগুলি খুঁজে বের করার চেষ্টা করুন এবং এগুলি একটি শ্রেণিতে রাখবেন; তারপরে, নির্দিষ্ট বৈশিষ্ট্যগুলি নিয়ে কাজ করুন এবং সেগুলি ক্লাসগুলিতে প্রয়োগ করুন, বা, যদি আপনাকে ইন্টারনেট এক্সপ্লোরার 6, আইডি সমর্থন করতে হয়।

বিবিধ এইচটিএমএল টিপস

আপনি যদি এই HTML শব্দগুলি আউটপুটটিতে এই শব্দার্থক যুক্ত করেন তবে ডিজাইনাররা পরে খাঁটি সিএসএস ব্যবহার করে ওয়েব সাইট এবং / বা অ্যাপ্লিকেশনগুলির চেহারা কাস্টমাইজ করতে পারেন যা একটি দুর্দান্ত সুবিধা এবং সময় সাশ্রয়কারী।

  • যদি সম্ভব হয় তবে প্রতিটি পৃষ্ঠার শরীরকে একটি অনন্য শ্রেণি দিন: <body class='contactpage'>এটি স্টাইল শীটে পৃষ্ঠা-নির্দিষ্ট টুইটগুলি যুক্ত করা খুব সহজ করে তোলে:

    body.contactpage div.container ul.mainmenu li { color: green }
  • মেনুগুলি স্বয়ংক্রিয়ভাবে তৈরি করার সময়, পরে বিস্তৃত স্টাইলিংয়ের অনুমতি দেওয়ার জন্য যথাসম্ভব সিএসএস প্রসঙ্গ যুক্ত করুন। উদাহরণ স্বরূপ:

    <ul class="mainmenu">
     <li class="item_first item_active item_1"> First item </li> 
     <li class="item_2"> Second item </li> 
     <li class="item_3"> Third item </li> 
     <li class="item_last item_4"> Fourth item </li> 
    </ul>

    এইভাবে, প্রতিটি মেনু আইটেমকে তার শব্দার্থক প্রসঙ্গে স্টাইলিংয়ের জন্য অ্যাক্সেস করা যেতে পারে: এটি তালিকার প্রথম বা শেষ আইটেম হোক; এটি বর্তমানে সক্রিয় আইটেম কিনা; এবং সংখ্যা দ্বারা।

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


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

4
@ পেক্কা আপনার www.oocss.org দেখতে হবে যা আপনি এখানে উল্লেখ করেছেন তার বিপরীতে চলে তবে এটি সিএসএস ব্লাট পরিচালনা করার সেরা উপায়। আমার উত্তরটি নীচেও দেখুন: stackoverflow.com/questions/2253110/how-to-manage-css-explosion/…
জামান

2
@ সাম ধন্যবাদ! আমি এটি বেশ ভালই পছন্দ করি, যদিও আমি মাঝে মাঝে এই নির্দেশিকাগুলি আমার নিজের মতো করে অনুসরণ করা খুব কঠিন খুঁজে পাই। সিএসএস স্টাইল শিটগুলি সময়ের সাথে সাথে স্ক্রু করা খুব সহজ - এখানে একটি রঙ পরিবর্তন, font-weight: boldসেখানে একটি .... শৃঙ্খলা একমাত্র medicine
ষধ

1
সিএসএস বিস্ফোরণের গবেষণায় নতুন কেউ হিসাবে কথা বলতে গিয়ে, "অনন্য শ্রেণি" শব্দগুচ্ছটি বিভ্রান্তিকর। আমি অনুভব করছি যে এটি একটি নয় idতবে এটি নিশ্চিতরূপে শোনাচ্ছে। ধারণাটি স্পষ্ট করা যেতে পারে?
এরি সোনার

2
@ এরি আপনি ঠিক বলেছেন যে প্রযুক্তিগতভাবে idএটিও হতে পারে ।
পেক্কা

89

এখানে মাত্র 4 টি উদাহরণ রয়েছে:

সব মিলিয়ে আমার উত্তরটিতে নাটালি ডাউনের পিডিএফ সিএসএস সিস্টেমগুলি ডাউনলোড এবং পড়ার পরামর্শ অন্তর্ভুক্ত করা হয়েছে । (পিডিএফটিতে টন নোট স্লাইডগুলিতে নেই, তাই পিডিএফটি পড়ুন!)। প্রতিষ্ঠানের জন্য তার পরামর্শগুলি নোট করুন।

সম্পাদনা (2014/02/05) চার বছর পরে, আমি বলতে চাই:

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

সিএসএস প্রি-প্রসেসরগুলি সমাধানের পরিবর্তে সমস্যার কারণ। সত্যিকারের ক্যাসকেডিং ধারণাটি আয়ত্ত করুন এবং আপনি ফোলা কমাবেন।
ড্যানিয়েল সোকলভস্কি

@ ড্যানিয়েলসোকলভস্কি যে কোনও অনুপযুক্তভাবে ব্যবহৃত সরঞ্জাম সমাধানের চেয়ে সমস্যা হতে পারে। তবে ক্যাসকেডে দক্ষতার বিষয়ে 100% সম্মত।
অ্যান্ডি ফোর্ড 15

73

সিএসএসে শিরোনাম লিখবেন না

কেবল বিভাগগুলিকে ফাইলগুলিতে বিভক্ত করুন। যে কোনও সিএসএসের মন্তব্য, মন্তব্য হওয়া উচিত।

reset.css
base.css
somepage.css
someotherpage.css
some_abstract_component.css

এগুলির সাথে একত্রিত করতে একটি স্ক্রিপ্ট ব্যবহার করুন; যদি প্রয়োজন হয় তাহলে. আপনার পাশাপাশি একটি দুর্দান্ত ডিরেক্টরি কাঠামো থাকতে পারে এবং আপনার স্ক্রিপ্টটি পুনরাবৃত্তভাবে .cssফাইলগুলির জন্য স্ক্যান করতে পারেন।

যদি আপনাকে অবশ্যই শিরোনাম লিখতে হয় তবে ফাইলের শুরুতে একটি টিওসি রাখুন

TOC- এ শিরোনামগুলি আপনার পরে লেখার শিরোনামগুলির সাথে পুরোপুরি সমান হওয়া উচিত। শিরোনামগুলি অনুসন্ধান করার জন্য এটি একটি ব্যথা। সমস্যাটি যুক্ত করার জন্য, কেউ আপনার প্রথম শিরোনামের পরে অন্য একটি শিরোনাম আছে তা ঠিক কীভাবে অনুমান করা যায়? পুনশ্চ. টিওসিগুলি লেখার সময় প্রতিটি লাইনের শুরুতে ডক-জাতীয় * (তারা) যুক্ত করবেন না, এটি পাঠ্যটি নির্বাচন করা আরও বিরক্তিকর করে তোলে।

/* Table of Contents
   - - - - - - - - -
   Header stuff
   Body Stuff
   Some other junk
   - - - - - - - - -
 */
...
/* Header Stuff 
 */
...
/* Body Stuff 
 */

নিয়মের সাথে বা এর মধ্যে মন্তব্যগুলি লিখুন, ব্লকের বাইরে নয়

প্রথমে, আপনি যখন স্ক্রিপ্টটি সম্পাদনা করবেন তখন সেখানে 50/50 এর সুযোগ থাকে আপনি নিয়ম ব্লকের বাইরে যা আছে তার দিকে মনোযোগ দিন (বিশেষত এটি যদি পাঠ্যের একটি বড় গ্লোব;))। দ্বিতীয়ত (প্রায়) কোনও ক্ষেত্রেই নেই যেখানে আপনার বাইরে "মন্তব্য" লাগবে। যদি এটি বাইরে থাকে তবে এটি শিরোনামের 99% সময় হয়, সুতরাং এটি এটিকেই রাখুন।

পৃষ্ঠাটি উপাদানগুলিতে বিভক্ত করুন

উপাদানগুলির বেশিরভাগ সময় position:relative, না paddingএবং না থাকা উচিত margin। এই সরলীকৃত% অনেক, সেইসাথে অনেক সহজ জন্য অনুমতি নিয়ম absolute:position', উপাদানের ing থেকে পরম স্থান ধারক আছে কিনা কম্পিউটিং যখন পরম স্থান উপাদান ধারক ব্যবহার করবে top, right, bottom, leftবৈশিষ্ট্য।

এইচটিএমএল 5 নথিতে বেশিরভাগ ডিআইভি সাধারণত একটি উপাদান হয়।

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

আবার কিউএ পৃষ্ঠার উদাহরণ সহ যাচ্ছি:

#navigation
#question
#answers
#answers .answer
etc.

পৃষ্ঠাটি উপাদানগুলিতে বিভক্ত করে, আপনি আপনার কাজকে পরিচালনাযোগ্য ইউনিটে ভাগ করে নিন।

একই লাইনে একটি ক্রমবর্ধমান প্রভাব সহ নিয়ম রাখুন।

উদাহরণস্বরূপ border, marginএবং padding(তবে নয় outline) সমস্ত উপাদান আপনি স্টাইল করছেন সেটির মাত্রা এবং আকারকে যুক্ত করে।

position: absolute; top: 10px; right: 10px;

যদি সেগুলি কেবল একটি লাইনে পাঠযোগ্য না হয় তবে কমপক্ষে এগুলিকে নিকটেই রাখুন:

padding: 10px; margin: 20px;
border: 1px solid black;

সম্ভব হলে শর্টহ্যান্ড ব্যবহার করুন:

/* the following... */
padding-left: 10px;
padding-right: 10px;
/* can simply be written as */
padding: 0 10px;

কোনও নির্বাচকের পুনরাবৃত্তি করবেন না

যদি আপনার একই নির্বাচকটির আরও উদাহরণ থাকে তবে একই নিয়মের একাধিক দৃষ্টান্ত আপনার অনিবার্য হয়ে ওঠার একটি ভাল সুযোগ রয়েছে। উদাহরণ স্বরূপ:

#some .selector {
    margin: 0;
    font-size: 11px;
}
...
#some .selector {
    border: 1px solid #000;
    margin: 0;
}

আপনি যখন আইডি / ক্লাস ব্যবহার করতে পারেন তখন নির্বাচক হিসাবে ট্যাগ ব্যবহার করা থেকে বিরত থাকুন

প্রথমে ডিআইভি এবং স্প্যান ট্যাগগুলি ব্যতিক্রম: আপনার কখনও সেগুলি ব্যবহার করা উচিত নয়! ;) কেবল কোনও শ্রেণি / আইডি সংযুক্ত করতে তাদের ব্যবহার করুন।

এই...

div#answers div.answer table.statistics {
    border-collapse: collapsed;
    color: pink;
    border: 1px solid #000;
}
div#answers div.answer table.statistics thead {
    outline: 3px solid #000;
}

এইভাবে লেখা উচিত:

#answers .answer .statistics {
    border-collapse: collapsed;
    color: pink;
    border: 1px solid #000;
}
#answers .answer .statistics thead {
    outline: 3px solid #000;
}

কারণ সেখানে অতিরিক্ত জটলা ডিআইভিগুলি নির্বাচককে কিছুই যোগ করে না। তারা একটি অপ্রয়োজনীয় ট্যাগ-বিধি বাধ্য করে। আপনি যদি পরিবর্তন করতে চান, উদাহরণস্বরূপ, .answerএকটি divথেকে articleআপনার স্টাইলটি ভেঙে যায়।

বা আপনি যদি আরও স্পষ্টতা পছন্দ করেন:

#answers .answer .statistics {
    color: pink;
    border: 1px solid #000;
}
#answers .answer table.statistics {
    border-collapse: collapsed;
}
#answers .answer .statistics thead {
    outline: 3px solid #000;
}

border-collapseসম্পত্তি হওয়ার কারণটি হ'ল একটি বিশেষ সম্পত্তি যা কেবলমাত্র ক প্রয়োগ করা হলে তা বোধগম্য হয় table। যদি .statisticsএকটি নয় tableএটি প্রয়োগ করা উচিত নয়।

জেনেরিক নিয়ম খারাপ!

  • জেনেরিক / ম্যাজিক বিধিগুলি লিখতে পারলে এড়াতে পারেন
  • এটি যদি কোনও সিএসএস-রিসেট / আনসেট না করে থাকে তবে আপনার সমস্ত জেনেরিক যাদুটি কমপক্ষে একটি মূল উপাদানকে প্রয়োগ করা উচিত

তারা আপনার সময় বাঁচায় না, তারা আপনার মাথা বিস্ফোরিত করে; পাশাপাশি রক্ষণাবেক্ষণ একটি দুঃস্বপ্ন করতে। আপনি যখন নিয়মটি লিখছেন, আপনি হয়ত জানেন যে তারা কোথায় প্রয়োগ করেছেন, তবে এর কোনও গ্যারান্টি নেই যে পরে আপনার বিধি আপনার সাথে বিড়বিড় হবে না।

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

এই জাতীয় জিনিস ...

.badges {
    width: 100%;
    white-space: nowrap;
}

address {
    padding: 5px 10px;
    border: 1px solid #ccc;
}

... প্রোগ্রামিং ভাষার গ্লোবাল ভেরিয়েবল ব্যবহার করার মতোই সমস্যা রয়েছে। আপনার তাদের সুযোগ দেওয়া দরকার!

#question .userinfo .badges {
    width: 100%;
    white-space: nowrap;
}

#answers .answer .userinfo address {
    padding: 5px 10px;
    border: 1px solid #ccc;
}

মূলত:

components                   target
---------------------------- --------
#answers .answer   .userinfo address
-------- --------- --------- --------
domain   component component selector 

আমি আইডি ব্যবহার করতে পছন্দ করি যখনই আমি জানি কোন উপাদান কোনও পৃষ্ঠায় একটি সিঙ্গলটন; আপনার চাহিদা বিভিন্ন হতে পারে।

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

ধরুন আপনার একটি paginationউপাদান রয়েছে। আপনি এটি আপনার সাইট জুড়ে অনেক জায়গায় ব্যবহার করেন। এটি কখন আপনি একটি জেনেরিক নিয়ম লিখবেন তার একটি ভাল উদাহরণ হবে। আপনাকে display:blockপৃথক পৃষ্ঠা নম্বর লিঙ্কগুলি বলুন এবং তাদের একটি গা a় ধূসর ব্যাকগ্রাউন্ড দিন give এগুলি দৃশ্যমান হওয়ার জন্য আপনার এ জাতীয় নিয়ম থাকতে হবে:

.pagination .pagelist a {
    color: #fff;
}

এখন বলুন যে আপনি উত্তরগুলির তালিকার জন্য আপনার পৃষ্ঠাগুলি ব্যবহার করেন, আপনি এরকম কিছু সম্মুখীন হতে পারেন

#answers .header a {
    color: #000;
}
...
.pagination .pagelist a {
    color: #fff;
}

এটি আপনার সাদা লিঙ্কগুলিকে কালো করে তুলবে, যা আপনি চান না।

এটির সমাধানের ভুল উপায় হ'ল:

.pagination .pagelist a {
    color: #fff !important;
}

এটি ঠিক করার সঠিক উপায় হ'ল:

#answers .header .pagination .pagelist a {
    color: #fff;
}

জটিল "যুক্তি" মন্তব্য কাজ করে না :)

আপনি যদি এই জাতীয় কিছু লিখে থাকেন: "এই মানটি ব্লাহ-ব্লাহের উপর নির্ভর করে ব্লাহ-ব্লাহের উচ্চতার সাথে মিলিত হয়" তবে এটি অনিবার্য যে আপনি একটি ভুল করবেন এবং এটি সমস্ত কার্ডের ঘরের মতো নেমে যাবে।

আপনার মন্তব্যগুলি সহজ রাখুন; যদি আপনি "লজিক্যাল অপারেশন" মত ঐ সিএসএস টেমপ্লেট একটা ভাষার বিবেচনা করার প্রয়োজন Sass বা কম

আমি কীভাবে রঙ প্যালেট লিখব?

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

যেমন।

#page #header .description,
#page #categories .description,
#page #answers .answer .body
{
    color: #222; background: #fff; 
    border-radius: 10px;
    padding: 1em;
}

ধারণাটি সহজ, আপনার রঙ প্যালেটটি বেস স্টাইলের চেয়ে আলাদা একটি স্টাইলশিট, যা আপনি ক্যাসকেড করেছেন

কম নাম, কম স্মৃতি দরকার, কোডটি পড়া সহজ করে তোলে

কম নাম ব্যবহার করা ভাল। আদর্শভাবে খুব সাধারণ (এবং সংক্ষিপ্ত!) শব্দ ব্যবহার করুন: পাঠ্য, বডি, শিরোনাম।

সরল শব্দের সংমিশ্রণটি আমি আরও সহজ "লম্বা" উপযুক্ত "শব্দের একটি স্যুপ থাকা সহজভাবে বুঝতে পারি: পোস্টবডি, পোস্টহেড, ইউজারিনফো ইত্যাদি to

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

নিজের পরে পরিষ্কার করুন

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

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

ফায়ারফক্স এক্সটেনশান ডাস্ট-মি সিলেক্টরের মতো একটি সরঞ্জাম আপনি ব্যবহার করতে পারেন (টিপ: এটি আপনার সাইটম্যাপ.এক্সএমএল এ নির্দেশ করুন) আপনার সিএসএস নিউক এবং কার্নিজগুলিতে লুকানো কিছু জাঙ্ক খুঁজে পেতে সহায়তা করতে।

একটি unsorted.cssফাইল রাখুন

বলুন আপনি একটি QA সাইট স্টাইল করছেন, এবং আপনার কাছে ইতিমধ্যে "উত্তর পৃষ্ঠা" এর জন্য একটি স্টাইলশিট রয়েছে, যা আমরা কল করব answers.css। আপনার যদি এখন প্রচুর নতুন সিএসএস যুক্ত করার দরকার হয় তবে এটি unsorted.cssস্টাইলশীটে যুক্ত করুন তারপরে আপনার answers.cssস্টাইলশিটে রিফ্যাক্টর ।

এর বেশ কয়েকটি কারণ:

  • আপনার কাজ শেষ হওয়ার পরে এটি রিফ্যাক্টর করা দ্রুত, তারপরে এটি নিয়মগুলি অনুসন্ধান করা (এটি সম্ভবত বিদ্যমান নেই) এবং কোড ইনজেকশন করা
  • আপনি এমন স্টাফ লিখবেন যা আপনি সরিয়ে ফেলবেন, ইনজেকশন কোড কেবল সেই কোডটি মুছে ফেলা আরও শক্ত করে তোলে
  • মূল ফাইলটিতে সংযোজন সহজেই নিয়ম / নির্বাচক সদৃশ দিকে পরিচালিত করে

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

@ মিগুয়েল কেন রেন্ডারিং ইঞ্জিনটি ডিওএম আছে কিনা তা দেখার জন্য ডম-এর সমস্ত উপাদানকে হাঁটতে হবে না? যদি কিছু বিশেষ অপ্টিমাইজেশন থাকে তবে কেন এটি ক্লাস / আইডি প্রয়োগ হয় না? তোমার কি কোন উত্স আছে? সিএসএসের সাথে আমি একমাত্র দৃশ্যমান পারফরম্যান্স কিলারটি লক্ষ্য করেছি যে ফ্লোট স্প্যাম ছিল - এটি পৃষ্ঠাটি স্ক্রোল করার সময় রেন্ডারিং ইঞ্জিনকে কিছু ব্রাউজারে মারাত্মকভাবে পিছিয়ে যেতে পারে (সম্ভবত খুব বেশি গণনা)।
srcspider

3
আমি ট্যাগনামগুলি (ইয়ে!) না টার্গেট না করার জন্য এই ভোটাভুটি করতে যাচ্ছিলাম তবে জেনেরিক (বু!) না হওয়ার বিষয়ে কিছুটা ছিল
mwilcox

1
@ মিগুয়েল, এটি সেভাবে কাজ করে না। ব্রাউজারগুলি একটি সিএসএস স্ট্রিং পিছন দিকে পড়ে, তাই এটি লাগে: "ডিভ। মাইক্র্লাস" এবং সমস্ত ".মাই ক্লাস" ক্লাসগুলি সন্ধান করে এবং তারপরে এটি কোনও ডিভের পূর্বপুরুষ কিনা তা পরীক্ষা করে দেখুন।
mwilcox

5
জেনেরিক নিয়মকে গ্লোবাল ভেরিয়েবলের সাথে তুলনা করা সিএসএস সম্পর্কে আমি শুনেছি সবচেয়ে বড় ভুল ধারণা।
gblazex

55

11
এই মিলিয়ন বার। সাস ব্যবহার করা আমাকে আগের চেয়ে আরও সুসংহত ও শক্তিশালী সিএসএস র‌্যাংলার করেছে। এটা আমার একাধিক ফাইল, নীড় শৈলী, ব্যবহার ভেরিয়েবল, ইত্যাদি, ইত্যাদি, ইত্যাদি জুড়ে শৈলী সংগঠিত করতে দেয়
অ্যালান এইচ

2
sass, কম্পাস এবং কম সমস্ত দিন শেষে সাধারণ সিএসএস উত্পাদন করে যা এখনও কুৎসিত এবং বিস্ফোরিত হতে পারে। এটি সিএসএস ফোটা এবং নিজেই সমাধান করার সমাধান নয়।
জামান

8
@ মoinন_জামান আমার বিনীত মতে স্যার, আপনার বক্তব্য খাঁটি হাম্বু। আপনি sass / কম্পাস / কম লিখেন এবং তাদের কোডগুলিতে আপনার কোডটি সংগঠিত করুন। আউটপুট সিএসএস কেমন লাগে সে সম্পর্কে আপনার চিন্তা নেই। এছাড়াও, কমপক্ষে কম (কম অ্যাপের মাধ্যমে) আউটপুটটি ছোট করতে পারে যা দুর্দান্ত।
bzx

1
@bzx আপনি আমার বক্তব্য প্রমাণ করছেন :) একটি ব্রাউজার সাস / কম্পাস / কম বুঝতে পারে না। এই সমস্তগুলি ক্লায়েন্টাইড বা আপনার বিল্ডের অংশ হিসাবে পুরানো সিএসএস প্লেইন করে সংকলন করা দরকার। তারা সিএসএস হিসাবে শেষ পর্যন্ত কী উত্পাদন করে তা জেনেও এ জাতীয় সরঞ্জাম ব্যবহার করা তাদের অজান্তে তাদের অপব্যবহার করা এবং সর্বোত্তম সিএসএস ফাইলগুলির চেয়ে বড় আকারে শেষ হওয়া সহজ করে তোলে।
মoinন জামান

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

31

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

এমনকি একটি OOCSS ফ্রেমওয়ার্ক আছে খুব ভাল।

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

এখানে মূল বিষয় হ'ল 'অবজেক্টস' সনাক্ত করা বা আপনার সাইটে ব্লক নিদর্শনগুলি তৈরি করা এবং তাদের সাথে স্থপতি।

ফেসবুক ওওএসএসএসের নির্মাতা নিকোল সুলিভানকে তাদের সামনের শেষের কোডটিতে (এইচটিএমএল / সিএসএস) প্রচুর সঞ্চয় করতে নিয়োগ করেছে । হ্যাঁ আপনি আসলে সঞ্চয় না শুধুমাত্র আপনার CSS এ, কিন্তু খুব আপনার HTML, যা এটি আওয়াজে, আপনার জন্য খুবই সম্ভব পেতে পারেন যেমন আপনি একটি রূপান্তর উল্লেখ tableঅনেকটা মধ্যে ভিত্তিক বিন্যাস div'র

আরেকটি দুর্দান্ত পদ্ধতির বিষয়টি ওওসিএসএস-এর মতো কিছু ক্ষেত্রে সমান, হ'ল আপনার সিএসএসকে শুরু থেকেই স্কেলেবল এবং মডিউলার হওয়ার জন্য পরিকল্পনা এবং লিখুন plan জোনাথন স্নুক এসএমএএসএসএস - একটি স্কেলযোগ্য এবং মডিউলার আর্কিটেকচার সিএসএস-এর বিষয়ে একটি উজ্জ্বল লিখন এবং বুক / ইবুক করেছেন

আমি আপনাকে কয়েকটি লিঙ্কগুলি জাগিয়ে তুলি:
বিশাল সিএসএসের 5 টি ভুল - (ভিডিও)
বিশাল CSS এর 5 টি ভুল - (স্লাইডস)
সিএসএস ব্লাট - (স্লাইড)


16

ক্যাসকেড এবং ওজন এবং তারা কীভাবে কাজ করে তাও আপনার বোঝা উচিত।

আমি লক্ষ্য করেছি আপনি কেবল শ্রেণি শনাক্তকারী (div.title) ব্যবহার করছেন। আপনি কি জানতেন যে আপনি আইডিও ব্যবহার করতে পারেন এবং কোনও আইডি ক্লাসের চেয়ে বেশি ওজন বহন করে?

উদাহরণ স্বরূপ,

#page1 div.title, #page1 ul, #page1 span {
  // rules
}

এই সমস্ত উপাদানগুলিকে একটি ফন্ট-আকার ভাগ করে বলবে, বা একটি রঙ, বা আপনার নিয়মগুলি যাই হোক না কেন। এমনকি আপনি # পৃষ্ঠা 1 এর বংশধর সমস্ত ডিআইভি নির্দিষ্ট আইনগুলি পেতে পারেন।

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

অঙ্কগুলির মতো এটি ভাবুন। এগুলির কলামের একটি 9 টি দশকের কলামে এখনও একটির চেয়ে কম। আইডি স্পেসিফায়ার, একটি ক্লাস স্পেসিফায়ার এবং দুটি উপাদান স্পেসিফায়ার সহ একটি নির্বাচকের কোনও আইডি, 500 ক্লাস স্পেসিফায়ার এবং 1,000 উপাদান স্পেসিফায়ারবিহীন নির্বাচকের চেয়ে বেশি ওজন থাকবে। এটি অবশ্যই একটি অযৌক্তিক উদাহরণ, তবে আপনি ধারণাটি পেয়ে যান। মুল বক্তব্যটি হ'ল এই ধারণাটি প্রয়োগ করা আপনাকে প্রচুর সিএসএস পরিষ্কার করতে সহায়তা করে।

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


আইডি ব্যবহার করা যেমন আপনার ভিজ্যুয়াল বেসিক কোডে গ্লোবাল ভেরিয়েবল ব্যবহার করা খারাপ।
alpav

2
@ পালভ: দুঃখিত, এটি ভুল। আইডি হ'ল একটি শ্রেণীর উপাদান যেমন কোনও পৃষ্ঠার বিভিন্ন অংশে নতুন শ্রেণীর নাম বাদ না দিয়ে উপাদানগুলি আলাদাভাবে প্রদর্শিত হয়।
রোবস্তো

@ রোবস্তো: নতুন আইডি নাম বানাতে নতুন শ্রেণীর নাম তৈরি করা কেন শক্ত?
alpav

@ রোবস্তো: নতুন শ্রেণীর নামকরণ করা আইডি নামের তুলনায় আসলে সহজ কারণ আইডি সহ আপনার বিশ্বব্যাপী সুযোগ সম্পর্কে এবং শ্রেণীর নামগুলির সাথে আপনার স্থানীয় ভেরিয়েবলগুলির মতো একই সুবিধার জন্য কেবল স্থানীয় ক্ষেত্রের স্বাতন্ত্র্যের বিষয়ে চিন্তা করতে হবে।
alpav

1
@ পালভ "এটি বিশ্বব্যাপী চিন্তা না করে স্থানীয়ভাবে নাম লেখাতে সক্ষম হওয়ার জন্য - এনক্যাপসুলেশনটির উদ্দেশ্যকে পরাস্ত করে” " ঠিক আছে, তবে সিএসএস নির্বাচকগুলি অন্তর্নিহিতভাবে বিশ্বব্যাপী: আপনি যখন লেখেন .myclass, আপনি ক্লাসের সাথে সবকিছু নির্বাচন করেন myclass। সিএসএসে, ক্লাসগুলি এই ক্ষেত্রে আইডির অনুরূপ।
পল ডি ওয়েট

12

আমি পরামর্শ দিতে পারি কম সিএসএস গতিশীল কাঠামোর

এটি পূর্বে উল্লিখিত হিসাবে SASS এর অনুরূপ।

এটি প্রতি পিতা ক্লাসে CSS বজায় রাখতে সহায়তা করে।

যেমন

 #parent{     
  width: 100%;

    #child1
    {    
     background: #E1E8F2;    
     padding: 5px;    
    }

    #child2
   {
     background: #F1F8E2;
     padding: 15px
   }
 }

এটি কী করে: প্রস্থ প্রয়োগ করে: # চাইল্ড 1 এবং # চাইল্ড 2 উভয়ের ক্ষেত্রে 100% প্রযোজ্য।

এছাড়াও, # চাইল্ড 1 নির্দিষ্ট সিএসএস # প্যারেন্টের অন্তর্গত।

এটি রেন্ডার হবে

#parent #child1
{
 width: 100%;
 background: #E1E8F2;
 padding: 5px;
}

#parent #child2
{
 width: 100%;
 background: #F1F8E2;
 padding: 15px;
}

1
আমি স্যাস ব্যবহার করি এবং এটি হতে পারে যে এটি সাস এবং কমের মধ্যে পার্থক্য, তবে আমি নিশ্চিত যে এটি it # প্যারেন্ট; প্রস্থ: 100% হিসাবে সংকলন করবে; p # পিতা বা মাতা # চাইল্ড 1 {পটভূমি: # E1E8F2; প্যাডিং: 5 পিএক্স; p # পিতা বা মাতা # চাইল্ড 2 {পটভূমি: # F1F8E2; প্যাডিং: 15px; } `
ইমিক

12

আমি খুঁজে পেয়েছি যে কঠিন জিনিসটি কোনও সাইটের জন্য প্রয়োজনীয় ডিজাইনের একটি বিধিবিধানে অনুবাদ করছে। যদি সাইটের নকশাটি পরিষ্কার এবং নিয়ম-ভিত্তিক হয়, তবে আপনার শ্রেণির নাম এবং সিএসএস কাঠামো সেখান থেকে প্রবাহিত হতে পারে। তবে সময়ের সাথে সাথে যদি লোকেরা এলোমেলোভাবে সাইটে সামান্য বিট যুক্ত করে যা বেশি অর্থবোধ করে না, তবে সিএসএসে আপনি এটি করতে পারেন এমন খুব বেশি কিছু নেই।

আমি আমার সিএসএস ফাইলগুলি মোটামুটি এইভাবে সংগঠিত করি:

  1. এরিক মেয়ারের ভিত্তিতে সিএসএস রিসেট । (কারণ অন্যথায় আমি খুঁজে পাই যে বেশিরভাগ উপাদানগুলির জন্য, আমি কমপক্ষে একটি বা দুটি নিয়ম পেয়েছি যা কেবলমাত্র ডিফল্ট ব্রাউজার শৈলীর পুনরায় সেট করা হয় - আমার বেশিরভাগ তালিকাগুলি তালিকার জন্য ডিফল্ট এইচটিএমএল স্টাইলের মতো লাগে না))

  2. গ্রিড সিস্টেম সিএসএস, যদি সাইটটি এটির জন্য কল করে। (আমি আমার 960.gs উপর ভিত্তি করে )

  3. প্রতিটি পৃষ্ঠায় প্রদর্শিত উপাদানগুলির শৈলী (শিরোনাম, পাদচরণ ইত্যাদি)

  4. উপাদানগুলির জন্য শৈলী যা সাইট জুড়ে বিভিন্ন জায়গায় ব্যবহৃত হয়

  5. শৈলীগুলি যা কেবলমাত্র পৃথক পৃষ্ঠাগুলিতে প্রাসঙ্গিক

আপনি দেখতে পাচ্ছেন যে এর বেশিরভাগই সাইটের ডিজাইনের উপর নির্ভর করে। যদি নকশাটি পরিষ্কার এবং সংগঠিত হয় তবে আপনার সিএসএস হতে পারে। যদি তা না হয়, তবে আপনি খারাপ হয়ে গেছেন।


7

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

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

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

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

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

গ্রাহকের সুনির্দিষ্ট চাহিদা বিশ্লেষণ করা আপনার পক্ষে নির্ভর করে সেই অনুসারে এই উদ্বেগগুলিকে ভারসাম্যপূর্ণ করুন।


5

আমার আগে যেমন বলেছিল: OOCSS এ intoুকুন। সাস / কম / কম্পাস ব্যবহার করতে লোভনীয়, তবে ভ্যানিলা সিএসএস সঠিক উপায়ে ব্যবহার না করা পর্যন্ত সাস / লেস / কম্পাস কেবল জিনিসগুলি আরও খারাপ করবে।

প্রথমত, দক্ষ সিএসএস সম্পর্কে পড়ুন। গুগল পেজ গতি চেষ্টা করুন এবং দক্ষ সিএসএস সম্পর্কে সোডাররা কী লিখেছেন তা পড়ুন।

তারপরে, OOCSS লিখুন।

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

এটি CSS লেখার বিষয়ে প্রতিটি বিটকেই বিপ্লব ঘটাবে। আমি পুরোপুরি নবায়িত এবং এটি ভালবাসা।

আপডেট: এসএমএএসএসএস ওওএসএসএসের মতো, তবে সাধারণভাবে কথা বলার সাথে মানিয়ে নেওয়া সহজ।


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

জ্যাচ এল: ওওসিএসএস (বা এই বিষয়টির জন্য, এসএমএসিএসএস) সঠিকভাবে ব্যবহৃত উইন্ডোজ উপসর্গগুলির জন্য কমপাস / কম / স্যাস প্রয়োজনীয় করে।
মাদর

আমি এটি খুব বেশি যুক্তি দেওয়ার চেষ্টা করব না (উদাহরণস্বরূপ যেহেতু আমি বর্তমানে একটি প্রসেসর ব্যবহার করি না), তবে আমি নিশ্চিত যে এমন একগুচ্ছ লোক আছেন যারা এই জাতীয় জিনিসগুলিকে এমনকি দরকারী বলে মনে করেন, এমনকি সংমিশ্রণেও ওওসিএসএস / এসএমএসিএসএসের সাথে বিক্রেতা উপসর্গের সমস্যার বাইরে
Zach Lysobey

4

বুদ্ধিমান সিএসএসের মূল নীতিগুলি, সিএসএস রিফ্যাক্টরিং থেকে প্রাপ্ত : কেবলমাত্র পরিশিষ্ট থেকে মডিউলার সিএসএস পর্যন্ত

SASS এ লিখুন। আপনি ভেরিয়েবল, মিক্সিং এবং এর সুবিধাগুলি অগ্রাহ্য করার জন্য উন্মাদ হন।

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

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

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

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

বাসা ছোট করে দিন im বাছাইকারীদের পরিবর্তে নতুন ক্লাস চালু করুন classes বাসা বাঁধাকালে SASS পুনরাবৃত্তকারী নির্বাচকদের ব্যথা সরিয়ে দেয় এই সত্যটি এর অর্থ এই নয় যে আপনাকে পাঁচটি স্তর গভীর নীচে বাসা বাঁধতে হবে। কোনও নির্বাচককে কখনই অতিরিক্ত যোগ্যতা অর্জন করবেন না (যেমন "ul.nav" ব্যবহার করবেন না যেখানে ".nv" একই কাজ করতে পারে)) এবং কাস্টম শ্রেণীর নামের পাশাপাশি (যেমন "h2.hightlight") এইচটিএমএল উপাদানগুলি নির্দিষ্ট করবেন না। পরিবর্তে কেবল ক্লাসের নামটি একা ব্যবহার করুন এবং বেস নির্বাচকটি ফেলে দিন (উদাহরণস্বরূপ পূর্ববর্তী উদাহরণটি ".হাইটলাইট" হওয়া উচিত)। ওভার-বাছাইকারী নির্বাচকরা কোনও মান যুক্ত করেন না।

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

ব্লক-এলিমেন্ট-সংশোধক এর মূল বিষয়গুলি আলিঙ্গন করুন। আপনি উদাহরণস্বরূপ এটি সম্পর্কে এখানে পড়তে পারেন। আমরা এটি বেশ হালকাভাবে ব্যবহার করেছি, তবে তবুও এটি সিএসএস শৈলীগুলি সংগঠিত করতে আমাদের অনেক সহায়তা করেছে।


2

বিভাগগুলির মধ্যে শিরোনাম মন্তব্য সহ ব্যক্তিরা ফাইলটি বিভাগে বিভক্ত করতে দেখলে অনেক সময় will

কিছুটা এইরকম

/* Headings and General Text */

.... stuff here for H1, etc..

/* Main page layout */

.... stuff here for layout page setup etc.

এটি বেশ ভাল কাজ করে এবং পরে ফিরে যাওয়া এবং আপনি কী কাজ করছেন তা সন্ধান করা সহজ করে তুলতে পারে।


এটি "প্রতিটি একক জিনিসের জন্য পৃথক সিএসএস অ্যাট্রিবিউট" সম্পর্কে জিজ্ঞাসীর উদ্বেগ সম্পর্কে কিছুই বলে না।
জি-উইজ

1

আপনার বিইএম এর দিকে নজর দেওয়া উচিত ।

তত্ত্ব

বিইএম হ'ল সিএসএস নির্বাচকদের সংগঠিত ও নামকরণের জন্য কিছু বিষয় পুনরায় ব্যবহারযোগ্য এবং মডিউলার করার চেষ্টা করার জন্য এবং সেই ধরণের নির্বাচকদের মধ্যে সংঘর্ষ এড়ানোর জন্য যেগুলি প্রায়শই স্প্যাগেটি কোড এবং নির্দিষ্টতা মাথা ব্যথার দিকে পরিচালিত করে সেগুলির জন্য একটি নির্দেশাবলী সরবরাহ করার একটি প্রচেষ্টা।

এটি সঠিকভাবে ব্যবহার করা হলে এর আসলে কিছু খুব ইতিবাচক প্রভাব থাকে।

  • শৈলীগুলি যখন কোনও উপাদানে যুক্ত হয় তখন আপনি যা প্রত্যাশা করেন তা করে
  • স্টাইলগুলি ফাঁস হয় না এবং কেবল যা যুক্ত করা হয় তা কার্যকর করে না
  • শৈলীগুলি ডকুমেন্টের কাঠামো থেকে সম্পূর্ণ ডিকপলড led
  • স্টাইলগুলিকে একে অপরকে ওভার রাইড করতে বাধ্য করা দরকার না

সিএমএসে প্রায় অবজেক্ট ওরিয়েন্টেড স্টাইল আনতে বিইএম SASS এর সাথে ভাল কাজ করে। আপনি মডুলার ফাইলগুলি তৈরি করতে পারেন যা কোনও একক UI উপাদানটির প্রদর্শন পরিচালনা করে এবং রঙ এবং 'পদ্ধতি' যেমন অভ্যন্তরীণ উপাদানগুলি কীভাবে পরিচালিত হয় সেগুলি যেমন চলকগুলি ধারণ করে। যদিও একটি হার্ড ওও প্রোগ্রামার এই ধারণাটি দেখতে পাচ্ছে, বাস্তবে, প্রয়োগিত ধারণাগুলি ওও কাঠামোর অনেকগুলি সুন্দর অংশ নিয়ে আসে, যেমন মড্যুলারালিটি, আলগা সংযোগ এবং আঁটসাঁক সংহতি এবং প্রসঙ্গটি নিখরচায় পুনঃব্যবহারযোগ্যতা। আপনি এমন কোনও উপায়ে তৈরি করতে পারেন যা ব্যবহার করে কোনও এনপ্যাপুলেটেড অবজেক্টের মতো দেখায় সাস এবং &অপেরেটো আর কোনও এনপ্যাপুলেটেড

স্ম্যাশিং ম্যাগাজিনের আরও গভীরতার নিবন্ধটি এখানে পাওয়া যাবে ; এবং সিসিএস উইজার্ড্রির হ্যারি রবার্টসের একজন (সিএসএসের সাথে জড়িত প্রত্যেকেরই পড়া উচিত) তিনি এখানে আছেন

প্রস্তুতিতে

আমি এসএমএসিএসএস এবং ওওএসএসএস ব্যবহার করার সাথে সাথে এটি বেশ কয়েকবার ব্যবহার করেছি যার অর্থ তাদের তুলনা করার জন্য আমারও কিছু আছে। আমি বেশ কয়েকটি বড় মেসেও কাজ করেছি, প্রায়শই আমার নিজের, অনভিজ্ঞ সৃষ্টি।

আমি যখন সত্যিকারের বিশ্বে বিইএম ব্যবহার করি তখন আমি কয়েকটি অতিরিক্ত নীতি দিয়ে কৌশলটি বাড়িয়ে তুলি। আমি ইউটিলিটি ক্লাস ব্যবহার করি - একটি ভাল উদাহরণ একটি মোড়কের ক্লাস:

.page-section {
    width: 100%;
}
@media screen and (min-width: 1200px) {
    margin: 0 auto;
    width: 1200px;
}

এবং আমি কিছুটা ক্যাসকেড এবং নির্দিষ্টতার উপর নির্ভর করি। এখানে বিইএম মডিউলটি হবে .primary-boxএবং এটি .headerএকটি নির্দিষ্ট ওভার রাইডের প্রসঙ্গ হবে

.header {
  .primary-box {
    color: #000;
  }
}

(আমি যতটা সম্ভব জেনেরিক এবং প্রসঙ্গটি যত তাড়াতাড়ি বিনামূল্যে তৈরি করার জন্য সর্বাত্মক চেষ্টা করছি, মানে একটি ভাল প্রকল্প প্রায় সমস্ত কিছুই মডিউলগুলিতে যা পুনরায় ব্যবহারযোগ্য)

আমি এখানে একটি চূড়ান্ত পয়েন্ট তৈরি করব তা হল আপনার প্রকল্পটি যদিও ছোট এবং অ-জটিল দেখা দিতে পারে তবে দুটি কারণে আপনি শুরু থেকে এটি করা উচিত:

  • প্রকল্পগুলি জটিলতায় বৃদ্ধি পায়, সুতরাং ভাল ভিত্তি স্থাপন গুরুত্বপূর্ণ, সিএসএস অন্তর্ভুক্ত
  • এমনকি এমন কোনও প্রকল্প যা সহজ দেখা যাচ্ছে কারণ এটি ওয়ার্ডপ্রেসে তৈরি হয়েছে তা সিএসএসে খুব কম জাভাস্ক্রিপ্ট হতে পারে - ঠিক আছে, আপনাকে কোনও সার্ভারের পাশের কোডিং করতে হবে না, সুতরাং অংশটি সহজ, তবে ব্রোশিওর-পোশাকের সামনে প্রতিটি বিশটির বিশটি মডিউল এবং তিনটি ভিন্নতা রয়েছে: আপনি সেখানে খুব জটিল সিএসএস পেয়েছেন!

ওয়েব উপাদান

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

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

এখানে আরও কিছু পড়ার আছে এবং এখানে একটি ফ্রেমওয়ার্ক পলিমার রয়েছে যা দেখতে খুব ভাল

পরিশেষে

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



0

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

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

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