نگاهی عمیقتر به Attributes (ویژگیها) در HTML
بهنام نوبخت · ۱۴۰۵/۶/۲۸
تگهای HTML ساختار اصلی صفحات وب را ایجاد میکنند، اما در بسیاری از مواقع نام تگ بهتنهایی برای مشخص کردن اطلاعات و رفتار موردنیاز یک عنصر کافی نیست. برای مثال، یک لینک باید مقصد مشخصی داشته باشد، یک تصویر باید مسیر فایل و متن جایگزین داشته باشد و یک فیلد فرم ممکن است اجباری، غیرفعال یا فقط خواندنی باشد. HTML برای مشخص کردن چنین اطلاعاتی از Attribute یا ویژگیها استفاده میکند. Attributeها اطلاعات اضافی درباره عناصر HTML هستند و همواره در تگ شروع نوشته میشوند.
در مقالههای قبلی با تگها و عناصر مختلف HTML آشنا شدیم.
برای مثال:
<h1>عنوان صفحه</h1>
<p>این یک متن است.</p>
<a href="https://example.com">مشاهده سایت</a>
<img src="image.jpg" alt="تصویر">اما گاهی فقط استفاده از نام تگ کافی نیست.
مثلاً اگر بخواهیم مشخص کنیم:
یک لینک به کجا برود
یک تصویر از چه فایلی خوانده شود
یک عنصر چه شناسهای داشته باشد
یک عنصر چه کلاس CSSای داشته باشد
یک فیلد فرم غیرفعال باشد
یک فیلد اجباری باشد
وقتی کاربر روی یک عنصر قرار میگیرد، توضیحی نمایش داده شود
به اطلاعات بیشتری نیاز داریم.
این اطلاعات را با Attributeها یا ویژگیهای HTML به عناصر اضافه میکنیم.
Attribute چیست؟
Attribute یا ویژگی، اطلاعات اضافی درباره یک عنصر HTML است.
ویژگیها معمولاً داخل تگ شروع نوشته میشوند.
مثلاً:
<a href="https://example.com">مشاهده سایت</a>در اینجا:
hrefیک Attribute است.
مقدار آن نیز:
https://example.comاست.
بنابراین:
href="https://example.com"یک Attribute به همراه مقدار آن است.
ساختار Attribute
ساختار معمول یک Attribute به شکل زیر است:
attribute="value"
مثلاً:
id="main-title"در اینجا:
idنام Attribute است.main-titleمقدار Attribute است.
یک مثال کامل:
<h1 id="main-title">صفحه اصلی</h1>Attribute کجا قرار میگیرد؟
Attribute همواره داخل تگ شروع قرار میگیرد.
مثلاً:
<p class="description">
توضیحات محصول
</p>در اینجا:
class="description"داخل تگ شروع <p> قرار گرفته است.
اما نباید Attribute را داخل محتوای عنصر بنویسیم.
اشتباه:
<p>
class="description"
توضیحات محصول
</p>درست:
<p class="description">
توضیحات محصول
</p>یک عنصر میتواند چند Attribute داشته باشد
محدود به یک Attribute نیستیم.
مثلاً:
<img
src="images/logo.png"
alt="لوگوی سایت"
width="200"
height="80">این تصویر چند Attribute دارد:
srcaltwidthheight
همچنین:
<input
type="text"
id="username"
name="username"
placeholder="نام کاربری"
required>این input نیز چند ویژگی دارد.
ترتیب Attributeها مهم است؟
در بیشتر موارد، ترتیب Attributeها اهمیتی ندارد.
مثلاً این دو:
<input type="text" id="username">و:
<input id="username" type="text">از نظر نتیجه کلی یکسان هستند.
مهم این است که Attributeها به شکل صحیح نوشته شوند.
با این حال، بهتر است در پروژهها یک نظم ثابت داشته باشیم تا کد خواناتر باشد.
Attributeهای مهم HTML
HTML Attributeهای بسیار زیادی دارد.
اما لازم نیست همه آنها را یکجا یاد بگیریم.
در این مقاله مهمترین موارد را بررسی میکنیم:
idclasstitlestylelangdirhiddendata-*disabledreadonlyrequiredplaceholdervaluename
برخی از این موارد را در مقالههای قبلی دیدهایم، اما در اینجا مفهوم Attribute را دقیقتر بررسی میکنیم.
Attribute به نام id
id برای مشخص کردن یک شناسه یکتا برای یک عنصر استفاده میشود.
مثلاً:
<h1 id="page-title">
صفحه اصلی
</h1>در اینجا شناسه عنصر:
page-titleاست.
چرا از id استفاده میکنیم؟
id کاربردهای مختلفی دارد.
یکی از کاربردهای آن ایجاد ارتباط بین بخشهای صفحه است.
مثلاً:
<h2 id="services">
خدمات
</h2>حالا میتوانیم یک لینک به این بخش ایجاد کنیم:
<a href="#services">
مشاهده خدمات
</a>وقتی کاربر روی لینک کلیک کند، مرورگر به بخشی که id="services" دارد میرود.
id باید یکتا باشد
در یک صفحه بهتر است هر id فقط برای یک عنصر استفاده شود.
مثلاً:
<h1 id="title">عنوان اصلی</h1>و سپس نباید عنصر دیگری را نیز با همین شناسه تعریف کنیم:
<p id="title">متن</p>بهتر است هر عنصر شناسه مخصوص خودش را داشته باشد.
مثلاً:
<h1 id="page-title">عنوان اصلی</h1>
<p id="page-description">توضیحات صفحه</p>Attribute به نام class
یکی از مهمترین Attributeهای HTML، class است.
مثلاً:
<p class="description">
این توضیحات محصول است.
</p>class معمولاً برای گروهبندی عناصر و اعمال CSS استفاده میشود.
در ادامه دوره وقتی وارد CSS شویم، اهمیت class بسیار بیشتر مشخص خواهد شد.
چند عنصر میتوانند Class یکسان داشته باشند
برخلاف id، میتوان یک class را برای چند عنصر استفاده کرد.
مثلاً:
<p class="text">متن اول</p>
<p class="text">متن دوم</p>
<p class="text">متن سوم</p>هر سه عنصر دارای:
textبه عنوان class هستند.
این ویژگی در طراحی صفحات بسیار کاربردی است.
یک عنصر میتواند چند Class داشته باشد
یک عنصر میتواند چند class داشته باشد.
مثلاً:
<div class="card product-card featured">
محصول ویژه
</div>این عنصر سه class دارد:
card
product-card
featuredهر class میتواند یک مفهوم یا گروه خاص را مشخص کند.
تفاوت id و class
یکی از سؤالات رایج برای افراد تازهکار این است که:
چه زمانی از
idاستفاده کنیم و چه زمانی ازclass؟
به صورت ساده:
id
برای شناسایی یک عنصر مشخص و یکتا مناسب است.
<h1 id="page-title">
عنوان صفحه
</h1>class
برای گروهبندی چند عنصر مشابه مناسب است.
<p class="description">توضیح اول</p>
<p class="description">توضیح دوم</p>
<p class="description">توضیح سوم</p>بعداً در CSS و JavaScript بیشتر با این تفاوت کار خواهیم کرد.
Attribute به نام title
ویژگی title میتواند یک توضیح کوتاه برای عنصر مشخص کند.
مثلاً:
<button title="ذخیره اطلاعات">
ذخیره
</button>وقتی کاربر نشانگر ماوس را روی عنصر قرار دهد، مرورگر معمولاً این توضیح را به شکل یک Tooltip ساده نمایش میدهد.
مثال:
<a
href="#"
title="مشاهده اطلاعات بیشتر">
اطلاعات بیشتر
</a>title برای توضیحات کوتاه مناسب است.
Attribute به نام style
ویژگی style اجازه میدهد CSS را مستقیماً روی یک عنصر بنویسیم.
مثلاً:
<p style="color: red;">
این متن قرمز است.
</p>یا:
<h1 style="font-size: 30px;">
عنوان
</h1>این روش برای مثالهای ساده مفید است، اما در پروژههای بزرگ معمولاً روش مناسبی برای مدیریت CSS نیست.
در مقالههای CSS با روشهای بهتر آشنا خواهیم شد.
Attribute به نام lang
ویژگی lang زبان محتوای یک عنصر یا صفحه را مشخص میکند.
مثلاً برای یک صفحه فارسی:
<html lang="fa">و برای یک صفحه انگلیسی:
<html lang="en">در صفحات فارسی معمولاً از:
<html lang="fa">استفاده میکنیم.
Attribute به نام dir
dir جهت نمایش متن را مشخص میکند.
برای متن راستبهچپ:
<html lang="fa" dir="rtl">و برای متن چپبهراست:
<html lang="en" dir="ltr">در صفحات فارسی استفاده از:
dir="rtl"بسیار رایج است.
ترکیب lang و dir
برای یک صفحه فارسی میتوانیم بنویسیم:
<html lang="fa" dir="rtl">این یعنی:
زبان صفحه فارسی است.
جهت متن راستبهچپ است.
مثلاً یک صفحه ساده:
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<title>صفحه فارسی</title>
</head>
<body>
<h1>سلام</h1>
<p>
به سایت ما خوش آمدید.
</p>
</body>
</html>Attribute به نام hidden
گاهی میخواهیم یک عنصر در صفحه وجود داشته باشد، اما فعلاً نمایش داده نشود.
برای این کار میتوانیم از hidden استفاده کنیم.
<p hidden>
این متن نمایش داده نمیشود.
</p>hidden یک Attribute بولی است.
یعنی معمولاً وجود یا عدم وجود آن مهم است.
مثلاً:
<input type="text" hidden>عنصر مخفی خواهد بود.
Attributeهای بولی چیستند؟
بعضی Attributeها فقط با حضورشان فعال میشوند و معمولاً نیازی به مقدار ندارند.
به اینها Boolean Attribute گفته میشود.
مثلاً:
<input type="checkbox" checked>
یا:
<input type="text" required>
یا:
<button disabled>
ارسال
</button>
در این موارد وجود Attribute نشاندهنده فعال بودن آن ویژگی است.
Attribute disabled
برای غیرفعال کردن یک کنترل فرم میتوانیم از disabled استفاده کنیم.
مثلاً:
<button disabled>
ارسال
</button>
کاربر نمیتواند از این دکمه استفاده کند.
برای input نیز:
<input
type="text"
value="غیرفعال"
disabled>
Attribute readonly
گاهی میخواهیم کاربر نتواند مقدار یک فیلد را تغییر دهد، اما همچنان مقدار آن قابل مشاهده باشد.
در این حالت میتوانیم از readonly استفاده کنیم.
<input
type="text"
value="شماره سفارش: 1250"
readonly>کاربر میتواند مقدار را ببیند، اما نمیتواند آن را ویرایش کند.
تفاوت disabled و readonly
این دو را با هم اشتباه نگیرید.
disabled
کنترل کاملاً غیرفعال میشود.
<input
type="text"
value="سلام"
disabled>readonly
کاربر نمیتواند مقدار را تغییر دهد، اما فیلد همچنان قابل مشاهده و معمولاً قابل انتخاب است.
<input
type="text"
value="سلام"
readonly>Attribute required
در مقاله قبل با required آشنا شدیم.
این ویژگی برای مشخص کردن یک فیلد اجباری استفاده میشود.
مثلاً:
<input
type="text"
name="name"
required>
کاربر باید این فیلد را تکمیل کند تا فرم بتواند اعتبارسنجی اولیه مرورگر را انجام دهد.
Attribute placeholder
برای نمایش یک متن راهنما داخل فیلد استفاده میشود.
مثلاً:
<input
type="text"
placeholder="نام خود را وارد کنید">وقتی کاربر شروع به تایپ کند، placeholder معمولاً ناپدید میشود.
Attribute value
مقدار اولیه یک کنترل را مشخص میکند.
مثلاً:
<input
type="text"
value="علی">کاربر در ابتدا مقدار «علی» را داخل فیلد میبیند.
Attribute name
برای مشخص کردن نام یک کنترل فرم استفاده میشود.
مثلاً:
<input
type="text"
name="username">در فرمها name اهمیت زیادی دارد، زیرا هنگام کار با ارسال اطلاعات، مشخص میکند مقدار مربوط به کدام فیلد است.
Attribute data-*
HTML اجازه میدهد اطلاعات سفارشی را نیز روی عناصر ذخیره کنیم.
برای این کار میتوانیم از Attributeهایی با ساختار:
data-...استفاده کنیم.
مثلاً:
<div
data-product-id="125"
data-category="software">
محصول
</div>در اینجا دو ویژگی سفارشی داریم:
data-product-id
data-categoryاین اطلاعات میتوانند در JavaScript مورد استفاده قرار بگیرند.
در این مرحله فقط کافی است با مفهوم آن آشنا باشید؛ هنگام یادگیری JavaScript کاربرد آن را بیشتر بررسی خواهیم کرد.
Attribute برای لینکها
در مقاله لینکها با href آشنا شدیم.
مثلاً:
<a href="about.html">
درباره ما
</a>href یک Attribute است که مقصد لینک را مشخص میکند.
میتوان Attributeهای دیگری نیز برای لینک استفاده کرد:
<a
href="https://example.com"
target="_blank"
title="مشاهده سایت">
مشاهده سایت
</a>در اینجا:
href→ مقصد لینکtarget→ نحوه باز شدن لینکtitle→ توضیح کوتاه
Attributeهای تصویر
تگ <img> نیز چند Attribute مهم دارد.
مثلاً:
<img
src="images/logo.png"
alt="لوگوی سایت"
width="200"
height="80">در اینجا:
src→ مسیر تصویرalt→ متن جایگزینwidth→ عرضheight→ ارتفاع
هر کدام اطلاعات متفاوتی درباره تصویر مشخص میکنند.
Attributeهای فرم
فرمها نیز از Attributeهای زیادی استفاده میکنند.
مثلاً:
<input
type="email"
name="email"
id="email"
placeholder="ایمیل خود را وارد کنید"
required>در این مثال:
type
name
id
placeholder
requiredهمگی Attribute هستند.
چند Attribute در یک عنصر
در پروژههای واقعی معمولاً عناصر دارای چند ویژگی هستند.
مثلاً:
<input
type="text"
id="username"
class="form-control"
name="username"
placeholder="نام کاربری"
maxlength="30"
required>اگر این کد در ابتدا کمی شلوغ به نظر میرسد، نگران نباشید.
با تمرین، خواندن چنین کدهایی بسیار ساده خواهد شد.
Attribute و Content چه تفاوتی دارند؟
این تفاوت بسیار مهم است.
مثلاً:
<a href="about.html">
درباره ما
</a>در اینجا:
href="about.html"یک Attribute است.
اما:
درباره مامحتوای عنصر است.
یعنی:
Attribute → اطلاعات مربوط به عنصر
Content → محتوای داخل عنصرAttribute و Tag را با هم اشتباه نگیریم
مثلاً:
<img src="logo.png" alt="لوگو">در این کد:
imgنام تگ است.
و:
src
altAttribute هستند.
بنابراین:
<tag attribute="value">یک الگوی ساده برای درک ساختار HTML است.
مثال کامل
حالا چند مفهوم را کنار هم قرار دهیم:
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<title>فروشگاه</title>
</head>
<body>
<h1 id="page-title" class="main-title">
فروشگاه اینترنتی
</h1>
<p
id="description"
class="description"
title="توضیحات فروشگاه">
محصولات ما را مشاهده کنید.
</p>
<a
href="products.html"
class="button"
title="مشاهده محصولات">
مشاهده محصولات
</a>
<br><br>
<input
type="text"
id="username"
name="username"
class="form-control"
placeholder="نام کاربری"
required>
</body>
</html>در این مثال تعداد زیادی Attribute استفاده شده است.
یک روش ساده برای خواندن HTML
وقتی با یک عنصر HTML روبهرو میشوید، ابتدا این موارد را بررسی کنید:
۱. تگ چیست؟
مثلاً:
<input>۲. Attributeهای آن چیستند؟
مثلاً:
type="text"
id="username"
name="username"۳. مقدار Attributeها چیست؟
مثلاً:
type → text
id → username
name → usernameبا این روش، حتی اگر کد کمی بزرگ باشد، میتوانید آن را به قسمتهای کوچکتر تقسیم کنید.
اشتباهات رایج در استفاده از Attributeها
اشتباه اول: قرار دادن Attribute در تگ بسته
اشتباه:
<p>
</p class="text">درست:
<p class="text">
</p>Attribute باید در تگ شروع قرار بگیرد.
اشتباه دوم: فراموش کردن کوتیشن
بهتر است مقدار Attributeها را داخل کوتیشن قرار دهیم:
<p class="description">نه:
<p class=description>اگرچه در بعضی شرایط HTML حالت دوم را نیز میپذیرد، اما استفاده از کوتیشن باعث خوانایی و سازگاری بهتر کد میشود.
اشتباه سوم: استفاده از id تکراری
مثلاً:
<h1 id="title">عنوان</h1>
<p id="title">توضیحات</p>بهتر است شناسهها یکتا باشند:
<h1 id="page-title">عنوان</h1>
<p id="page-description">توضیحات</p>اشتباه چهارم: استفاده بیش از حد از style
مثلاً:
<p style="color:red;">
متن اول
</p>
<p style="color:red;">
متن دوم
</p>
<p style="color:red;">
متن سوم
</p>در صفحات بزرگ این روش مدیریت سختی خواهد داشت.
در CSS یاد خواهیم گرفت چگونه این کار را بهتر انجام دهیم.
تمرین عملی
تمرین ۱ — ID و Class
یک صفحه HTML ایجاد کنید و:
یک
<h1>باidایجاد کنید.سه
<p>با یکclassیکسان ایجاد کنید.یک
<p>دیگر با یکclassمتفاوت ایجاد کنید.
مثلاً:
<h1 id="page-title">
دوره طراحی وب
</h1>
<p class="description">
HTML را یاد میگیریم.
</p>
<p class="description">
CSS را یاد میگیریم.
</p>
<p class="description">
JavaScript را یاد میگیریم.
</p>تمرین ۲ — ویژگیهای فرم
یک فرم ایجاد کنید که شامل:
نام کاربری
ایمیل
رمز عبور
باشد.
برای هر فیلد از Attributeهای مناسب استفاده کنید.
حداقل از این ویژگیها استفاده کنید:
id
name
placeholder
required
typeتمرین ۳ — تصویر
یک تصویر به صفحه اضافه کنید و برای آن:
srcaltwidthheightclass
قرار دهید.
تمرین ۴ — لینک
یک لینک ایجاد کنید که:
مقصد داشته باشد.
در یک تب جدید باز شود.
titleداشته باشد.classداشته باشد.
مثلاً ساختار کلی:
<a
href="..."
target="_blank"
title="..."
class="...">
مشاهده سایت
</a>چالش مقاله
یک صفحه معرفی محصول ایجاد کنید.
صفحه باید شامل:
عنوان
یک <h1> با id مناسب.
توضیحات
دو یا سه <p> با یک class مشترک.
تصویر
یک <img> با:
src
alt
width
height
classلینک
یک لینک خرید یا مشاهده محصول با:
href
target
title
classفرم
فرمی شامل:
نام
ایمیل
شماره تلفن
پیام
ایجاد کنید.
برای فیلدها از Attributeهای مناسب استفاده کنید.
در این تمرین هدف اصلی، تمرین Attributeها است؛ بنابراین فعلاً نگران طراحی ظاهری صفحه نباشید.
نکات مهم این مقاله
در این مقاله یاد گرفتیم:
Attribute اطلاعات اضافی درباره یک عنصر HTML است.
Attribute معمولاً داخل تگ شروع قرار میگیرد.
ساختار رایج Attribute به شکل
name="value"است.یک عنصر میتواند چند Attribute داشته باشد.
idبرای شناسایی یک عنصر استفاده میشود.idبهتر است در یک صفحه یکتا باشد.classبرای گروهبندی عناصر کاربرد دارد.چند عنصر میتوانند
classیکسان داشته باشند.یک عنصر میتواند چند
classداشته باشد.titleبرای توضیح کوتاه یک عنصر کاربرد دارد.styleامکان نوشتن CSS مستقیم روی عنصر را فراهم میکند.langزبان محتوا را مشخص میکند.dirجهت متن را مشخص میکند.hiddenبرای مخفی کردن یک عنصر استفاده میشود.disabledیک کنترل را غیرفعال میکند.readonlyاز تغییر مقدار یک فیلد جلوگیری میکند.requiredیک فیلد را اجباری میکند.placeholderمتن راهنما نمایش میدهد.valueمقدار اولیه یک کنترل را مشخص میکند.nameنام یک کنترل فرم را مشخص میکند.ویژگیهای
data-*برای نگهداری دادههای سفارشی کاربرد دارند.
جمعبندی
تا اینجا یاد گرفتهایم که HTML فقط مجموعهای از تگها نیست.
هر عنصر HTML میتواند اطلاعات اضافی مختلفی داشته باشد که با Attributeها مشخص میشوند.
مثلاً:
<input
type="text"
id="username"
class="form-control"
name="username"
placeholder="نام کاربری"
required>در این یک عنصر، چند Attribute مختلف داریم که هر کدام وظیفه خاص خود را دارند.
در ادامه مسیر، Attributeها اهمیت بیشتری پیدا میکنند؛ مخصوصاً زمانی که وارد CSS و JavaScript شویم.
تا اینجا بخش زیادی از عناصر پایه HTML را یاد گرفتهایم.
در مقاله بعدی یک قدم مهم دیگر برمیداریم و با HTML معنایی یا Semantic HTML آشنا میشویم.
در مقاله بعدی با تگهای معنایی آشنا خواهیم شد.
نظرات
هنوز نظری ثبت نشده است.