2019 হিসাবে উত্তর:
চেকবাক্স হ্যাক ব্যবহার করে কেবলমাত্র সিএসএস ব্যবহার করে কোনও আসল ক্লিক ইভেন্ট সিমুলেট করার সর্বোত্তম উপায় (আসলে একমাত্র উপায় *) (কেবলমাত্র কোনও উপাদানকে ঘুরিয়ে দেওয়া বা কোনও উপাদানকে সক্রিয় করে তোলা ) না is এটি লেবেলের বৈশিষ্ট্যের মাধ্যমে label
কোনও <input type="checkbox">
উপাদানকে সংযুক্ত করে কাজ করে for=""
।
এই বৈশিষ্ট্যের ব্রড ব্রাউজার সমর্থন রয়েছে ( :checked
সিউডো-ক্লাসটি আই 9 +)।
একটি একই মান প্রয়োগ করুন <input>
'র আইডি অ্যাট্রিবিউটে একটি প্রবন্ধসহ <label>
এর for=""
অ্যাট্রিবিউট, এবং আপনি পুনরায় শৈলী ব্রাউজার দিয়ে ক্লিক ট্যাগ বলতে পারেন :checked
সিউডো-বর্গ, আসলে ধন্যবাদ যে একটি লেবেল এ ক্লিক করলে চেক করবে এবং আনচেক "যুক্ত" <input type="checkbox">
।
* আপনি এর মাধ্যমে একটি "নির্বাচিত হয়েছে" এই ইভেন্টের সিমুলেট করতে :active
বা :focus
(ক বোতাম স্বাভাবিকভাবে যে জন্য যেমন IE7 + এ সিউডো-বর্গ 50px
চওড়া, আপনি তার প্রস্থ যখন পরিবর্তন করতে পারেন active
: #btnControl:active { width: 75px; }
), কিন্তু সেই সত্য নয় ঘটনা "এ ক্লিক করুন"। উপাদানটি নির্বাচিত হওয়ার পরে পুরো সময় তারা "লাইভ" থাকে (যেমন Tabআপনার কীবোর্ডের সাহায্যে বিং করে), যা সত্য ক্লিকের ইভেন্টের থেকে কিছুটা আলাদা, যা কোনও ক্রিয়াকলাপ চালায় - সাধারণত - mouseUp
।
চেকবক্স হ্যাকের বেসিক ডেমো (আপনি যা জিজ্ঞাসা করছেন তার জন্য প্রাথমিক কোড কাঠামো):
label {
display: block;
background: lightgrey;
width: 100px;
height: 100px;
}
#demo:checked + label {
background: blue;
color: white;
}
<input type="checkbox" id="demo"/>
<label for="demo">I'm a square. Click me.</label>
এখানে আমি আমার মার্কআপে ইনপুট দেওয়ার ঠিক পরে লেবেলটি অবস্থান করেছি। এটি এমন যে আমি তত্ক্ষণাত আমার চেকবাক্স অনুসরণ করে কেবলমাত্র লেবেলটি নির্বাচন করতে সংলগ্ন ভাইবোন নির্বাচক ( +কী) ব্যবহার করতে পারি #demo
। যেহেতু :checked
সিউডো-ক্লাসটি চেকবাক্সে প্রযোজ্য তাই #demo:checked + label
কেবলমাত্র চেকবক্সটি চেক করা থাকলেই প্রযোজ্য।
ক্লিক করে একটি চিত্র পুনরায় আকার দেওয়ার জন্য ডেমো, যা আপনি যা জিজ্ঞাসা করছেন:
#btnControl {
display: none;
}
#btnControl:checked + label > img {
width: 70px;
height: 74px;
}
<input type="checkbox" id="btnControl"/>
<label class="btn" for="btnControl"><img src="http://placekitten.com/200/140" id="btnLeft" /></label>
সঙ্গে যে সত্তার বলেন, হয় কিছু খারাপ খবর। যেহেতু একটি লেবেল কেবল একবারে একটি ফর্ম নিয়ন্ত্রণের সাথে যুক্ত হতে পারে , তার অর্থ আপনি <label></label>
ট্যাগগুলির মধ্যে কেবল একটি বোতাম ফেলে দিতে পারেন না এবং একটি দিন কল করতে পারেন। যাইহোক, আমরা লেবেলটিকে চেহারা তৈরি করতে এবং কোনও HTML বোতামটি কীভাবে দেখায় এবং আচরণ করে তার থেকে মোটামুটিভাবে আচরণ করতে আমরা কিছু সিএসএস ব্যবহার করতে পারি ।
আপনি যা জিজ্ঞাসা করছেন তার উপরে এবং তার বাইরেও একটি বোতাম ক্লিক প্রভাব অনুকরণের জন্য ডেমো:
#btnControl {
display: none;
}
.btn {
width: 60px;
height: 20px;
background: silver;
border-radius: 5px;
padding: 1px 3px;
box-shadow: 1px 1px 1px #000;
display: block;
text-align: center;
background-image: linear-gradient(to bottom, #f4f5f5, #dfdddd);
font-family: arial;
font-size: 12px;
line-height:20px;
}
.btn:hover {
background-image: linear-gradient(to bottom, #c3e3fa, #a5defb);
}
.btn:active {
margin-left: 1px 1px 0;
box-shadow: -1px -1px 1px #000;
outline: 1px solid black;
-moz-outline-radius: 5px;
background-image: linear-gradient(to top, #f4f5f5, #dfdddd);
}
#btnControl:checked + label {
width: 70px;
height: 74px;
line-height: 74px;
}
<input type="checkbox" id="btnControl"/>
<label class="btn" for="btnControl">Click me!</label>
এই ডেমোতে বেশিরভাগ সিএসএস কেবল লেবেল উপাদানকে স্টাইল করার জন্য। যদি আপনার আসলে কোনও বোতামের প্রয়োজন না হয় এবং কোনও পুরানো উপাদানই পর্যাপ্ত হয়ে যায়, তবে আপনি উপরের আমার দ্বিতীয় ডেমোর মতো এই ডেমোতে প্রায় সমস্ত শৈলী সরাতে পারেন।
আপনি আরও খেয়াল করতে পারেন যে আমার সেখানে একটি উপসর্গযুক্ত সম্পত্তি আছে -moz-outline-radius
,। কিছুক্ষণ আগে, মজিলা ফায়ারফক্সে এই বিস্ময়কর অ-নির্দিষ্ট বৈশিষ্ট্য যুক্ত করেছে, তবে ওয়েবকিতের লোকেরা সিদ্ধান্ত নিয়েছে যে তারা দুর্ভাগ্যক্রমে এটি যুক্ত করতে যাচ্ছেনা। সুতরাং সিএসএসের সেই লাইনটি ফায়ারফক্স ব্যবহারকারীদের জন্য কেবল একটি প্রগতিশীল বর্ধন বিবেচনা করুন।
:active
মাউস ডাউন থাকাকালীন কাজ করে। আপনি যা করার চেষ্টা করছেন তার উপর নির্ভর করে আপনি CSS4 সিউডো-ক্লাস ব্যবহার করে এটিকে কাজ করতে সক্ষম হতে পারেন:target
।