در حال بارگذاری...

سلکتور ویژگی در CSS

تا اینجا با نام تگ، class، id و نسبت‌های درختی عنصر را پیدا می‌کردید. گاهی خود HTML از قبل حقیقت را گفته: این لینک target دارد، آن ورودی type="email" است، آدرس با https شروع می‌شود. سلکتور attribute همان حقیقت را می‌خواند — بدون اینکه برای هر حالت یک class تازه بسازید.

سلکتور attribute چیست؟

سلکتور attribute عناصری را پیدا می‌کند که یک ویژگی HTML مشخص دارند. می‌توانید فقط «وجود» را چک کنید، یا مقدار را دقیق/نیمه‌دقیق بسنجید. نام ویژگی داخل براکت مربع می‌آید: [attr].

پنج الگوی روزمره

با این‌ها تقریباً همهٔ کارهای معمولی attribute را پوشش می‌دهید.

📊 عملگرهای سلکتور attribute

الگو معنی ساده مثال
[attr] این ویژگی هست (هر مقداری) a[target]
[attr="value"] مقدار دقیقاً همین است input[type="email"]
[attr^="value"] مقدار با این متن شروع می‌شود a[href^="https"]
[attr$="value"] مقدار با این متن تمام می‌شود a[href$=".pdf"]
[attr*="value"] این متن جایی داخل مقدار هست a[href*="docs"]

فقط وجود ویژگی — [attr]

وقتی فقط نام را داخل براکت می‌گذارید، یعنی «این attribute را داشته باشد.» مقدارش هرچه باشد مهم نیست.

وجود — لینک‌هایی که تب جدید باز می‌کنند

css
CSS Code
a[target] {
font-weight: 600;
}

کجا به درد می‌خورد؟

پرچم‌های اختیاری در HTML: لینک با target، یا عنصری که data-state دارد — حتی اگر هنوز مقدارش را فیلتر نکنید.

مقدار دقیق — [attr="value"]

علامت = می‌گوید مقدار باید مو به مو همان باشد. دور مقدار معمولاً نقل‌قول بگذارید؛ خواناتر و امن‌تر است.

مقدار دقیق — فیلد ایمیل

css
CSS Code
input[type="email"] {
border: 1px solid #0f766e;
}

class بسازیم یا از type استفاده کنیم؟

اگر HTML از قبل type="email" دارد، همان را در سلکتور بنویسید. class تازه (مثل .email-field) وقتی لازم است که همان ظاهر را روی چیزی بدون آن attribute هم بخواهید.

شروع مقدار — ^=

^= یعنی مقدار attribute با این متن شروع شود. برای آدرس‌های امن یا پیشوند مشترک خیلی کاربردی است.

شروع با — لینک‌های https

css
CSS Code
a[href^="https"] {
color: #0f766e;
}

پایان مقدار — $=

$= یعنی مقدار با این متن تمام شود. برای پسوند فایل در href یا src عالی است.

پایان با — لینک PDF

css
CSS Code
a[href$=".pdf"] {
font-style: italic;
}

جایی در مقدار — *=

*= می‌گوید این متن هر جای مقدار ظاهر شود. قوی است، ولی زود دست‌ودلباز می‌شود. اگر اول یا آخر بودن را می‌دانید، ^= یا $= معمولاً تمیزتر است.

شامل بودن — مسیر docs در آدرس

css
CSS Code
a[href*="docs"] {
text-decoration: underline;
}

عادت‌های خوب

  • مقدار را در سلکتور داخل نقل‌قول بنویسید: type="email"
  • اگر صفحه شلوغ است، نام تگ را هم بگذارید: input[type="search"] از [type="search"] لخت خواناتر است
  • املا و حروف بزرگ/کوچک را مثل HTML بنویسید
  • هر class را با attribute عوض نکنید؛ وقتی خود markup همان حقیقت را دارد سراغ attribute بروید

خودتان امتحان کنید

  1. سه لینک بسازید: یکی https://…، یکی با پایان .pdf، یکی با docs در مسیر؛ به‌علاوه یک <input type="email"> و یک <input type="text">.
  2. a[href^="https"] { color: #0f766e; } را بگذارید — فقط لینک امن رنگ عوض کند.
  3. a[href$=".pdf"] { font-style: italic; } — لینک PDF کج شود.
  4. input[type="email"] { border-color: #0f766e; } — فقط فیلد ایمیل حاشیه بگیرد.
  5. اختیاری: a[href*="docs"] را هم ببینید؛ ممکن است از پیشوند/پسوند سخت‌گیرانه لینک‌های بیشتری بگیرد.

اشتباهات رایج

  • [type=email] بدون نقل‌قول وقتی نقل‌قول واضح‌تر و امن‌تر است
  • *= به‌جای ^= — «شامل» وسط را هم می‌گیرد و لینک‌های اضافه روشن می‌شوند
  • برای ظاهر معمولی به‌جای .name از [class] استفاده کردن
  • فراموش کردن که = کل مقدار را می‌خواهد — type="text" با type="textbox" یکی نیست
  • قاطی کردن نام ویژگی‌ها — hreflang غیر از href است

خلاصه

  • سلکتور attribute با [ ] روی ویژگی‌های HTML کار می‌کند
  • فقط نام = وجود؛ = = مقدار دقیق
  • ^= شروع، $= پایان، *= هر جا داخل مقدار
  • تنگ‌ترین عملگری را بزنید که هنوز منظورتان را بگوید
  • در صورت نیاز نام تگ را هم به سلکتور بچسبانید
  • روی href و type واقعی تمرین کنید و صفحه را تازه کنید

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
8
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود