সিএসএস ব্যবহার করে কীভাবে চেকবক্সটি স্টাইল করবেন


831

আমি নিম্নলিখিত ব্যবহার করে একটি চেকবক্স স্টাইল করার চেষ্টা করছি:

<input type="checkbox" style="border:2px dotted #00f;display:block;background:#ff0000;" />

কিন্তু শৈলী প্রয়োগ করা হয় না। চেকবক্সটি এখনও তার ডিফল্ট শৈলী প্রদর্শন করে। আমি কীভাবে এটি নির্দিষ্ট শৈলী দেব?



1
আমি মনে করি আপনি ভালো কিছু খুঁজছেন হয়: asimishaq.com/myfiles/image-checkbox পোস্টটি দেখুন: stackoverflow.com/questions/16352864/...
অসীম-ইসহাক


1
লিঙ্কটি উপরের মন্তব্যে রয়েছে। যাইহোক: blog.felixhagspiel.de/index.php/posts/custom-inputs
ফেলিক্স হ্যাগস্পিল

1
কি দারুন. এই সমস্ত উত্তরগুলির দিকে তাকিয়ে আমার কেবল বলতে হবে, এই সমস্ত কাজটি কেবল পর্দায় একটি স্টাইলযুক্ত চেকবক্স
মাইকেল

উত্তর:


784

হালনাগাদ:

নীচের উত্তরটি CSS এর ব্যাপক প্রাপ্যতার আগে জিনিসের অবস্থা উল্লেখ করে modern আধুনিক ব্রাউজারগুলিতে (ইন্টারনেট এক্সপ্লোরার 9 এবং তারপরে) জাভাস্ক্রিপ্ট ব্যবহার না করে আপনার পছন্দসই স্টাইলিংয়ের সাথে চেকবক্স প্রতিস্থাপন তৈরি করা আরও সহজ।

এখানে কয়েকটি দরকারী লিঙ্ক রয়েছে:

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


পুরানো উত্তর

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

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

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


34
এই উত্তরটি বুড়ো হচ্ছে! প্রাথমিক লিঙ্কটি আইআই 6 এবং আই 77 শৈলীর তুলনা করে একটি সাইটের দিকে নিয়ে যায় ...
জোনাটান লিটকে

7
ফেয়ার পয়েন্ট - এবং মূল পয়েন্টটি আধুনিক ব্রাউজারগুলিতে আর সত্যিই সত্য নয়। আমি কয়েকটি নতুন লিঙ্কের সাথে আপডেট করেছি, তবে পুরানো ব্রাউজারগুলির জন্য একটি উত্স হিসাবে মূলটি রেখে গেছি।
জ্যাকব ম্যাটিসন

3
সহজ সিএসএস চেকবক্স জেনারেটর , সত্যিই সহজ এবং এন 100 বি বন্ধুত্বপূর্ণ ছিল। কাস্টমাইজড তৈরির জন্যও জিইউআইয়ের সাথে আসে! ভাল প্রশংসা। :)
CᴴᴀZ

আমি পুরানো উত্তরে আগ্রহী কারণ আমি চাই এই বৈশিষ্ট্যটি আইই 8 + এবং অন্যান্য ব্রাউজারগুলির (ক্রোম, ফায়ারফক্স এবং সাফারি) সাথে সামঞ্জস্যপূর্ণ হোক। তবে আপনাকে সুপারিশ প্লাগইন সংক্রান্ত অনেক প্রতিক্রিয়া খুঁজে পাচ্ছি না ryanfait.com/resources/custom-checkboxes-and-radio-buttons
Adrien হউন

2
এটি খুব দরকারী উত্তর নয় - এটি কেবল নিবন্ধগুলির একটি তালিকা, যার বেশিরভাগ এখন খুব পুরানো।
স্টিভ বনেট

141

কেবল সিএসএস ব্যবহার করে এটি করার একটি উপায় রয়েছে। আমরা labelপরিবর্তে ( উপাদান ) উপাদান এবং শৈলী যে উপাদান ব্যবহার করতে পারেন। সতর্কতাটি হ'ল এটি ইন্টারনেট এক্সপ্লোরার 8 এবং নিম্ন সংস্করণের জন্য কাজ করবে না।

.myCheckbox input {
  position: relative;
  z-index: -9999;
}

.myCheckbox span {
  width: 20px;
  height: 20px;
  display: block;
  background: url("link_to_image");
}

.myCheckbox input:checked + span {
  background: url("link_to_another_image");
}
<label for="test">Label for my styled "checkbox"</label>
<label class="myCheckbox">
  <input type="checkbox" name="test" />
  <span></span>
</label>


@ গ্যান্ডালস্টস্টারমক্রো এটি এমন কোনও ব্রাউজারের জন্য কাজ করবে যা: চেক করা সিউডো-শ্রেণিকে সমর্থন করে, যা আই 8 সমর্থন করে না। এটি selectivizr.com- এর সাথে কাজ করে কিনা তা আপনি পরীক্ষা করতে পারেন - যা চেক করা এবং বন্ধুদের জন্য সমর্থন যুক্ত করে।
ব্লেক পেটারসন

অন্য কথায়, আই 9 এবং পরবর্তী সংস্করণগুলি সমর্থন করে: পরীক্ষিত।
ব্লেক পেটারসন

1
আইই 8 এবং এর নীচে একটি পলিফিল রয়েছে: github.com/rdebeasi/checked-polyfill
টিম

এটি কাজ করছে, তবে এটি প্রথমবারের মতো ঝাপটায়। কেন এমন হচ্ছে?
টেকনোফাইল

আমি বিশ্বাস করি লুকানো inputগুলি কখনই কীবোর্ড ফোকাস নেয় না, তাই এগুলি কীবোর্ডের মাধ্যমে অ্যাক্সেসযোগ্য।
সাম

139

সিউডো :afterএবং :beforeসিউডো ক্লাসগুলির সাথে আসা নতুন দক্ষতা ব্যবহার করে আপনি বেশ দুর্দান্ত কাস্টম চেকবক্স প্রভাব অর্জন করতে পারেন । এর সুবিধাটি হ'ল: আপনাকে ডিওএম-তে আরও কিছু যুক্ত করার দরকার নেই, কেবলমাত্র স্ট্যান্ডার্ড চেকবক্স।

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

এটি কেবলমাত্র একটি ওয়েবকিট ব্রাউজার সমাধান (ক্রোম, সাফারি, মোবাইল ব্রাউজার)

উদাহরণ ফিল্ডল দেখুন

$(function() {
  $('input').change(function() {
    $('div').html(Math.random());
  });
});
/* Main Classes */
.myinput[type="checkbox"]:before {
  position: relative;
  display: block;
  width: 11px;
  height: 11px;
  border: 1px solid #808080;
  content: "";
  background: #FFF;
}

.myinput[type="checkbox"]:after {
  position: relative;
  display: block;
  left: 2px;
  top: -11px;
  width: 7px;
  height: 7px;
  border-width: 1px;
  border-style: solid;
  border-color: #B3B3B3 #dcddde #dcddde #B3B3B3;
  content: "";
  background-image: linear-gradient(135deg, #B1B6BE 0%, #FFF 100%);
  background-repeat: no-repeat;
  background-position: center;
}

.myinput[type="checkbox"]:checked:after {
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAQAAABuW59YAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAB2SURBVHjaAGkAlv8A3QDyAP0A/QD+Dam3W+kCAAD8APYAAgTVZaZCGwwA5wr0AvcA+Dh+7UX/x24AqK3Wg/8nt6w4/5q71wAAVP9g/7rTXf9n/+9N+AAAtpJa/zf/S//DhP8H/wAA4gzWj2P4lsf0JP0A/wADAHB0Ngka6UmKAAAAAElFTkSuQmCC'), linear-gradient(135deg, #B1B6BE 0%, #FFF 100%);
}

.myinput[type="checkbox"]:disabled:after {
  -webkit-filter: opacity(0.4);
}

.myinput[type="checkbox"]:not(:disabled):checked:hover:after {
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAQAAABuW59YAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAB2SURBVHjaAGkAlv8A3QDyAP0A/QD+Dam3W+kCAAD8APYAAgTVZaZCGwwA5wr0AvcA+Dh+7UX/x24AqK3Wg/8nt6w4/5q71wAAVP9g/7rTXf9n/+9N+AAAtpJa/zf/S//DhP8H/wAA4gzWj2P4lsf0JP0A/wADAHB0Ngka6UmKAAAAAElFTkSuQmCC'), linear-gradient(135deg, #8BB0C2 0%, #FFF 100%);
}

.myinput[type="checkbox"]:not(:disabled):hover:after {
  background-image: linear-gradient(135deg, #8BB0C2 0%, #FFF 100%);
  border-color: #85A9BB #92C2DA #92C2DA #85A9BB;
}

.myinput[type="checkbox"]:not(:disabled):hover:before {
  border-color: #3D7591;
}

/* Large checkboxes */
.myinput.large {
  height: 22px;
  width: 22px;
}

.myinput.large[type="checkbox"]:before {
  width: 20px;
  height: 20px;
}

.myinput.large[type="checkbox"]:after {
  top: -20px;
  width: 16px;
  height: 16px;
}

/* Custom checkbox */
.myinput.large.custom[type="checkbox"]:checked:after {
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGHRFWHRBdXRob3IAbWluZWNyYWZ0aW5mby5jb23fZidLAAAAk0lEQVQ4y2P4//8/AyUYwcAD+OzN/oMwshjRBoA0Gr8+DcbIhhBlAEyz+qZZ/7WPryHNAGTNMOxpJvo/w0/uP0kGgGwGaZbrKgfTGnLc/0nyAgiDbEY2BCRGdCDCnA2yGeYVog0Aae5MV4c7Gzk6CRqAbDM2w/EaQEgzXgPQnU2SAcTYjNMAYm3GaQCxNuM0gFwMAPUKd8XyBVDcAAAAAElFTkSuQmCC'), linear-gradient(135deg, #B1B6BE 0%, #FFF 100%);
}

.myinput.large.custom[type="checkbox"]:not(:disabled):checked:hover:after {
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGHRFWHRBdXRob3IAbWluZWNyYWZ0aW5mby5jb23fZidLAAAAk0lEQVQ4y2P4//8/AyUYwcAD+OzN/oMwshjRBoA0Gr8+DcbIhhBlAEyz+qZZ/7WPryHNAGTNMOxpJvo/w0/uP0kGgGwGaZbrKgfTGnLc/0nyAgiDbEY2BCRGdCDCnA2yGeYVog0Aae5MV4c7Gzk6CRqAbDM2w/EaQEgzXgPQnU2SAcTYjNMAYm3GaQCxNuM0gFwMAPUKd8XyBVDcAAAAAElFTkSuQmCC'), linear-gradient(135deg, #8BB0C2 0%, #FFF 100%);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table style="width:100%">
  <tr>
    <td>Normal:</td>
    <td><input type="checkbox" /></td>
    <td><input type="checkbox" checked="checked" /></td>
    <td><input type="checkbox" disabled="disabled" /></td>
    <td><input type="checkbox" disabled="disabled" checked="checked" /></td>
  </tr>
  <tr>
    <td>Small:</td>
    <td><input type="checkbox" class="myinput" /></td>
    <td><input type="checkbox" checked="checked" class="myinput" /></td>
    <td><input type="checkbox" disabled="disabled" class="myinput" /></td>
    <td><input type="checkbox" disabled="disabled" checked="checked" class="myinput" /></td>
  </tr>
  <tr>
    <td>Large:</td>
    <td><input type="checkbox" class="myinput large" /></td>
    <td><input type="checkbox" checked="checked" class="myinput large" /></td>
    <td><input type="checkbox" disabled="disabled" class="myinput large" /></td>
    <td><input type="checkbox" disabled="disabled" checked="checked" class="myinput large" /></td>
  </tr>
  <tr>
    <td>Custom icon:</td>
    <td><input type="checkbox" class="myinput large custom" /></td>
    <td><input type="checkbox" checked="checked" class="myinput large custom" /></td>
    <td><input type="checkbox" disabled="disabled" class="myinput large custom" /></td>
    <td><input type="checkbox" disabled="disabled" checked="checked" class="myinput large custom" /></td>
  </tr>
</table>

বোনাস ওয়েবকিট স্টাইল ফ্লিপসুইচ ফিডল

$(function() {
  var f = function() {
    $(this).next().text($(this).is(':checked') ? ':checked' : ':not(:checked)');
  };
  $('input').change(f).trigger('change');
});
body {
  font-family: arial;
}

.flipswitch {
  position: relative;
  background: white;
  width: 120px;
  height: 40px;
  -webkit-appearance: initial;
  border-radius: 3px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  outline: none;
  font-size: 14px;
  font-family: Trebuchet, Arial, sans-serif;
  font-weight: bold;
  cursor: pointer;
  border: 1px solid #ddd;
}

.flipswitch:after {
  position: absolute;
  top: 5%;
  display: block;
  line-height: 32px;
  width: 45%;
  height: 90%;
  background: #fff;
  box-sizing: border-box;
  text-align: center;
  transition: all 0.3s ease-in 0s;
  color: black;
  border: #888 1px solid;
  border-radius: 3px;
}

.flipswitch:after {
  left: 2%;
  content: "OFF";
}

.flipswitch:checked:after {
  left: 53%;
  content: "ON";
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<h2>Webkit friendly mobile-style checkbox/flipswitch</h2>
<input type="checkbox" class="flipswitch" /> &nbsp;
<span></span>
<br>
<input type="checkbox" checked="checked" class="flipswitch" /> &nbsp;
<span></span>


9
ফায়ারফক্স ৩৩.১ / লিনাক্স: ফিডালটি কেবলমাত্র ডিফল্ট চেকবক্সগুলি দেখায়। কিছুই আলাদা দেখাচ্ছে না।
রোবস

1
@robsch এটি মূল পোস্টে স্পষ্টভাবে নির্দেশিত। ফায়ারফক্স বা ওএসের সংস্করণ অপ্রাসঙ্গিক, এটি ফায়ার ফক্সে কাজ করে না। "মুক্তিযোদ্ধা + + ইন্টারনেট এখনো ফাংশন চেক-বক্স অনুমতি দেবে, শুধু অ-স্টাইল ..."
জোশ বিভাগ

একটি ভাল পদ্ধতির। তবে সমস্ত ব্রাউজার এটি ভাল করছে না। যতক্ষণ না আমি পরীক্ষা করেছি কেবলমাত্র Chrome এরই সেরা আউটপুট রয়েছে।
EA

খুব সুন্দর. তবে ... এটি আবার একটি আই 5.x পদ্ধতি approach কেবল ওয়েবকিট। কারণ এটি সর্বদা নিয়ম অনুসরণ করে না ... ওয়েবকিট ব্রাউজারগুলির সাথে এটিই সমস্যা।
অ্যালেক্স

1
সবচেয়ে ভালো সমাধান! +1 তবে আমি এত বড় উদাহরণ লেখার কারণটি দেখতে পাচ্ছি না। ধারণাটি বর্ণনা করার জন্য 30 টি লাইন যথেষ্ট হবে।
আন্দ্রেই বোগাচেঙ্কো

136

আপনি শুরু করার আগে (২০১৫ সালের জানুয়ারী)

আসল প্রশ্নোত্তর এখন ~ 5 বছর পুরানো। এই হিসাবে এটি একটি আপডেটের সামান্য বিট।

প্রথমত, যখন স্টাইলিং চেকবাক্সগুলি আসে তখন বেশ কয়েকটি পন্থা থাকে। মূল তত্ত্বটি হ'ল:

  1. আপনার ডিফল্ট চেকবক্স নিয়ন্ত্রণটি আপনার ব্রাউজার দ্বারা স্টাইল করা আবশ্যক এবং সিএসএস ব্যবহার করে কোনও অর্থবহ উপায়ে ওভাররাইড করা যাবে না।

  2. নিয়ন্ত্রণটি লুকানো থাকলেও আপনি এখনও এটির পরীক্ষা করা অবস্থা সনাক্ত এবং টগল করতে সক্ষম হবেন be

  3. নতুন উপাদানকে স্টাইল করে চেকবাক্সের চেক করা অবস্থায় প্রতিফলিত হওয়া দরকার

সমাধান (নীতিগতভাবে)

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

  1. একটি labelউপাদান মধ্যে আপনার চেকবক্স মোড়ানো । এর অর্থ হ'ল এটি লুকানো থাকা সত্ত্বেও আপনি এখনও লেবেলের মধ্যে যে কোনও জায়গায় ক্লিক করে এর চেক করা রাষ্ট্রটি টগল করতে পারেন।

  2. আপনার চেকবক্সটি লুকান

  3. চেকবক্সের পরে একটি নতুন উপাদান যুক্ত করুন যা আপনি সেই অনুসারে স্টাইল করবেন। এটি অবশ্যই চেকবক্সের পরে উপস্থিত হবে যাতে এটি সিএসএস ব্যবহার করে নির্বাচন করা যায় এবং স্টাইলের উপর নির্ভর করে স্টাইলযুক্ত :checked। সিএসএস 'পিছনে' নির্বাচন করতে পারে না।

সমাধান (কোডে)

পরিমার্জন (আইকন ব্যবহার করে)

কিন্তু আরে! শুনেছি তুমি চিৎকার করছ। আমি যদি একটি সুন্দর ছোট টিক বা বাক্সটিতে ক্রস করতে চাই তবে কী হবে? এবং আমি ব্যাকগ্রাউন্ড চিত্র ব্যবহার করতে চাই না!

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

label input {
  display: none; /* Hide the default checkbox */
}

/* Style the artificial checkbox */
label span {
  height: 10px;
  width: 10px;
  border: 1px solid grey;
  display: inline-block;
  position: relative;
}

/* Style its checked state...with a ticked icon */
[type=checkbox]:checked + span:before {
  content: '\2714';
  position: absolute;
  top: -5px;
  left: 0;
}
<label>
  <input type='checkbox'>
  <span></span>
  Checkbox label text
</label>


14
সরলিকৃত এইচটিএমএল, সরলীকৃত সিএসএস, বিস্তারিত ব্যাখ্যা ব্যতীত।
এসডাব্লু 4

4
- @AnthonyHayward আপডেট উত্তর, এই কারণে ডিসপ্লে ব্যবহার করার ছিল: কোনওটিই একটি tabbable ভাবে নিয়ন্ত্রণ instantiate নয়, আমি পরিবর্তন করেছি
SW4

1
আমি এমন একটি উদাহরণ খুঁজে পাওয়ার জন্য সংগ্রাম করে যাচ্ছিলাম যাতে চেকবক্সটি তার আগে / পরে তার চেয়ে লেবেলের ভিতরে ছিল। এটি একটি খুব ভাল নথিভুক্ত এবং ব্যাখ্যা সমাধান। এই উত্তরটি জানুয়ারী
২০১

1
তবুও ট্যাবলেবল নয় display: none
সাম

2
প্রতিস্থাপন visibility: hidden;সঙ্গে opacity: 0 !important;যদি এখনও tabbing সঙ্গে আমাদের সমস্যা হচ্ছে।
জবাচেত

40

আমি এসডাব্লু 4 এর উত্তরের পরামর্শটি অনুসরণ করব - এইচটিএমএলটির পরামর্শ দিয়ে চেকবক্সটি লুকিয়ে রাখতে এবং এটি একটি কাস্টম স্প্যান দিয়ে কভার করতে:

<label>
  <input type="checkbox">
  <span>send newsletter</span>
</label>

লেবেলের মোড়ক ঝরঝরেভাবে "ফর-আইডি" বৈশিষ্ট্য সংযোগের প্রয়োজন ছাড়াই পাঠ্যটিতে ক্লিক করতে দেয় allows যাহোক,

visibility: hiddenবা ব্যবহার করে এটি আড়াল করবেন নাdisplay: none

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

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

  1. চেকবাক্সগুলি লুকান

    input[type="checkbox"] {
      position: absolute;
      opacity: 0;
      z-index: -1;
    }
    

    আমি কেবল নেতিবাচক ব্যবহার করি z-indexকারণ আমার উদাহরণটি সম্পূর্ণরূপে কভার করার জন্য যথেষ্ট বড় চেকবক্স ত্বক ব্যবহার করে। left: -999pxএটি প্রতিটি লেআউটে পুনরায় ব্যবহারযোগ্য না হওয়ার কারণে আমি প্রস্তাব দিই না । বুশান ওয়াগের উত্তর এটি লুকানোর জন্য বুলেটপ্রুফ একটি উপায় সরবরাহ করে এবং ব্রাউজারকে ট্যাবিনডেক্স ব্যবহার করতে বোঝায়, সুতরাং এটি একটি ভাল বিকল্প। যাইহোক, উভয়ই কেবল একটি হ্যাক। সঠিক ভাবে আজ appearance: noneদেখতে জুস্ট এর উত্তর :

    input[type="checkbox"] {
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
    }
    
  2. স্টাইল চেকবক্স লেবেল

    input[type="checkbox"] + span {
      font: 16pt sans-serif;
      color: #000;
    }
    
  3. চেকবক্স ত্বক যুক্ত করুন

    input[type="checkbox"] + span:before {
      font: 16pt FontAwesome;
      content: '\00f096';
      display: inline-block;
      width: 16pt;
      padding: 2px 0 0 3px;
      margin-right: 0.5em;
    }
    

    \00f096হ'ল ফন্ট আশ্চর্যজনক square-o, প্যাডিং ফোকাসে এমনকি ডটড আউটলাইন সরবরাহ করতে সামঞ্জস্য করা হয়েছে (নীচে দেখুন)।

  4. চেকবক্স চেক করা ত্বক যুক্ত করুন

    input[type="checkbox"]:checked + span:before {
      content: '\00f046';
    }
    

    \00f046হ'ল হ'ল ফন্ট আশ্চর্য check-square-o, যা square-oউপরের প্রস্থের শৈলীর কারণ as

  5. ফোকাসের রূপরেখা যুক্ত করুন

    input[type="checkbox"]:focus + span:before {
      outline: 1px dotted #aaa;
    }
    

    সাফারি এই বৈশিষ্ট্যটি সরবরাহ করে না (@ জেসন সানকের মন্তব্য দেখুন), আপনার window.navigatorব্রাউজারটি সনাক্ত করতে এবং এটি সাফারি হলে এড়িয়ে যাওয়া উচিত।

  6. অক্ষম চেকবক্সের জন্য ধূসর রঙ সেট করুন

    input[type="checkbox"]:disabled + span {
      color: #999;
    }
    
  7. অক্ষম চেকবক্সে হোভার ছায়া সেট করুন

    input[type="checkbox"]:not(:disabled) + span:hover:before {
      text-shadow: 0 1px 2px #77F;
    }
    

ডেমো ফিডল

চেকবাক্সগুলি এবং ব্যবহারের উপর মাউস কার্সার রেখে করার চেষ্টা করুন Tabএবং Shift+ + Tabসরাতে এবং Spaceটগল করতে।


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

এটা মনে হয় স্নিপেট মধ্যে উপস্থিত চেকবক্সের সাহায্যে আর কাজ করছে না? ক্রোম উইন্ডোজে 10
ফলিক্স গাগনন-গ্রেনিয়ার

1
চমৎকার উত্তর. আমার সমাধানের জন্য ভিত্তি সরবরাহ করেছেন - আপনি অতিরিক্ত স্প্যান ব্যবহার করেছেন এমন ইনপুটটির পরে আমি বিদ্যমান লেবেলটি ব্যবহার করেছি এবং আমি এজ এবং এফএফ সমর্থন পাই।
জোনো

2
এই উত্তরগুলির বেশিরভাগ অ্যাক্সেসযোগ্যতা উপেক্ষা করে। আমি পছন্দ করি যে এই উত্তরটি কৌশল অনুসারে রাখে।
ম্যাক্সশিউটি

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

30

labelনীচে নীচের একটি উপাদানটি ব্যবহার করে আপনি সামান্য কৌশল নিয়ে চেকবক্সগুলিকে স্টাইল করতে পারেন :

.checkbox > input[type=checkbox] {
  visibility: hidden;
}

.checkbox {
  position: relative;
  display: block;
  width: 80px;
  height: 26px;
  margin: 0 auto;
  background: #FFF;
  border: 1px solid #2E2E2E;
  border-radius: 2px;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
}

.checkbox:after {
  position: absolute;
  display: inline;
  right: 10px;
  content: 'no';
  color: #E53935;
  font: 12px/26px Arial, sans-serif;
  font-weight: bold;
  text-transform: capitalize;
  z-index: 0;
}

.checkbox:before {
  position: absolute;
  display: inline;
  left: 10px;
  content: 'yes';
  color: #43A047;
  font: 12px/26px Arial, sans-serif;
  font-weight: bold;
  text-transform: capitalize;
  z-index: 0;
}

.checkbox label {
  position: absolute;
  display: block;
  top: 3px;
  left: 3px;
  width: 34px;
  height: 20px;
  background: #2E2E2E;
  cursor: pointer;
  transition: all 0.5s linear;
  -webkit-transition: all 0.5s linear;
  -moz-transition: all 0.5s linear;
  border-radius: 2px;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  z-index: 1;
}

.checkbox input[type=checkbox]:checked + label {
  left: 43px;
}
<div class="checkbox">
  <input id="checkbox1" type="checkbox" value="1" />
  <label for="checkbox1"></label>
</div>

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


28

কার্যকর করার জন্য সহজ এবং সহজেই অনুকূলিতকরণযোগ্য সমাধান

অনেক অনুসন্ধান এবং পরীক্ষার পরে আমি এই সমাধানটি পেয়েছি যা কার্যকর করা সহজ এবং কাস্টমাইজ করা সহজ। এই সমাধানে :

  1. আপনার বাহ্যিক গ্রন্থাগার এবং ফাইলের দরকার নেই
  2. আপনার পৃষ্ঠায় অতিরিক্ত HTML যুক্ত করার দরকার নেই
  3. আপনার চেকবক্সের নাম এবং আইডি পরিবর্তন করার দরকার নেই

আপনার পৃষ্ঠার শীর্ষে প্রবাহিত সিএসএস সরল রাখুন এবং সমস্ত চেকবক্সের স্টাইল এর পরিবর্তিত হবে:

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

input[type=checkbox] {
  transform: scale(1.5);
}

input[type=checkbox] {
  width: 30px;
  height: 30px;
  margin-right: 8px;
  cursor: pointer;
  font-size: 17px;
  visibility: hidden;
}

input[type=checkbox]:after {
  content: " ";
  background-color: #fff;
  display: inline-block;
  margin-left: 10px;
  padding-bottom: 5px;
  color: #00BFF0;
  width: 22px;
  height: 25px;
  visibility: visible;
  border: 1px solid #00BFF0;
  padding-left: 3px;
  border-radius: 5px;
}

input[type=checkbox]:checked:after {
  content: "\2714";
  padding: -5px;
  font-weight: bold;
}

1
সহজ আরও ভাল!
অ্যাড্রিয়ান মোইসা

এটি একটি দুর্দান্ত উত্তর, এটি কেবল অতিরিক্ত কোনও কিছুর প্রয়োজন ছাড়াই কাজ করে
HeavyHead

ভাল এক এবং খুব সহজ
খালিদহ

সুন্দর সমাধান। তবে আমি এটি ফায়ারফক্স, আইই বা এজতে কাজ করতে দেখছি না (কোনও চেকবক্স নেই)
জোনো

20

আপনি অতিরিক্ত মার্কআপ যোগ করা এড়াতে পারেন। এটি সিএসএসের মাধ্যমে ডেস্কটপের জন্য আইই বাদে সর্বত্র কাজ করে (তবে উইন্ডোজ ফোন এবং মাইক্রোসফ্ট এজের জন্য আইই তে কাজ করে) appearance:

input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;

  /* Styling checkbox */
  width: 16px;
  height: 16px;
  background-color: red;
}

input[type="checkbox"]:checked {
  background-color: green;
}
<input type="checkbox" />


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

18

আমি আইকন ফন্টগুলি ব্যবহার করতে পছন্দ করি (যেমন ফন্টআউবাইজ) যেহেতু সিএসএসের সাথে তাদের রঙগুলি পরিবর্তন করা সহজ এবং উচ্চ পিক্সেল-ঘনত্ব ডিভাইসগুলিতে তারা সত্যই ভাল স্কেল করে। সুতরাং উপরেরগুলির অনুরূপ কৌশলগুলি ব্যবহার করে এখানে আরও একটি খাঁটি সিএসএস বৈকল্পিক।

(নীচে একটি স্থির চিত্র রয়েছে যাতে আপনি ফলাফলটি কল্পনা করতে পারেন; একটি ইন্টারেক্টিভ সংস্করণের জন্য জেএসফিডেল দেখুন ))

চেকবক্স উদাহরণ

অন্যান্য সমাধানগুলির মতো এটিও labelউপাদানটি ব্যবহার করে । একটি সংলগ্ন spanআমাদের চেকবক্সের অক্ষর ধারণ করে।

span.bigcheck-target {
  font-family: FontAwesome; /* Use an icon font for the checkbox */
}

input[type='checkbox'].bigcheck {
  position: relative;
  left: -999em; /* Hide the real checkbox */
}

input[type='checkbox'].bigcheck + span.bigcheck-target:after {
  content: "\f096"; /* In fontawesome, is an open square (fa-square-o) */
}

input[type='checkbox'].bigcheck:checked + span.bigcheck-target:after {
  content: "\f046"; /* fontawesome checked box (fa-check-square-o) */
}

/* ==== Optional - colors and padding to make it look nice === */
body {
  background-color: #2C3E50;
  color: #D35400;
  font-family: sans-serif;
  font-weight: 500;
  font-size: 4em; /* Set this to whatever size you want */
}

span.bigcheck {
  display: block;
  padding: 0.5em;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" />

<span class="bigcheck">
  <label class="bigcheck">
    Cheese
    <input type="checkbox" class="bigcheck" name="cheese" value="yes" />
    <span class="bigcheck-target"></span>
  </label>
</span>

এটির জন্য এখানে জেএসফিডাল


.... আপনি যা বর্ণনা করেছেন তা ভূষণ ওয়াগ, জ্যাক, জনাথন হজসন এবং ব্লেকের পূর্ববর্তী উত্তরগুলির সমান;)
এসডব্লু 4

7
@ এসডাব্লু 4 আমি এই সত্যটির রেফারেন্স করেছি, এই উত্তর ব্যতীত আইকন ফন্টগুলি ব্যবহার করে (যা আগের উত্তরগুলির কোনওটিরই নেই)। প্রথম অনুচ্ছেদটি এটি বেশ স্পষ্ট করে তোলে।
cobberboy

আপনি প্রতিস্থাপন করা প্রয়োজন font-family: FontAwesome;সঙ্গে font-family: 'Font Awesome\ 5 Free';আপডেট ইউনিকোড বিষয়বস্তু, এবং আপনি এটি নতুন সংস্করণে কাজ করতে চান।
SuN

12

সম্প্রতি আমি সমস্যার বেশ আকর্ষণীয় সমাধান পেয়েছি।

আপনি appearance: none;চেকবক্সের ডিফল্ট স্টাইলটি বন্ধ করতে ব্যবহার করতে পারেন এবং তারপরে এখানে বর্ণিত (যেমন উদাহরণ 4) এর মতো নিজের লেখাতে পারেন ।

উদ্রেকর উদাহরণ

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

"আমি ব্যবহার করতে পারেন?" লিংক


এর appearanceজন্য আমাদের যা প্রয়োজন তা-ই; এটি মনে রাখবেন "এটি মানহীন এবং মানক ট্র্যাকের নয়"
স্যাম

12

খাঁটি সিএসএসের সাহায্যে, অভিনব রূপ :beforeএবং :afterকোনও রূপান্তর নয়, আপনি ডিফল্ট উপস্থিতিটি বন্ধ করতে পারেন এবং তারপরে নীচের উদাহরণের মতো একটি ইনলাইন ব্যাকগ্রাউন্ড চিত্র দিয়ে স্টাইল করতে পারেন। এটি ক্রোম, ফায়ারফক্স, সাফারি এবং এখন এজ (ক্রোমিয়াম এজ) এ কাজ করে।

INPUT[type=checkbox]:focus
{
    outline: 1px solid rgba(0, 0, 0, 0.2);
}

INPUT[type=checkbox]
{
    background-color: #DDD;
    border-radius: 2px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 17px;
    height: 17px;
    cursor: pointer;
    position: relative;
    top: 5px;
}

INPUT[type=checkbox]:checked
{
    background-color: #409fd6;
    background: #409fd6 url("data:image/gif;base64,R0lGODlhCwAKAIABAP////3cnSH5BAEKAAEALAAAAAALAAoAAAIUjH+AC73WHIsw0UCjglraO20PNhYAOw==") 3px 3px no-repeat;
}
<form>
  <label><input type="checkbox">I Agree To Terms &amp; Conditions</label>
</form>


1
হ্যাঁ! শুধুমাত্র একটি যে আসলে শালীন।
ওডিনহো - ভেলমন্ট

10

আমার সমাধান

input[type="checkbox"] {
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: 0;
  background: lightgray;
  height: 16px;
  width: 16px;
  border: 1px solid white;
}

input[type="checkbox"]:checked {
  background: #2aa1c0;
}

input[type="checkbox"]:hover {
  filter: brightness(90%);
}

input[type="checkbox"]:disabled {
  background: #e6e6e6;
  opacity: 0.6;
  pointer-events: none;
}

input[type="checkbox"]:after {
  content: '';
  position: relative;
  left: 40%;
  top: 20%;
  width: 15%;
  height: 40%;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  display: none;
}

input[type="checkbox"]:checked:after {
  display: block;
}

input[type="checkbox"]:disabled:after {
  border-color: #7b7b7b;
}
<input type="checkbox"><br>
<input type="checkbox" checked><br>
<input type="checkbox" disabled><br>
<input type="checkbox" disabled checked><br>


আমার লেখার পরে যদি পাঠ্যটি বিন্যস্ত হয় না এমন কেউ যদি পরামর্শ দিতে পারে তবে আমি তা জানতে আগ্রহী! সিএসএস সূচনা এখানে।
আগ্রাসন

8

আপনি কেবল appearance: noneআধুনিক ব্রাউজারগুলিতে ব্যবহার করতে পারেন , যাতে কোনও ডিফল্ট স্টাইলিং না থাকে এবং আপনার সমস্ত শৈলী সঠিকভাবে প্রয়োগ করা হয়:

input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: inline-block;
  width: 2em;
  height: 2em;
  border: 1px solid gray;
  outline: none;
  vertical-align: middle;
}

input[type=checkbox]:checked {
  background-color: blue;
}

1
এটি একটি বিশেষত সংক্ষিপ্ত উদাহরণস্বরূপ যা আমার মামলার পক্ষে কাজ করেছে, ধন্যবাদ!
জেসন আর স্টিভেন্স সিএফএ

8

কোনও জাভাস্ক্রিপ্ট, কোনও বাহ্যিক গ্রন্থাগার, অ্যাক্সেসিবিলিটি সম্মতি এবং চেকবক্স এবং রেডিও বোতাম উভয়ই চান?

আমি স্ক্রলিং হয়েছে এবং স্ক্রলিং এবং টন এই উত্তরের কেবল আউট ডোর অভিগম্যতা নিক্ষেপ এবং WCAG লঙ্ঘন একাধিক উপায়। আপনি যখন কাস্টম চেকবক্স ব্যবহার করছেন আপনি কাস্টম রেডিও বোতামগুলিও চান তখন বেশিরভাগ সময় থেকেই আমি রেডিও বোতামগুলিতে ছুঁড়েছি।

ফিডলস :

  • চেকবক্স - খাঁটি সিএসএস - তৃতীয় পক্ষের লাইব্রেরি থেকে মুক্ত
  • রেডিও বোতাম - খাঁটি সিএসএস - তৃতীয় পক্ষের লাইব্রেরি থেকে মুক্ত
  • চেকবক্সগুলি * যা ফন্টআউইজ ব্যবহার করে তবে গ্লাইফিকনস ইত্যাদির সাহায্যে সহজেই অদলবদল করা যায়

পক্ষের কাছে মরহুম কিন্তু একরকম এই এখনও কঠিন 2019 তাই আমি আমার তিন সমাধান যা হয় যুক্ত করেছেন 2020 প্রবেশযোগ্য এবং সহজ ড্রপ করতে।

এগুলি সমস্ত জাভাস্ক্রিপ্ট মুক্ত , বাহ্যিক গ্রন্থাগার বিনামূল্যে * এবং অ্যাক্সেসযোগ্য ...

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

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

দীর্ঘতর ব্যাখ্যা: আমার এমন একটি সমাধানের দরকার ছিল যা ডাব্লুসিএজি লঙ্ঘন করে না, জাভাস্ক্রিপ্ট বা বাহ্যিক গ্রন্থাগারগুলির উপর নির্ভর করে না এবং এটি ট্যাবিং বা স্পেসবারের মতো কীবোর্ড নেভিগেশন নির্বাচন করতে বাধা দেয় না, যা ফোকাস ইভেন্টগুলিকে অনুমতি দেয়, এমন একটি সমাধান যা অক্ষম চেকবক্সগুলিকে অনুমতি দেয় যা উভয় চেক করা হয় এবং অবারিত, এবং পরিশেষে একটি সমাধান যেখানে আমি চেকবক্সটি চেহারা কাস্টমাইজ করতে পারেন তবে আমি বিভিন্ন সঙ্গে চান background-colorএর, border-radius, svgব্যাকগ্রাউন্ড ইত্যাদি

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

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

input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  z-index: -1;
}

/* Text color for the label */
input[type="checkbox"]+span {
  cursor: pointer;
  font: 16px sans-serif;
  color: black;
}

/* Checkbox un-checked style */
input[type="checkbox"]+span:before {
  content: '';
  border: 1px solid grey;
  border-radius: 3px;
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 0.5em;
  margin-top: 0.5em;
  vertical-align: -2px;
}

/* Checked checkbox style (in this case the background is red) */
input[type="checkbox"]:checked+span:before {
  /* NOTE: Replace the url with a path to an SVG of a checkmark to get a checkmark icon */
  background-image: url('https://cdnjs.cloudflare.com/ajax/libs/ionicons/4.5.6/collection/build/ionicons/svg/ios-checkmark.svg');
  background-repeat: no-repeat;
  background-position: center;
  /* The size of the checkmark icon, you may/may not need this */
  background-size: 25px;
  border-radius: 2px;
  background-color: #e7ffba;
  color: white;
}

/* Adding a dotted border around the active tabbed-into checkbox */
input[type="checkbox"]:focus+span:before,
input[type="checkbox"]:not(:disabled)+span:hover:before {
  /* Visible in the full-color space */
  box-shadow: 0px 0px 0px 2px rgba(0, 150, 255, 1);

  /* Visible in Windows high-contrast themes
     box-shadow will be hidden in these modes and
     transparency will not be hidden in high-contrast
     thus box-shadow will not show but the outline will
     providing accessibility */
  outline-color: transparent; /*switch to transparent*/
  outline-width: 2px;
  outline-style: dotted;
  }


/* Disabled checkbox styles */
input[type="checkbox"]:disabled+span {
  cursor: default;
  color: black;
  opacity: 0.5;
}

/* Styles specific to this fiddle that you do not need */
body {
  padding: 1em;
}
h1 {
  font-size: 18px;
}
<h1>
  NOTE: Replace the url for the background-image in CSS with a path to an SVG in your solution or CDN. This one was found from a quick google search for a checkmark icon cdn
</h1>

<label>
  <input type="checkbox">
  <span>Try using tab and space</span>
</label>

<br>

<label>
  <input type="checkbox" checked disabled>
  <span>Disabled Checked Checkbox</span>
</label>

<br>

<label>
  <input type="checkbox" disabled>
  <span>Disabled Checkbox</span>
</label>
<br>

<label>
  <input type="checkbox">
  <span>Normal Checkbox</span>
</label>

<br>

<label>
  <input type="checkbox">
  <span>Another Normal Checkbox</span>
</label>


আমি এখানেও আমার নিজের উত্তর যুক্ত করেছি , আশা করি এটি কাউকে সহায়তা করে। আমি তাদের আমার ব্যবহার। :) আশা করি কেউ এটি দেখতে পাবে।
মিঃ পলিহর্ইল

6

এখানে কোনও jQuery বা জাভাস্ক্রিপ্ট কোড ছাড়াই একটি সহজ সিএসএস সমাধান।

আমি ফন্টএউসোম আইকন ব্যবহার করছি তবে আপনি যে কোনও চিত্র ব্যবহার করতে পারেন

input[type=checkbox] {
  display: inline-block;
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  visibility: hidden;
  font-size: 14px;
}

input[type=checkbox]:before {
  content: @fa-var-square-o;
  visibility: visible;
  /*font-size: 12px;*/
}

input[type=checkbox]:checked:before {
  content: @fa-var-check-square-o;
}

1
অন্যান্য উত্তরগুলির চেয়ে পৃথক, এগুলির অতিরিক্ত labelবা spanউপাদান তৈরির প্রয়োজন হয় না । এটা ঠিক কাজ করে!
কুর্টপ্রেস্টন

আপনি কি একটি উদাহরণ বা একটি ডেমো বা কমপক্ষে এইচটিএমএল অংশ দেখাতে পারেন, যার সাহায্যে এই সিএসএস কোডটি কাজ করছে? @aWebDeveloper
সানডোর জুবোলি

@aWebDeveloper হোম পেজে একটি উত্তর বা প্রশ্ন ঠাঁই করার জন্য ইনেন সম্পাদনা করা বিধি বিপরীতে।
টাইলারএইচ

@aWebDeveloper আপনি একটি নিষ্ক্রিয় প্রশ্নে একটি পুরানো উত্তর সম্পাদনা করেছেন, যা এটি প্রথম পৃষ্ঠায় বাধা দেয় এবং সরাসরি আপনার উত্তরের একটি লিঙ্ক সরবরাহ করে। উত্তরটি যুক্ত করতে বা পরিবর্তন করতে যদি আপনার প্রাসঙ্গিক তথ্য থাকে তবে এটি ঠিক আছে। আপনি যা কিছু করেছেন তা আপনার একটি বাক্যকে একটি উদ্ধৃতি ব্লকে এম্বেড করা ছিল, যা কারও পক্ষে কার্যকর নয়।
টাইলার

@ ভাদিম ওভচিনিকভকে কাজ করা উচিত ... এখানে ক্রোম নির্দিষ্ট কিছু নেই
#WebDeveloper

6

আমার গুগলিং থেকে, এটি চেকবক্স স্টাইলিংয়ের সহজতম উপায়। আপনার নকশার উপর ভিত্তি করে কেবল যুক্ত করুন :afterএবং :checked:afterসিএসএস করুন।

body{
  background: #DDD;
}
span{
  margin-left: 30px;
}
input[type=checkbox] {
    cursor: pointer;
    font-size: 17px;
    visibility: hidden;
    position: absolute;
    top: 0;
    left: 0;
    transform: scale(1.5);
}

input[type=checkbox]:after {
    content: " ";
    background-color: #fff;
    display: inline-block;
    color: #00BFF0;
    width: 14px;
    height: 19px;
    visibility: visible;
    border: 1px solid #FFF;
    padding: 0 3px;
    margin: 2px 0;
    border-radius: 8px;
    box-shadow: 0 0 15px 0 rgba(0,0,0,0.08), 0 0 2px 0 rgba(0,0,0,0.16);
}

input[type=checkbox]:checked:after {
    content: "\2714";
    display: unset;
    font-weight: bold;
}
<input type="checkbox"> <span>Select Text</span>


সিউডো-উপাদানগুলিকে সমর্থন করে এমন ব্রাউজারগুলির জন্য খুব দুর্দান্ত সমাধান। :)
জিন-ফ্রান্সোইস বিউচ্যাম্প

6

প্লেইন CSS3 দিয়ে চেকবক্স শৈলীটি সংশোধন করুন, কোনও জেএস এবং এইচটিএমএল ম্যানিপুলেশন প্রয়োজন নেই।

.form input[type="checkbox"]:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  content: "\f096";
  opacity: 1 !important;
  margin-top: -25px;
  appearance: none;
  background: #fff;
}

.form input[type="checkbox"]:checked:before {
  content: "\f046";
}

.form input[type="checkbox"] {
  font-size: 22px;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />

<form class="form">
  <input type="checkbox" />
</form>


@VadimOvchinnikov আমরা এক সমাধান যা কিছু html গঠন .. নিম্নলিখিত প্রয়োজন আছে stackoverflow.com/questions/23305780/...
BEJGAM শিব প্রসাদ

4

একটি সাধারণ এবং লাইটওয়েট টেম্পলেট:

input[type=checkbox] {
  cursor: pointer;
}

input[type=checkbox]:checked:before {
  content: "\2713";
  background: #fffed5;
  text-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
  font-size: 20px;
  text-align: center;
  line-height: 8px;
  display: inline-block;
  width: 13px;
  height: 15px;
  color: #00904f;
  border: 1px solid #cdcdcd;
  border-radius: 4px;
  margin: -3px -3px;
  text-indent: 1px;
}

input[type=checkbox]:before {
  content: "\202A";
  background: #ffffff;
  text-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
  font-size: 20px;
  text-align: center;
  line-height: 8px;
  display: inline-block;
  width: 13px;
  height: 15px;
  color: #00904f;
  border: 1px solid #cdcdcd;
  border-radius: 4px;
  margin: -3px -3px;
  text-indent: 1px;
}
<input type="checkbox" checked="checked">checked1<br>
<input type="checkbox">unchecked2<br>
<input type="checkbox" checked="checked" id="id1">
<label for="id1">checked2+label</label><br>
<label for="id2">unchecked2+label+rtl</label>
<input type="checkbox" id="id2">
<br>

https://jsfiddle.net/rvgccn5b/


1
এর জন্য সিউডোলেমেন্টগুলি inputকেবল ক্রোমে সমর্থিত, আপনার কোড প্রতিটি ব্রাউজারে একই রকম কাজ করে না।
ভাদিম ওভচিনিকভ

4

আমি মনে করি এটির সহজতম উপায় হ'ল এটিকে স্টাইল করা labelএবং checkboxঅদৃশ্য করে তোলা।

এইচটিএমএল

<input type="checkbox" id="first" />
<label for="first">&nbsp;</label>

সিএসএস

checkbox {
  display: none;
}

checkbox + label {
  /* Style for checkbox normal */
  width: 16px;
  height: 16px;
}

checkbox::checked + label,
label.checked {
  /* Style for checkbox checked */
}

checkboxযদিও এটা লুকানো হয়, এখনও অ্যাক্সেস করা যাবে, এবং যখন একটি ফর্ম জমা হয় এর মান পাঠানো হবে। পুরানো ব্রাউজারগুলির জন্য আপনার labelজাভাস্ক্রিপ্ট ব্যবহার করে চেক করা ক্লাসটি পরিবর্তন করতে হতে পারে কারণ আমি মনে করি না যে ইন্টারনেট এক্সপ্লোরারের পুরানো সংস্করণগুলি এর ::checkedউপর বুঝতে পারে checkbox


4
আপনার উত্তর এবং আমার মধ্যে পার্থক্য ঠিক কি?
ব্লেক পেটারসন

@ ব্ল্যাকপিটারসন আপনার সঠিক, :: চেক করা ঠিক ভুল (আমি এমনকি এটির অনুমতি দেওয়ার ক্ষেত্রেও চেষ্টা করেছি);)
এএসপি

7
এটি একটি খারাপ উত্তর। (ক) ::checkedভুল - এটি হওয়া উচিত :checked। (খ) checkboxভুল - এটি হওয়া উচিত[type=checkbox]
ক্রিস মরগান

4

বাবা! এই সমস্ত কাজের ক্ষেত্রগুলি আমাকে এই সিদ্ধান্তে নিয়ে গেছে যে আপনি যদি এটি স্টাইল করতে চান তবে এইচটিএমএল চেকবাক্স ধরণের স্তন্যপান করে।

পূর্বসূরি হিসাবে, এটি কোনও সিএসএস বাস্তবায়ন নয়। আমি কেবল ভেবেছিলাম যে অন্য কারওর পক্ষে যদি এটির কাজে লাগতে পারে তবে আমি তার সাথে ভাগ করে নেব।


আমি এইচটিএমএল 5 canvasউপাদান ব্যবহার করেছি ।

এর বিপরীতটি হ'ল আপনাকে বাহ্যিক চিত্র ব্যবহার করতে হবে না এবং সম্ভবত কিছু ব্যান্ডউইথ সংরক্ষণ করতে পারে।

খারাপ দিকটি হ'ল যদি কোনও কারণে কোনও ব্রাউজার যদি এটি সঠিকভাবে রেন্ডার করতে না পারে তবে কোনও ফলব্যাক নেই। যদিও এটি 2017 এ ইস্যু থেকে যায় তা বিতর্কযোগ্য।

হালনাগাদ

আমি পুরানো কোডটি দেখতে পেয়েছি বেশ কুৎসিত, তাই আমি এটিকে পুনরায় লেখার সিদ্ধান্ত নিয়েছি।

Object.prototype.create = function(args){
    var retobj = Object.create(this);

    retobj.constructor(args || null);

    return retobj;
}

var Checkbox = Object.seal({
    width: 0,
    height: 0,
    state: 0,
    document: null,
    parent: null,
    canvas: null,
    ctx: null,

    /*
     * args:
     * name      default             desc.
     *
     * width     15                  width
     * height    15                  height
     * document  window.document     explicit document reference
     * target    this.document.body  target element to insert checkbox into
     */
    constructor: function(args){
        if(args === null)
            args = {};

        this.width = args.width || 15;
        this.height = args.height || 15;
        this.document = args.document || window.document;
        this.parent = args.target || this.document.body;
        this.canvas = this.document.createElement("canvas");
        this.ctx = this.canvas.getContext('2d');

        this.canvas.width = this.width;
        this.canvas.height = this.height;
        this.canvas.addEventListener("click", this.ev_click(this), false);
        this.parent.appendChild(this.canvas);
        this.draw();
    },

    ev_click: function(self){
        return function(unused){
            self.state = !self.state;
            self.draw();
        }
    },

    draw_rect: function(color, offset){
        this.ctx.fillStyle = color;
        this.ctx.fillRect(offset, offset,
                this.width - offset * 2, this.height - offset * 2);
    },

    draw: function(){
        this.draw_rect("#CCCCCC", 0);
        this.draw_rect("#FFFFFF", 1);

        if(this.is_checked())
            this.draw_rect("#000000", 2);
    },

    is_checked: function(){
        return !!this.state;
    }
});

এখানে একটি ওয়ার্কিং ডেমো রয়েছে

নতুন সংস্করণটি চেকবক্সগুলি তৈরি করার জন্য একটি দক্ষ সিস্টেম তৈরি করতে প্রোটোটাইপ এবং ডিফারেনশিয়াল উত্তরাধিকার ব্যবহার করে। একটি চেকবক্স তৈরি করতে:

var my_checkbox = Checkbox.create();

এটি তাত্ক্ষণিকভাবে ডিওমে চেকবক্সটি যুক্ত করবে এবং ইভেন্টগুলি হুক আপ করবে। একটি চেকবক্স চেক করা হয়েছে কিনা তা অনুসন্ধান করতে:

my_checkbox.is_checked(); // True if checked, else false

এছাড়াও লক্ষণীয় গুরুত্বপূর্ণ যে আমি লুপ থেকে মুক্তি পেয়েছি।

আপডেট 2

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

Object.prototype.create = function(args){
    var retobj = Object.create(this);

    retobj.constructor(args || null);

    return retobj;
}

Object.prototype.extend = function(newobj){
    var oldobj = Object.create(this);

    for(prop in newobj)
        oldobj[prop] = newobj[prop];

    return Object.seal(oldobj);
}

var Checkbox = Object.seal({
    width: 0,
    height: 0,
    state: 0,
    document: null,
    parent: null,
    canvas: null,
    ctx: null,

    /*
     * args:
     * name      default             desc.
     *
     * width     15                  width
     * height    15                  height
     * document  window.document     explicit document reference
     * target    this.document.body  target element to insert checkbox into
     */
    constructor: function(args){
        if(args === null)
            args = {};

        this.width = args.width || 15;
        this.height = args.height || 15;
        this.document = args.document || window.document;
        this.parent = args.target || this.document.body;
        this.canvas = this.document.createElement("canvas");
        this.ctx = this.canvas.getContext('2d');

        this.canvas.width = this.width;
        this.canvas.height = this.height;
        this.canvas.addEventListener("click", this.ev_click(this), false);
        this.parent.appendChild(this.canvas);
        this.draw();
    },

    ev_click: function(self){
        return function(unused){
            self.state = !self.state;
            self.draw();
        }
    },

    draw_rect: function(color, offsetx, offsety){
        this.ctx.fillStyle = color;
        this.ctx.fillRect(offsetx, offsety,
                this.width - offsetx * 2, this.height - offsety * 2);
    },

    draw: function(){
        this.draw_rect("#CCCCCC", 0, 0);
        this.draw_rect("#FFFFFF", 1, 1);
        this.draw_state();
    },

    draw_state: function(){
        if(this.is_checked())
            this.draw_rect("#000000", 2, 2);
    },

    is_checked: function(){
        return this.state == 1;
    }
});

var Checkbox3 = Checkbox.extend({
    ev_click: function(self){
        return function(unused){
            self.state = (self.state + 1) % 3;
            self.draw();
        }
    },

    draw_state: function(){
        if(this.is_checked())
            this.draw_rect("#000000", 2, 2);

        if(this.is_partial())
            this.draw_rect("#000000", 2, (this.height - 2) / 2);
    },

    is_partial: function(){
        return this.state == 2;
    }
});

আমি Checkboxসর্বশেষ স্নিপেটে ব্যবহৃত সামান্য পরিমাণে পরিবর্তন করেছি যাতে এটি আরও জেনেরিক হয়, এটির 3 টি স্টেট রয়েছে এমন একটি চেকবক্স দিয়ে এটি "প্রসারিত" করা সম্ভব করে তোলে। এখানে একটি ডেমো রয়েছে । আপনি দেখতে পাচ্ছেন, এর মধ্যে ইতিমধ্যে অন্তর্নির্মিত চেকবক্সের চেয়ে বেশি কার্যকারিতা রয়েছে।

আপনি যখন জাভাস্ক্রিপ্ট এবং সিএসএসের মধ্যে নির্বাচন করছেন তখন কিছু বিবেচনা করার বিষয়।

পুরানো, খারাপভাবে ডিজাইন করা কোড

ওয়ার্কিং ডেমো

প্রথমে একটি ক্যানভাস স্থাপন করুন

var canvas = document.createElement('canvas'),
    ctx = canvas.getContext('2d'),
    checked = 0; // The state of the checkbox
canvas.width = canvas.height = 15; // Set the width and height of the canvas
document.body.appendChild(canvas);
document.body.appendChild(document.createTextNode(' Togglable Option'));

এরপরে, ক্যানভাসটি নিজেই আপডেট করার জন্য একটি উপায় তৈরি করুন।

(function loop(){
  // Draws a border
  ctx.fillStyle = '#ccc';
  ctx.fillRect(0,0,15,15);
  ctx.fillStyle = '#fff';
  ctx.fillRect(1, 1, 13, 13);
  // Fills in canvas if checked
  if(checked){
    ctx.fillStyle = '#000';
    ctx.fillRect(2, 2, 11, 11);
  }
  setTimeout(loop, 1000/10); // Refresh 10 times per second
})();

শেষ অংশটি এটি ইন্টারেক্টিভ করা। ভাগ্যক্রমে, এটি বেশ সহজ:

canvas.onclick = function(){
  checked = !checked;
}

এটি আপনার যেখানে জাভাস্ক্রিপ্টে অদ্ভুত ইভেন্ট হ্যান্ডলিং মডেলের কারণে আইইতে সমস্যা হতে পারে।


আমি আশা করি এটা কারো সাহায্যে লাগবে; এটা অবশ্যই আমার প্রয়োজন অনুসারে।


নোট করুন যে ক্যানভাস বাস্তবায়ন, চেকবক্সগুলির অনুকরণ হিসাবে, অন্তর্নির্মিত চেকবক্সগুলির চেয়ে আরও কার্যকারিতা মঞ্জুর করে। উদাহরণস্বরূপ, "মাল্টি-স্টেট" চেকবক্সগুলি (যেমন unchecked (e.g. unchecked -> checked -> "kinda" checked -> unchecked; রাজ্যগুলি "স্পষ্টিক মিথ্যা", "স্পষ্টত সত্য", "ডিফল্ট ব্যবহার" উদাহরণস্বরূপ অভিনব স্টাফ )। আমি উত্তরে একটি উদাহরণ যুক্ত করার বিষয়ে বিবেচনা করছি।
ব্র্যাডেন সেরা

আমার মতে ভয়ানক ধারণা।

@ নীল দয়া করে বিশদ দিন
ব্র্যাডেন সেরা

চাকা পুনরুদ্ধার কেন?

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

3

এটি সহজতম উপায় এবং এই শৈলীটি কোন চেকবক্সগুলি দিতে হবে তা চয়ন করতে পারেন।

সিএসএস:

.check-box input {
  display: none;
}

.check-box span:before {
  content: ' ';
  width: 20px;
  height: 20px;
  display: inline-block;
  background: url("unchecked.png");
}

.check-box input:checked + span:before {
  background: url("checked.png");
}

এইচটিএমএল:

<label class="check-box">
  <input type="checkbox">
  <span>Check box Text</span>
</label>

3

কোন জাভাস্ক্রিপ্ট বা jQuery প্রয়োজন

আপনার চেকবক্স শৈলীর সহজ উপায় পরিবর্তন করুন।

input[type="checkbox"] {
  display: none;
  border: none !important;
  box-shadow: none !important;
}

input[type="checkbox"] + label span {
  background: url(http://imgh.us/uncheck.png);
  width: 49px;
  height: 49px;
  display: inline-block;
  vertical-align: middle;
}

input[type="checkbox"]:checked + label span {
  background: url(http://imgh.us/check_2.png);
  width: 49px;
  height: 49px;
  vertical-align: middle;
}
<input type="checkbox" id="option" />
<label for="option"> <span></span> Click me </label>

এখানে জেএসফিডাল লিঙ্ক


চেকবক্সটি প্রদর্শিত হচ্ছে না, কারণ এটি img.us/uncheck.png এবং imgh.us/check_2.png চিত্র ফাইলগুলির বাহ্যিক লিঙ্কগুলির উপর নির্ভর করে যা অনলাইনে আর উপলব্ধ নেই।
jkdev

2

এখানে একটি সিএসএস / এইচটিএমএল-কেবল সংস্করণ, কোনও জিকুরি বা জাভাস্ক্রিপ্টের প্রয়োজন নেই, সহজ এবং পরিষ্কার HTML এবং সত্যই সহজ এবং সংক্ষিপ্ত সিএসএস।

এখানে জেএসফিডাল

http://jsfiddle.net/v71kn3pr/

এইচটিএমএল:

<div id="myContainer">
    <input type="checkbox" name="myCheckbox" id="myCheckbox_01_item" value="red" />
    <label for="myCheckbox_01_item" class="box"></label>
    <label for="myCheckbox_01_item" class="text">I accept the Terms of Use.</label>
</div>

এখানে সিএসএস রয়েছে

#myContainer {
    outline: black dashed 1px;
    width: 200px;
}
#myContainer input[type="checkbox"][name="myCheckbox"] {
    display: none;
}
#myContainer input[type="checkbox"][name="myCheckbox"]:not(:checked) + label.box {
    display: inline-block;
    width: 25px;
    height: 25px;
    border: black solid 1px;
    background: #FFF ;
    margin: 5px 5px;
}
#myContainer input[type="checkbox"][name="myCheckbox"]:checked + label.box {
    display: inline-block;
    width: 25px;
    height: 25px;
    border: black solid 1px;
    background: #F00;
    margin: 5px 5px;
}
#myContainer input[type="checkbox"][name="myCheckbox"] + label + label.text {
    font: normal 12px arial;
    display: inline-block;
    line-height: 27px;
    vertical-align: top;
    margin: 5px 0px;
}

এটি স্বতন্ত্র রেডিও বা চেকবক্স, চেকবাক্সগুলির গ্রুপস এবং রেডিও বোতামগুলির গোষ্ঠী রাখতে সক্ষম হওয়ার জন্য অভিযোজিত হতে পারে।

এই এইচটিএমএল / সিএসএস, আপনাকে লেবেলে ক্লিক ক্যাপচার করার অনুমতি দেয়, সুতরাং আপনি কেবলমাত্র লেবেলে ক্লিক করলেও চেকবক্সটি চেক করা হবে এবং চেক করা যাবে না।

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


2
**Custom checkbox with css**  (WebKit browser solution only Chrome, Safari, Mobile browsers)

    <input type="checkbox" id="cardAccptance" name="cardAccptance" value="Yes">
    <label for="cardAccptance" class="bold"> Save Card for Future Use</label>

    /* The checkbox-cu */

    .checkbox-cu {
        display: block;
        position: relative;
        padding-left: 35px;
        margin-bottom: 0;
        cursor: pointer;
        font-size: 16px;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
    }


    /* Hide the browser's default checkbox-cu */

    .checkbox-cu input {
        position: absolute;
        opacity: 0;
        cursor: pointer;
        height: 0;
        width: 0;
    }


    /* Create a custom checkbox-cu */

    .checkmark {
        position: absolute;
        top: 4px;
        left: 0;
        height: 20px;
        width: 20px;
        background-color: #eee;
        border: 1px solid #999;
        border-radius: 0;
        box-shadow: none;
    }


    /* On mouse-over, add a grey background color */

    .checkbox-cu:hover input~.checkmark {
        background-color: #ccc;
    }


    /* When the checkbox-cu is checked, add a blue background */

    .checkbox-cu input:checked~.checkmark {
        background-color: transparent;
    }


    /* Create the checkmark/indicator (hidden when not checked) */

    .checkmark:after {
        content: "";
        position: absolute;
        display: none;
    }


    /* Show the checkmark when checked */

    .checkbox-cu input:checked~.checkmark:after {
        display: block;
    }


    /* Style the checkmark/indicator */

    .checkbox-cu .checkmark::after {
        left: 7px;
        top: 3px;
        width: 6px;
        height: 9px;
        border: solid #28a745;
        border-width: 0 2px 2px 0;
        -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        transform: rotate(45deg);
        z-index: 100;
    }

1
input[type=checkbox].css-checkbox {
    position: absolute;
    overflow: hidden;
    clip: rect(0 0 0 0);
    height: 1px;
    width: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
}

input[type=checkbox].css-checkbox + label.css-label {
    padding-left: 20px;
    height: 15px;
    display: inline-block;
    line-height: 15px;
    background-repeat: no-repeat;
    background-position: 0 0;
    font-size: 15px;
    vertical-align: middle;
    cursor: pointer;
}

input[type=checkbox].css-checkbox:checked + label.css-label {
    background-position: 0 -15px;
}

.css-label{
    background-image:url(http://csscheckbox.com/checkboxes/dark-check-green.png);
}

একটি ব্যাখ্যা ক্রম হবে।
পিটার মর্টেনসেন

1

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

এই সমাধান সম্ভবত রেডিও বোতাম ফিট করে।

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

http://jsfiddle.net/o0xo13yL/1/

label {
    display: inline-block;
    position: relative; /* Needed for checkbox absolute positioning */
    background-color: #eee;
    padding: .5rem;
    border: 1px solid #000;
    border-radius: .375rem;
    font-family: "Courier New";
    font-size: 1rem;
    line-height: 1rem;
}

label > input[type="checkbox"] {
    display: block;
    position: absolute; /* Remove it from the flow */
    width: 100%;
    height: 100%;
    margin: -.5rem; /* Negative the padding of label to cover the "button" */
    cursor: pointer;
    opacity: 0; /* Make it transparent */
    z-index: 666; /* Place it on top of everything else */
}

label > input[type="checkbox"] + span {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border: 1px solid #000;
    margin-right: .5rem;
}

label > input[type="checkbox"]:checked + span {
    background-color: #666;
}

<label>
    <input type="checkbox" />
    <span>&nbsp;</span>Label text
</label>

1

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

চেকবক্সের জন্য এইচটিএমএল তৈরি করুন:

<div class='custom-checkbox'>
    <input type='checkbox' />
    <label>
        <span></span>
        Checkbox label
    </label>
</div>

রঙ লেবেল পরিবর্তন করতে চেকবক্সের জন্য এই স্টাইলটি প্রয়োগ করুন

<style>
    .custom-checkbox {
        position: relative;
    }
    .custom-checkbox input{
        position: absolute;
        left: 0;
        top: 0;
        height:15px;
        width: 50px;    /* Expand the checkbox so that it covers */
        z-index : 1;    /* the label and span, increase z-index to bring it over */
        opacity: 0;     /* the label and set opacity to 0 to hide it. */
    }
    .custom-checkbox input+label {
        position: relative;
        left: 0;
        top: 0;
        padding-left: 25px;
        color: black;
    }
    .custom-checkbox input+label span {
        position: absolute;  /* a small box to display as checkbox */
        left: 0;
        top: 0;
        height: 15px;
        width: 15px;
        border-radius: 2px;
        border: 1px solid black;
        background-color: white;
    }
    .custom-checkbox input:checked+label { /* change label color when checked */
        color: orange;
    }
    .custom-checkbox input:checked+label span{ /* change span box color when checked */
        background-color: orange;
        border: 1px solid orange;
    }
</style>

1

দেখে মনে হচ্ছে আপনি কেবল সিএসএস ব্যবহার করে গ্রেস্কেল-এ চেকবাক্সের রঙ পরিবর্তন করতে পারেন।

নিম্নলিখিতটি চেকবাক্সগুলিকে কালো থেকে ধূসর রূপান্তরিত করে (যা আমি যা চেয়েছিলাম তা সম্পর্কে)

input[type="checkbox"] {
    opacity: .5;
}

এটি সীমান্তকেও হালকা করে তোলে। এছাড়াও, আপনি যদি চেক করেন তবে সত্যই আপনি দেখতে পারবেন না।
রাচেল এস

1

এসসিএসএস / এসএএসএস বাস্তবায়ন

আরও আধুনিক পদ্ধতি

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

label.checkbox {
  input[type="checkbox"] {
    visibility: hidden;
    display: block;
    height: 0;
    width: 0;
    position: absolute;
    overflow: hidden;

    &:checked + span {
      background: $accent;
    }
  }

  span {
    cursor: pointer;
    height: 15px;
    width: 15px;
    border: 1px solid $accent;
    border-radius: 2px;
    display: inline-block;
    transition: all 0.2s $interpol;
  }
}
<label class="checkbox">
    <input type="checkbox" />
    <span></span>
    Label text
</label>


0

সতর্কতা : লেখার সময় নিম্নলিখিতটি সত্য ছিল তবে এর মধ্যেই বিষয়গুলি এগিয়েছে।

আফাইক আধুনিক ব্রাউজারগুলি নেটিভ ওএস নিয়ন্ত্রণ ব্যবহার করে চেকবক্সগুলি প্রদর্শন করে, তাই তাদের স্টাইল করার কোনও উপায় নেই।


30
এটি '10 এ সত্য হতে পারে তবে এখন নয়, আপনার এই উত্তরটি মুছে ফেলা উচিত।
মিশা কে

3
এটি এখনও সত্য - সমস্ত আধুনিক ব্রাউজার নেটিভ ওএস নিয়ন্ত্রণ ব্যবহার করে চেকবক্সগুলি প্রদর্শন করে। ঠিক এই যে এই সীমাবদ্ধতাটি ঘিরে কাজ করার জন্য কিছু দুর্দান্ত কৌশল রয়েছে।
গাল

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