دالة attr()
في CSS هي أداة مفيدة تسمح لك باسترداد قيمة سمة (attribute) من عنصر HTML واستخدامها في أنماط التصميم. هذه الدالة تُضيف مستوى من الديناميكية إلى التصميم، حيث يمكنك عرض محتوى أو تطبيق أنماط بناءً على قيم السمات. في هذا المقال، سنستعرض كل ما تحتاج معرفته عن دالة attr()
، من أساسياتها إلى استخداماتها المتقدمة.
ما هي دالة attr()
؟
دالة attr()
تُستخدم لاسترداد قيمة سمة من عنصر HTML واستخدامها في CSS. يمكن استخدام هذه القيمة في العديد من الخصائص مثل content
، background-color
، width
، وغيرها.
صيغة الدالة:
property: attr(attribute-name);
حيث attribute-name
هو اسم السمة التي تريد استرداد قيمتها.
فوائد استخدام دالة attr()
- الديناميكية: تسمح لك بعرض محتوى ديناميكي بناءً على سمات HTML.
- التفاعل: يمكن استخدامها لإنشاء عناصر تفاعلية مثل النصوص التوضيحية (tooltips).
- تقليل الحاجة إلى JavaScript: يمكنك عرض محتوى ديناميكي دون الحاجة إلى كتابة أكواد JavaScript.
استخدامات دالة attr()
عرض محتوى ديناميكي باستخدام content
عرض قيمة سمة data-*
:
<div data-tooltip="هذا نص توضيحي">مرر الماوس هنا</div>
div::after {
content: attr(data-tooltip); /* عرض قيمة السمة data-tooltip */
display: none;
position: absolute;
background-color: #333;
color: #fff;
padding: 5px;
border-radius: 3px;
}
div:hover::after {
display: block;
}
التطبيق: يُستخدم لعرض نصوص توضيحية (tooltips) عند مرور الماوس فوق العنصر.
عرض قيمة سمة alt
للصور:
<img src="image.jpg" alt="وصف الصورة">
img::after {
content: attr(alt); /* عرض قيمة السمة alt */
display: block;
margin-top: 10px;
color: #666;
}
التطبيق: يُستخدم لعرض وصف الصورة أسفلها.
تطبيق أنماط بناءً على سمات HTML
أ) تغيير لون الخلفية بناءً على سمة data-color
:
<div data-color="red"></div>
<div data-color="blue"></div>
div {
width: 100px;
height: 100px;
background-color: attr(data-color); /* تغيير لون الخلفية بناءً على السمة */
}
ملاحظة: دعم المتصفحات لهذه الوظيفة محدود حاليًا، وقد تحتاج إلى استخدام JavaScript كبديل.
تغيير عرض العنصر بناءً على سمة data-width
:
<div data-width="200px"></div>
div {
width: attr(data-width); /* تغيير العرض بناءً على السمة */
height: 100px;
background-color: #ccc;
}
ملاحظة: دعم المتصفحات لهذه الوظيفة محدود حاليًا.
إنشاء عناصر تفاعلية
إنشاء بطاقات تفاعلية
<div data-title="عنوان البطاقة" data-description="وصف البطاقة"></div>
div::before {
content: attr(data-title); /* عرض عنوان البطاقة */
font-size: 1.2em;
font-weight: bold;
}
div::after {
content: attr(data-description); /* عرض وصف البطاقة */
font-size: 0.9em;
color: #666;
}
التطبيق: يُستخدم لإنشاء بطاقات تفاعلية تعرض محتوى ديناميكي.
أمثلة عملية متقدمة
إنشاء قائمة تفاعلية
<ul>
<li data-icon="★">عنصر 1</li>
<li data-icon="✿">عنصر 2</li>
</ul>
li::before {
content: attr(data-icon); /* عرض الأيقونة */
margin-right: 10px;
color: #ff4081;
}
التطبيق: يُستخدم لإنشاء قائمة تفاعلية مع أيقونات مخصصة.
عرض بيانات الجداول
<table>
<tr data-label="اسم المستخدم" data-value="user123"></tr>
</table>
tr::before {
content: attr(data-label) ": " attr(data-value); /* عرض البيانات */
}
التطبيق: يُستخدم لعرض بيانات الجداول بشكل ديناميكي.
نصائح لاستخدام دالة attr()
- استخدم سمات
data-*
: يُفضل استخدام السمات المخصصة (مثلdata-tooltip
,data-color
) لتجنب التعارض مع السمات القياسية. - اختبر التوافق: تأكد من أن المتصفحات التي تستهدفها تدعم الدالة
attr()
للخصائص التي تريد استخدامها. - استخدم JavaScript كبديل: إذا كانت الدالة
attr()
غير مدعومة للخاصية التي تريدها، يمكنك استخدام JavaScript لتحقيق النتيجة المطلوبة.
خاتمة
دالة attr()
في CSS هي أداة قوية تسمح لك بإنشاء محتوى ديناميكي وتفاعلي بناءً على سمات HTML. سواء كنت تريد عرض نصوص توضيحية، إنشاء عناصر تفاعلية، أو تطبيق أنماط ديناميكية، فإن attr()
تتيح لك تحقيق ذلك بسهولة.
بفضل دعمها في المتصفحات الحديثة، يمكنك استخدام attr()
لتحسين تجربة المستخدم وجعل تصميمك أكثر تفاعلية. ومع ذلك، تأكد من اختبار التوافق مع المتصفحات التي تستهدفها، واستخدم JavaScript كبديل إذا لزم الأمر.
من خلال فهم واستخدام هذه الدالة بشكل صحيح، ستتمكن من إنشاء تصاميم أكثر ديناميكية وتفاعلية دون الحاجة إلى الاعتماد على لغات برمجية إضافية. لذا، لا تتردد في تجربة attr()
واستكشاف إمكانياتها الكاملة في مشاريعك القادمة!