Rincian Selektor Atribut dalam CSS
Artikel ini menjelaskan detail tentang pemilih atribut dalam CSS.
Anda dapat belajar cara menulis pencocokan maju, pencocokan mundur, dan pencocokan parsial untuk selektor atribut.
YouTube Video
HTML untuk Pratinjau
css-attribute-selector.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Pseudo Class/Element</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-attribute-selector.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Attribute Selectors</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header><h2>CSS Attribute Selectors</h2></header>
19 <article>
20 <h3>element[attribute]</h3>
21 <section>
22 <header><h4>CSS</h4></header>
23<pre class="sample">
24a[target] {
25 font-weight: bold;
26}
27</pre>
28 <header><h4>HTML</h4></header>
29<pre>
30<a href="https://example.com" target="_blank">Example Link (target="_blank")</a>
31<a href="https://example.com">Example Link (no target)</a>
32</pre>
33 <header><h4>HTML+CSS</h4></header>
34 <section class="sample-view">
35 <a href="https://example.com" target="_blank">Example Link (target="_blank")</a>
36 <a href="https://example.com">Example Link (no target)</a>
37 </section>
38 </section>
39 </article>
40 <article>
41 <h3>element[attribute=value] : =</h3>
42 <section>
43 <header><h4>CSS</h4></header>
44<pre class="sample">
45input[type="text"] {
46 border: 2px solid green;
47}
48</pre>
49 <header><h4>HTML</h4></header>
50<pre>
51<input type="text" placeholder="Enter text here">
52<input type="password" placeholder="Password (no border)">
53<input type="text" placeholder="Another text input">
54</pre>
55 <header><h4>HTML+CSS</h4></header>
56 <section class="sample-view">
57 <input type="text" placeholder="Enter text here">
58 <input type="password" placeholder="Password (no border)">
59 <input type="text" placeholder="Another text input">
60 </section>
61 </section>
62 </article>
63 <article>
64 <h3>element[attribute^=value] : ^=</h3>
65 <section>
66 <header><h4>CSS</h4></header>
67<pre class="sample">
68a[href^="https://"] {
69 font-weight: bold;
70}
71</pre>
72 <header><h4>HTML</h4></header>
73<pre>
74<a href="https://example.com">Secure Link (https)</a>
75<a href="http://example.com">Non-Secure Link (http)</a>
76<a href="https://another-example.com">Another Secure Link (https)</a>
77</pre>
78 <header><h4>HTML+CSS</h4></header>
79 <section class="sample-view">
80 <a href="https://example.com">Secure Link (https)</a>
81 <a href="http://example.com">Non-Secure Link (http)</a>
82 <a href="https://another-example.com">Another Secure Link (https)</a>
83 </section>
84 </section>
85 </article>
86 <article>
87 <h3>element[attribute$=value] : $=</h3>
88 <section>
89 <header><h4>CSS</h4></header>
90<pre class="sample">
91img[src$=".jpg"] {
92 border-radius: 10px;
93}
94</pre>
95 <header><h4>HTML</h4></header>
96<pre>
97<img src="image.jpg" alt="JPG Image" width="100">
98<img src="pattern.png" alt="PNG Image (no border radius)" width="100">
99<img src="example.jpg" alt="Another JPG Image" width="100">
100</pre>
101 <header><h4>HTML+CSS</h4></header>
102 <section class="sample-view">
103 <img src="image.jpg" alt="JPG Image" width="100">
104 <img src="pattern.png" alt="PNG Image (no border radius)" width="100">
105 <img src="example.jpg" alt="Another JPG Image" width="100">
106 </section>
107 </section>
108 </article>
109 <article>
110 <h3>element[attribute*=value] : *=</h3>
111 <section>
112 <header><h4>CSS</h4></header>
113<pre class="sample">
114p[class*="highlight"] {
115 background-color: yellow;
116}
117</pre>
118 <header><h4>HTML</h4></header>
119<pre>
120<p class="highlight-text">This paragraph is highlighted.</p>
121<p class="normal-text">This paragraph is not highlighted.</p>
122<p class="text-highlight-important">This is another highlighted paragraph.</p>
123</pre>
124 <header><h4>HTML+CSS</h4></header>
125 <section class="sample-view">
126 <p class="highlight-text">This paragraph is highlighted.</p>
127 <p class="normal-text">This paragraph is not highlighted.</p>
128 <p class="text-highlight-important">This is another highlighted paragraph.</p>
129 </section>
130 </section>
131 </article>
132 <article>
133 <h3>element[attribute~=value] : ~=</h3>
134 <section>
135 <header><h4>CSS</h4></header>
136<pre class="sample">
137div[class~="featured"] {
138 border: 1px solid red;
139}
140</pre>
141 <header><h4>HTML</h4></header>
142<pre>
143<div class="featured">This div is featured.</div>
144<div class="content featured">This div is also featured.</div>
145<div class="content">This div is not featured.</div>
146</pre>
147 <header><h4>HTML+CSS</h4></header>
148 <section class="sample-view">
149 <div class="featured">This div is featured.</div>
150 <div class="content featured">This div is also featured.</div>
151 <div class="content">This div is not featured.</div>
152 </section>
153 </section>
154 </article>
155 <article>
156 <h3>element[attribute|=value] : |=</h3>
157 <section>
158 <header><h4>CSS</h4></header>
159<pre class="sample">
160p[lang|="en"] {
161 font-style: italic;
162}
163</pre>
164 <header><h4>HTML</h4></header>
165<pre>
166<p lang="en">This paragraph is in English.</p>
167<p lang="en-US">This paragraph is in American English.</p>
168<p lang="fr">Ce paragraphe est en français.</p>
169</pre>
170 <header><h4>HTML+CSS</h4></header>
171 <section class="sample-view">
172 <p lang="en">This paragraph is in English.</p>
173 <p lang="en-US">This paragraph is in American English.</p>
174 <p lang="fr">Ce paragraphe est en français.</p>
175 </section>
176 </section>
177 </article>
178
179 <article>
180 <h3>CSS Attribute Selector Example : input[required] & input[placeholder]</h3>
181 <section>
182 <header><h4>CSS</h4></header>
183<pre class="sample">
184input[required] {
185 background-color: #ffcccc;
186}
187
188input[placeholder] {
189 font-style: italic;
190 color: #999;
191}
192</pre>
193 <header><h4>HTML</h4></header>
194<pre>
195<input type="text" required placeholder="Enter your name">
196<input type="email" required placeholder="Enter your email">
197<input type="text" placeholder="Optional field">
198</pre>
199 <header><h4>HTML+CSS</h4></header>
200 <section class="sample-view">
201 <input type="text" required placeholder="Enter your name">
202 <input type="email" required placeholder="Enter your email">
203 <input type="text" placeholder="Optional field">
204 </section>
205 </section>
206 </article>
207 <article>
208 <h3>CSS Attribute Selector Example : a[href^="https://"]</h3>
209 <section>
210 <header><h4>CSS</h4></header>
211<pre class="sample">
212a[href^="http://"] {
213 color: orange;
214}
215
216a[href^="https://"] {
217 color: green;
218}
219</pre>
220 <header><h4>HTML</h4></header>
221<pre>
222<a href="http://example.com">HTTP Link</a>
223<a href="https://secure.example.com">HTTPS Link</a>
224<a href="/relative/path">Relative Link</a>
225</pre>
226 <header><h4>HTML+CSS</h4></header>
227 <section class="sample-view">
228 <a href="http://example.com">HTTP Link</a>
229 <a href="https://secure.example.com">HTTPS Link</a>
230 <a href="/relative/path">Relative Link</a>
231 </section>
232 </section>
233 </article>
234 <article>
235 <h3>Attribute Selectors</h3>
236 <section>
237 <header><h4>CSS</h4></header>
238<pre class="sample">
239img[src$=".png"] {
240 border: 2px solid blue;
241}
242
243img[src$=".jpg"] {
244 opacity: 0.5;
245}
246</pre>
247 <header><h4>HTML</h4></header>
248<pre>
249<img src="pattern.png" alt="PNG Image" width="100">
250<img src="document.jpg" alt="JPEG Image" width="100">
251</pre>
252 <header><h4>HTML+CSS</h4></header>
253 <section class="sample-view">
254 <img src="pattern.png" alt="PNG Image" width="100">
255 <img src="image.jpg" alt="JPEG Image" width="100">
256 </section>
257 </section>
258 </article>
259
260 </main>
261</body>
262</html>
Rincian Selektor Atribut dalam CSS
Pemilih atribut CSS digunakan untuk memilih elemen HTML yang memiliki atribut tertentu. Ini memungkinkan Anda untuk menata elemen berdasarkan nilai atributnya. Kami sekarang akan menjelaskan langkah demi langkah dari dasar hingga penggunaan lanjutan pemilih atribut.
Tipe dan Sintaks Selektor Atribut
Ada berbagai jenis pemilih atribut. Di sini, kami akan melihat secara rinci setiap jenis pemilih.
Memilih Elemen dengan Atribut
1a[target] {
2 font-weight: bold;
3}
- Dengan menentukan nama atribut, Anda dapat memilih semua elemen yang memiliki atribut yang ditentukan.
- Dalam contoh ini, semua elemen
<a>
dengan atributtarget
memiliki teks yang ditebalkan.
Memilih Elemen dengan Nilai Atribut Tertentu
1input[type="text"] {
2 border: 2px solid green;
3}
- Dengan menggunakan
=
, Anda dapat memilih elemen yang nilai atributnya cocok persis dengan nilai tertentu. - Dalam contoh ini, semua elemen
<input>
dengan atributtype
yang diatur ke"text"
akan memiliki border berwarna hijau.
Memilih Elemen dengan Kesesuaian Nilai Atribut Sebagian
Anda dapat menentukan kecocokan sebagian dari nilai atribut menggunakan tiga pemilih berikut.
- Dimulai Dengan (
^=
)
1a[href^="https://"] {
2 font-weight: bold;
3}
- Memilih elemen di mana nilai atribut dimulai dengan string tertentu.
- Dalam contoh ini, semua link dengan atribut
href
yang dimulai dengan"https://"
akan dicetak tebal.
- Berakhir Dengan (
$=
)
1img[src$=".jpg"] {
2 border-radius: 10px;
3}
- Memilih elemen yang nilai atributnya berakhir dengan string yang ditentukan.
- Dalam contoh ini, gaya yang membuat sudut melingkar diterapkan ke semua gambar dengan atribut
src
yang berakhiran.jpg
.
- Mengandung (
*=
)
1p[class*="highlight"] {
2 background-color: yellow;
3}
- Memilih elemen yang nilai atributnya mengandung string yang ditentukan.
- Dalam contoh ini, warna latar belakang kuning diterapkan ke semua elemen
<p>
yang atributclass
-nya mengandung"highlight"
.
Memilih Elemen di Mana Nilai Atribut Mengandung Kata yang Dipisahkan Spasi (~=
)
1div[class~="featured"] {
2 border: 1px solid red;
3}
~=
memilih elemen jika nilai atributnya mengandung kata tertentu di antara kata-kata yang dipisahkan oleh spasi.- Dalam contoh ini, border merah diterapkan ke semua elemen
<div>
yang atributclass
-nya mengandung kata"featured"
.
Memilih Elemen di Mana Nilai Atribut Dimulai dengan Nilai yang Dipisahkan dengan Tanda Hubung (|=
)
1p[lang|="en"] {
2 font-style: italic;
3}
|=
memilih elemen jika nilai atributnya cocok dengan string yang ditentukan atau dimulai dengan string tersebut diikuti dengan tanda hubung. Ini terutama digunakan dengan atribut bahasa (lang
).- Dalam contoh ini, huruf miring diterapkan ke semua elemen
<p>
yang atributlang
-nya dimulai dengan"en"
, seperti"en"
atau"en-US"
.
Contoh dan Aplikasi Praktis
Berikutnya, mari kita lihat beberapa skenario praktis.
Menata Bidang Input Formulir
1input[required] {
2 background-color: #ffcccc;
3}
4
5input[placeholder] {
6 font-style: italic;
7 color: #999;
8}
- Dalam contoh ini, warna latar belakang kemerahan diterapkan pada semua field input dengan atribut
required
, dan teks placeholder dari field input dengan atributplaceholder
diberikan gaya huruf miring dan warna pucat.
Menata Berdasarkan Protokol Tautan
1a[href^="http://"] {
2 color: orange;
3}
4
5a[href^="https://"] {
6 color: green;
7}
- Di sini, tautan yang dimulai dengan
http://
diatur menjadi oranye, dan tautan yang dimulai denganhttps://
diatur menjadi hijau. Ini memungkinkan perbedaan visual antara tautan yang aman dan tidak aman.
Menata Berdasarkan Format Gambar
1img[src$=".png"] {
2 border: 2px solid blue;
3}
4
5img[src$=".jpg"] {
6 opacity: 0.5;
7}
- Dalam contoh ini, border biru ditambahkan ke gambar dalam format
.png
, dan opasitas gambar dalam format.jpg
diatur menjadi 50%.
Ringkasan
Selektor atribut CSS adalah cara yang fleksibel dan kuat untuk memilih elemen berdasarkan atribut HTML. Menggunakan selektor ini memungkinkan penataan yang lebih spesifik.
Gunakan sintaks dasar dan contoh yang diterapkan seperti yang dijelaskan dalam artikel ini untuk dengan mudah mencapai penataan yang lebih lanjut.
Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.