سرفصل ها

  • persian developer network logo
  • آموزش HTML
    اصول اولیه HTML
    HTML چیست؟
    آناتومی یک عنصر HTML
    ایجاد اولین عنصر HTML شما
    عناصر تودرتو
    عناصر خالی
    ویژگی ها
    افزودن ویژگی‌ها به یک عنصر
    ویژگی های بولی
    حذف علامت نقل قول در اطراف مقادیر ویژگی‌ها
    نقل قول تکی یا دوتایی؟
    آناتومی یک سند HTML
    فضای خالی در HTML
    ارجاعات کاراکتری: اضافه کردن کاراکترهای ویژه در HTML
    کامنت های HTML
    متا دیتای صفحه وب
    سربرگ HTML چیست؟
    افزودن عنوان
    فراداده: عنصر <meta>
    مشخص کردن کدگذاری کاراکتر سند شما
    افزودن نویسنده و توضیحات
    بررسی کاربرد توضیحات در موتورهای جستجو
    انواع دیگر فراداده
    اضافه کردن آیکون‌های شخصی ساز به سایت
    اعمال CSS و جاوا اسکریپت به HTML
    تنظیم زبان اصلی سند
    سرفصل‌ها و پاراگراف‌ها
    سرفصل‌ها و پاراگراف‌ها
    اجرای سلسله مراتب ساختاری
    چرا به ساختار نیاز داریم؟
    چرا به معناشناسی نیاز داریم؟
    تأکید و اهمیت
    تأکید و اهمیت چیست؟
    تأکید
    اهمیت قوی
    ایتالیک، بولد، زیرخط‌دار…
    لیست ها
    لیست های نامرتب
    مرتب
    لیست های تودرتو
    لیست های توضیحات
    مثال لیست توضیحات
    چندین توضیح برای یک آیتم
    ویژگی های پیشرفته‌ی متن
    نقل قول ها
    نقل قول های بلوکی
    نقل قول های درون خطی
    نقل قول ها <cite>
    اختصارات
    علامت‌گذاری اطلاعات تماس
    بالانویس و زیرنویس
    نمایش کد کامپیوتر
    علامت‌گذاری زمان‌ها و تاریخ‌ها
    ساختاردهی اسناد
    بخش‌های اساسی یک سند
    سرصفحه ها
    نوار ناوبری
    محتوای اصلی
    نوار کناری
    پاورقی
    HTML برای ساختاردهی محتوا
    عناصر طرح‌بندی HTML با جزئیات بیشتر
    بسته‌بندی‌های غیرمعنایی
    شکست خطوط و خطکش افقی
    <br>: عنصر شکست خط
    <hr>: عنصر شکست موضوعی
    ساختاردهی یک وب‌سایت پایه
    ایجاد لینک‌ها
    هایپرلینک چیست؟
    آناتومی یک لینک
    لینک‌های سطح بلوک
    لینک‌های تصویر
    افزودن اطلاعات پشتیبانی با ویژگی عنوان
    مقدمه‌ای سریع بر URLها و مسیرها
    همان دایرکتوری
    حرکت به سمت پایین و زیرشاخه‌ها
    بازگشت به دایرکتوری‌های والد
    پیوند دادن نسبت به دایرکتوری ریشه
    لینک دادن با URL های کامل
    لینک‌های داخلی و خارجی
    قطعات سند
    چگونه URL ها به مسیرهای فایل تبدیل می شوند؟
    بهترین شیوه‌های لینک
    از متن لینک واضح استفاده کنید
    لینک دادن به منابع غیر HTML - علائم راهنمایی واضح بگذارید
    هنگام پیوند به یک فایل دانلود، از ویژگی دانلود استفاده کنید
    چه زمانی لینک‌ها را در تب جدید باز کنیم؟
    ایجاد منوی ناوبری
    لینک‌های ایمیل
    مشخص کردن جزئیات
    تصاویر
    چگونه یک تصویر را در صفحه وب قرار دهیم؟
    متن جایگزین
    عرض و ارتفاع
    تغییر اندازه تصاویر
    عنوان‌های تصویر
    دارایی‌های رسانه‌ای و مجوزها
    آشنایی با انواع مجوزها
    مالکیت عمومی/CC0
    جستجوی تصاویر دارای مجوز مجاز
    حاشیه‌نویسی تصاویر با شکل‌ها و زیرنویس شکل‌ها
    تصاویر پس زمینه CSS
    ویدئو و صوت HTML
    ویدئو و صدا در وب
    عنصر <video>
    استفاده از چندین قالب منبع برای بهبود سازگاری
    محتویات یک فایل رسانه‌ای
    پشتیبانی از فایل‌های رسانه‌ای در مرورگرها
    سایر ویژگی‌های <video>
    عنصر <audio>
    نمایش مسیر خطی ویدیوها
    اصول اولیه جدول HTML
    جدول چیست؟
    یک جدول چگونه کار می‌کند؟
    چه زمانی باید از جداول HTML اجتناب کنید؟
    اضافه کردن سرفصل با عناصر <th>
    چرا سرفصل‌ها مفید هستند؟
    اجازه دادن به سلول‌ها برای گسترش در چندین ردیف و ستون
    گروه بندی ستون ها با <colgroup> و <col>
    دسترسی‌پذیری جدول HTML
    استفاده از سرستون‌ها و سر سطرها
    اضافه کردن عنوان به جدول با استفاده از <caption>
    افزودن ساختار با <thead> و <tbody> و <tfoot>
    افزودن ساختار به جدول ثبت هزینه‌ها
    ویژگی scope
    ویژگی‌های id و headers
    فرم‌ها و دکمه‌ها در HTML
    تعامل با کاربران
    دکمه‌ها
    آناتومی یک فرم
    عنصر <form>
    ساختاربندی فرم‌ها
    عناصر <input>
    ویژگی‌های required و value در عمل
    ورودی‌های فیلد متنی تخصصی
    عناصر <label>
    برچسب‌های فرم صریح و ضمنی
    عنصر <button>
    نکته‌ای فرعی در مورد دسترسی‌پذیری
    انواع دیگر کنترل
    دکمه‌های رادیویی
    غیرفعال کردن کنترل‌های فرم
    کادرهای انتخاب
    منوهای کشویی
    فیلدهای ورودی متن چند خطی
    اعتبارسنجی فرم
    اشکال‌زدایی HTML
    اشکال زدایی ترسناک نیست
    HTML و اشکال‌زدایی
    استفاده از بازرس DOM
    نوبت شما: مطالعه HTML با استفاده از DOM inspector
    اعتبارسنجی HTML
    تفسیر پیام‌های خطا
    گنجاندن گرافیک‌های برداری در HTML
    گرافیک برداری چیست؟
    SVG چیست؟
    اضافه کردن SVG به صفحات شما
    راه سریع: عنصر img
    عیب‌یابی و پشتیبانی از مرورگرهای مختلف
    چگونه کد SVG را در HTML خود قرار دهیم
    نحوه جاسازی SVG با iframe
    از object تا iframe - فناوری‌های عمومی جاسازی
    تاریخچه کوتاهی از جاسازی
    iframe ها با جزئیات
    نگرانی‌های امنیتی
    فقط در صورت لزوم جاسازی کنید
    از HTTPS استفاده کنید
    همیشه از ویژگی sandbox استفاده کنید
    پیکربندی دستورالعمل‌های CSP
    عناصر <embed> و <object>
    آموزش CSS مبتدی
    CSS چیست؟
    استایل‌های پیش‌فرض مرورگر
    CSS برای چیست؟
    اصول اولیه سینتکس CSS
    CSS چگونه به HTML اعمال می‌شود؟
    شروع کار با CSS
    شروع با مقداری HTML
    اضافه کردن CSS به سند
    استایل دهی خارجی
    قرار دادن استایل‌شیت‌ها در مکان‌های مختلف
    استایل دهی داخلی
    استایل‌های درون‌خطی
    استفاده از انتخابگرهای رایج
    انتخاب عناصر HTML
    اضافه کردن کلاس
    استایل‌دهی به چیزها بر اساس موقعیت آنها در سند
    استایل‌دهی به چیزها بر اساس حالت (state)
    ترکیب انتخابگرها و ترکیب‌کننده‌ها
    سایر ویژگی‌های سینتکس CSS
    توابع
    تابع calc
    توابع تبدیل
    قوانین @
    ویژگی‌های مختصرنویسی
    کامنت‌های CSS
    فضای خالی در CSS
    انتخابگرهای CSS پایه
    انتخابگر (selector) چیست؟
    انتخابگرهای نوع (Type)
    انتخابگرهای کلاس (Class)
    هدف قرار دادن کلاس‌ها روی عناصر خاص
    انتخاب عنصری که بیش از یک کلاس دارد
    انتخابگرهای شناسه (ID)
    لیست‌های انتخابگر
    انتخابگرهای نامعتبر در فهرست‌های انتخابگر
    انتخابگر جهانی
    استفاده از انتخابگر سراسری برای خواناتر کردن انتخابگرهایتان
    انتخابگرهای ویژگی
    انتخابگرهای حضور و ارزش
    انتخابگرهای تطبیق زیررشته
    شبه کلاس‌ها و شبه عناصر
    شبه کلاس چیست؟
    مثال پایه‌ای از شبه کلاس
    شبه کلاس‌های تعامل کاربر
    شبه عنصر چیست؟
    ترکیب شبه کلاس‌ها و شبه عناصر
    تولید محتوا با before و after
    آیکون‌های محتوای تولید شده
    اشکال تولید شده
    ترکیب‌کننده‌ها
    ترکیب‌کننده‌ی نسلی
    ترکیب‌کننده فرزند
    ترکیب‌کننده‌ی sibling بعدی مستقیم
    ترکیب‌کننده‌ی sibling بعدی غیرمستقیم
    ترکیب ترکیب‌کننده‌ها با انتخاب‌کننده‌ها
    مدل جعبه‌ای
    جعبه‌های بلوکی و درون‌خطی
    انواع نمایشگر داخلی و خارجی
    نمونه‌هایی از انواع مختلف نمایشگر
    مدل جعبه‌ای CSS چیست؟
    قطعات یک جعبه
    مدل جعبه‌ای استاندارد CSS
    مدل جعبه‌ای جایگزین CSS
    استفاده از ابزارهای توسعه مرورگر برای مشاهده مدل جعبه‌ای
    مارجین‌ها، فاصله‌گذاری و حاشیه‌ها
    مارجین margin
    فروپاشی مارجین
    مرزها (حاشیه ها) border
    پدینگ padding
    مدل جعبه‌ای و جعبه‌های درون‌خطی
    استفاده از نمایش: inline-block
    رسیدگی به مغایرت ها
    قوانین متناقض
    آبشاری cascade
    مشخصه specificity
    وراثت inheritance
    درک چگونگی تعامل مفاهیم با یکدیگر
    درک وراثت
    کنترل وراثت
    تنظیم مجدد تمام مقادیر ویژگی‌ها
    درک آبشار
    ترتیب منبع
    مشخصه
    مثالی عمیق‌تر از جزئیات
    شناسه‌ها در مقابل کلاس‌ها
    استایل‌های درون‌خطی
    مهم!
    تأثیر مکان CSS
    ترتیب اعلان‌های برتر
    مقادیر و واحدهای CSS
    مقدار CSS چیست؟
    اعداد، طول‌ها و درصدها
    طول‌ها
    واحدهای طول مطلق
    واحدهای طول نسبی
    بررسی یک مثال
    em و rem
    درصدها
    اعداد
    رنگ color
    کلمات کلیدی رنگی
    مقادیر RGB هگزادسیمال
    مقادیر RGB
    یک مثال RGB با opacity
    استفاده از hue برای مشخص کردن یک رنگ
    HWB
    HSL
    تصاویر image
    موقعیت position
    رشته‌ها string و شناسه‌ها id
    توابع
    توابع ریاضی
    اندازه بندی آیتم ها در CSS
    اندازه طبیعی یا ذاتی آیتم ها
    تنظیم اندازه خاص
    استفاده از درصدها
    مارجین و پدینگ درصدی
    حداقل و حداکثر اندازه‌ها
    حداکثر عرض روی تصاویر max-width
    واحدهای viewport
    پس‌زمینه‌ها و حاشیه‌ها
    رنگ‌های پس‌زمینه
    تصاویر پس زمینه
    کنترل تکرار پس‌زمینه
    اندازه بندی تصویر پس زمینه
    قرار دادن تصویر پس زمینه
    پس‌زمینه‌های گرادیان
    تصاویر پس زمینه چندگانه
    پیوست پس‌زمینه
    استفاده از ویژگی مختصر نویسی background
    ملاحظات دسترسی پس زمینه
    حاشیه ها
    گوشه‌های گرد
    محتوای سرریز شده
    overflow یا سرریز چیست؟
    CSS تلاش می‌کند از «از دست رفتن داده‌ها» جلوگیری کند
    ویژگی overflow
    پنهان کردن محتوای سرریز شده
    اسکرول محتوای سرریز شده
    نمایش دادن اسکرول بار فقط درصورت نیاز
    سرریز ناخواسته در طراحی وب
    تصاویر، رسانه‌ها و عناصر فرم
    عناصر جایگزین شده
    اندازه بندی تصاویر
    مدیریت مشکلات نمایش تصویر با object-fit
    عناصر جایگزین شده در طرح بندی
    عناصر فرم
    استایل‌دهی به عناصر ورودی متن
    نرمال‌سازی رفتار فرم
    وراثت و عناصر فرم
    عناصر فرم و اندازه‌بندی جعبه‌ای
    سایر تنظیمات مفید
    درست کردن همه چیز با "reset"
    استایل‌دهی جداول
    یک جدول HTML معمولی
    شروع استایل‌دهی به جدول
    به‌روزرسانی فونت
    فاصله گذاری
    ترازبندی
    اضافه کردن حاشیه
    نوار گورخری
    استایل دادن به کپشن ها
    نکات ریز استایل‌دهی جداول
    اشکال‌زدایی CSS
    نحوه دسترسی به DevTools مرورگر
    DOM در مقابل منبع نمایش
    بررسی CSS اعمال شده
    ویرایش مقادیر
    افزودن یک ویژگی جدید
    درک مدل جعبه‌ای
    حل مسائل مربوط به مشخصه‌ها
    مشکلات اشکال‌زدایی در CSS
    از مشکل یک قدم عقب بروید
    آیا HTML و CSS معتبری دارید؟
    آیا ویژگی و مقدار توسط مرورگری که در آن آزمایش می‌کنید پشتیبانی می‌شوند؟
    آیا چیز دیگری CSS شما را نادیده گرفته است؟
    یک مورد آزمایشی کوچک‌شده از مشکل ایجاد کنید
    جلوه‌های پیشرفته استایل‌دهی
    سایه Box shadow
    یک box shadow ساده
    box shadow در تعداد
    سایر ویژگی‌های box shadow
    فیلترها
    حالت‌های ترکیبی
    حالت ترکیبی پس‌زمینه background-blend-mode
    حالت ترکیبی mix-blend-mode
    اشکال CSS
    -webkit-background-clip: text
    لایه‌های آبشاری
    بررسی مفهوم آبشار
    منشأ و آبشار
    منشأ و ویژگی
    مروری بر لایه‌های آبشاری
    ترتیب اولویت لایه آبشاری
    مسائلی که لایه‌های آبشاری می‌توانند حل کنند
    مسائلی که لایه‌های آبشاری تو در تو می‌توانند حل کنند
    ایجاد لایه‌های آبشاری
    دستور @layer در قاعده برای لایه‌های نامگذاری شده
    قاعده‌ی بلوک @layer برای لایه‌های نامگذاری شده و ناشناس
    ایجاد لایه و media query
    وارد کردن استایل شیت‌ها به لایه‌های نام‌گذاری شده و ناشناس با استفاده از @import
    مروری بر لایه‌های آبشاری تو در تو
    مزایای لانه سازی لایه ها
    ایجاد لایه‌های آبشاری تو در تو
    تعیین اولویت بر اساس ترتیب لایه‌ها
    ترتیب اولویت لایه‌های آبشاری منظم
    ترتیب اولویت لایه‌های آبشاری تو در تو
    مدیریت جهت‌های مختلف متن
    حالت‌های نوشتاری چیستند؟
    حالت‌های نوشتاری و طرح‌بندی بلوکی و درون‌خطی
    جهت
    ویژگی‌ها و مقادیر منطقی
    ویژگی‌های منطقی حاشیه، مرز و فاصله‌گذاری
    مقادیر منطقی
    آیا باید از ویژگی‌های فیزیکی استفاده کنید یا منطقی؟
    سازماندهی CSS شما
    آیا پروژه شما راهنمای سبک کدنویسی دارد؟
    ثابت قدم باشید
    قالب‌بندی CSS قابل خواندن
    CSS خود را کامنت کنید
    بخش‌های منطقی را در فایل استایل خود ایجاد کنید
    از انتخابگرهای بیش از حد خاص خودداری کنید
    استایل‌شیت‌های بزرگ را به چندین استایل‌شیت کوچک‌تر تقسیم کنید
    ابزارهای دیگری که می‌توانند کمک کنند
    روش‌های CSS
    OOCSS
    BEM
    سایر سیستم‌های رایج
    ساخت سیستم‌هایی برای CSS
    تعریف متغیرها
    کامپایل کردن استایل‌شیت‌های کامپوننت
    آموزش CSS پیشرفته
    استایل‌دهی اولیه متن و فونت
    استایل‌دهی به متن در CSS شامل چه مواردی می‌شود؟
    فونت‌ها
    رنگ
    خانواده‌های فونت
    فونت های در دسترس
    فونت‌های پیش‌فرض
    استک های فونت
    یک مثال از خانواده فونت
    اندازه فونت
    سبک فونت، وزن فونت، تبدیل متن و تزئین متن
    سایه‌های متن
    سایه‌های متعدد
    طرح‌بندی متن
    ترازبندی متن
    ارتفاع خط
    فاصله گذاری حروف و کلمات
    سایر ویژگی هایی که ارزش بررسی دارند
    خلاصه نویسی فونت
    استایل‌دهی به لیست‌ها
    یک مثال ساده از لیست
    مدیریت فاصله‌گذاری لیست‌ها
    سبک‌های خاص لیست
    استایل‌های گلوله‌ای
    موقعیت گلوله
    استفاده از تصویر گلوله شخصی ساز
    خلاصه نویسی به سبک لیست
    کنترل شمارش لیست
    start
    reversed
    value
    استایل‌دهی به لینک‌ها
    حالت‌های یک لینک
    سبک‌های پیش‌فرض
    استایل‌دهی به لینک‌ها
    لینک‌های خودتان را استایل‌دهی کنید
    قرار دادن آیکون روی لینک‌ها
    استایل‌دهی به لینک‌ها به عنوان دکمه
    فونت‌های وب
    خلاصه خانواده‌های فونت
    فونت‌های وب
    افزودن فونت‌های وب خودتان
    پیدا کردن فونت‌ها
    تولید کد مورد نیاز
    پیاده‌سازی کد در نسخه آزمایشی شما
    استفاده از یک سرویس فونت آنلاین
    font-face با جزئیات بیشتر
    مقدمه‌ای بر طرح‌بندی CSS
    جریان طرح‌بندی عادی
    عناصر به طور پیش‌فرض چگونه چیدمان می‌شوند؟
    مثال جریان عادی
    نادیده گرفتن جریان عادی
    سایر تکنیک‌های چیدمان
    float ها
    پس‌زمینه float
    مثالی از نوع float
    شناور کردن جعبه
    تجسم شناور
    پاک کردن شناورها
    جعبه‌های پاکسازی که دور یک شناور پیچیده شده‌اند
    مشکل
    display: flow-root
    موقعیت یابی
    معرفی موقعیت‌یابی position
    موقعیت‌یابی استاتیک static
    موقعیت‌یابی نسبی relative
    معرفی بالا، پایین، چپ و راست
    موقعیت‌یابی مطلق absolute
    زمینه‌های موقعیت‌یابی
    معرفی z-index
    موقعیت‌یابی ثابت fixed
    موقعیت‌یابی چسبنده sticky
    مثال پایه
    فهرست scroll
    فلکس‌باکس
    چرا فلکس باکس؟
    معرفی یک مثال ساده
    مشخص کردن عناصری که باید به عنوان flexbox طرح‌بندی شوند
    The flex model
    ستون‌ها یا ردیف‌ها؟
    بسته بندی
    خلاصه‌سازی جریان flex
    اندازه‌بندی انعطاف‌پذیر آیتم‌های flex
    flex: خلاصه‌نویسی در مقابل طولانی‌نویسی
    تراز افقی و عمودی
    ترتیب دهی به آیتم های فلکس
    flexbox تو در تو
    طرح بندی شبکه ای CSS
    طرح شبکه‌ای چیست؟
    ایجاد شبکه در CSS
    تعریف یک شبکه
    شبکه‌های انعطاف‌پذیر با واحد fr
    شکاف بین خطوط
    تکرار فهرست مسیرها
    شبکه‌های ضمنی و صریح
    تابع minmax
    تعداد ستون‌هایی که جا می‌شوند
    جایگذاری مبتنی بر خط
    موقعیت‌یابی با grid-template-areas
    شبکه‌ها و زیرشبکه‌های تودرتو
    چارچوب‌های شبکه‌ای
    طراحی وب واکنش‌گرا
    پیش درآمدی بر طراحی واکنش‌گرا: طراحی وب موبایل
    معرفی طراحی وب واکنش‌گرا
    media query ها
    فناوری‌های طرح‌بندی واکنش‌گرا
    Flexbox
    شبکه CSS
    تصاویر/رسانه‌های واکنش‌گرا
    تایپوگرافی واکنش‌گرا
    استفاده از مدیا کوئری‌ها برای تایپوگرافی واکنش‌گرا
    استفاده از واحدهای viewport برای تایپوگرافی واکنش‌گرا
    متا تگ viewport
    اصول media query ها
    اصول اولیه مدیا کوئری ها
    انواع رسانه
    قوانین مربوط به ویژگی‌های رسانه‌ای
    عرض و ارتفاع
    جهت گیری
    استفاده از دستگاه‌های اشاره‌گر
    استفاده از سینتکس محدوده‌ای
    مدیا کوئری های پیچیده‌تر
    منطق "and" در کوئری‌های رسانه‌ای
    منطق "or" در کوئری‌های رسانه‌ای
    منطق "not" در کوئری‌های مدیا
    نحوه انتخاب نقاط شکست
    طراحی واکنش‌گرا متناسب با موبایل (mobile-first)
    طراحی موبایل-محور خودتان را بسازید
    شروع به کار
    ایجاد طرح دو ستونه برای عرض‌های متوسط
    اضافه کردن ستون سوم برای صفحات نمایش عریض‌تر
    متای viewport
    آیا واقعاً به یک media query نیاز دارید؟
    طرح‌بندی چند ستونی
    طرح سه ستونه
    تنظیم عرض ستون
    استایل دادن به ستون‌ها
    ستون‌های پوشا
    ستون‌ها و قطعه قطعه شدن
    جعبه‌های تکه‌تکه شده
    تنظیم شکست های درونی
    مثال‌های عملی موقعیت‌یابی
    یک جعبه اطلاعات تب‌بندی‌شده
    تنظیمات عمومی
    استایل‌دهی به تب‌های ما
    استایل دادن به پنل‌ها
    جاوا اسکریپت
    یک جعبه اطلاعات با تب‌های ثابت
    اضافات HTML
    تغییرات در CSS موجود
    استایل‌دهی به محتوای اصلی
    یک پنل مخفی کشویی
    استایل دادن به دکمه
    استایل دادن به پنل
    تنظیم وضعیت بررسی‌شده
    آموزش جاوا اسکریپت مبتدی
    جاوا اسکریپت چیست؟
    تعریف کلی
    خب، واقعاً چه کاری می‌تواند انجام دهد؟
    جاوا اسکریپت در صفحه شما چه کاری انجام می‌دهد؟
    امنیت مرورگر
    ترتیب اجرای جاوا اسکریپت
    کد interpreted در مقابل کد compiled
    کد سمت سرور در مقابل کد سمت کلاینت
    کد پویا (dynamic) در مقابل کد ایستا (static)
    چگونه جاوا اسکریپت را به صفحه خود اضافه کنیم؟
    جاوا اسکریپت داخلی
    جاوا اسکریپت خارجی
    کنترل‌کننده‌های درون‌خطی جاوااسکریپت
    به جای آن از addEventListener استفاده کنید
    استراتژی‌های بارگذاری اسکریپت
    کامنت ها
    اولین نگاه به جاوا اسکریپت
    معرفی مثال «بازی حدس اعداد» ما
    فکر کردن مثل یک برنامه‌نویس
    خلاصه اولیه معماری
    راه اندازی اولیه
    اضافه کردن متغیرها برای ذخیره داده‌هایمان
    توابع Functions
    رشته‌های متنی Strings
    شرط ها Conditionals
    رویدادها Events
    تکمیل قابلیت‌های بازی
    حلقه‌ها Loops
    چه مشکلی پیش آمد؟ عیب‌یابی جاوا اسکریپت
    انواع ارور
    یک مثال ارور
    رفع ارورهای گزارش شده در کنسول
    رفع ارور زمان اجرا
    رفع یک ارور املایی دیگر
    یک ارور منطقی
    طی شدن مسیر منطقی
    سایر ارورهای رایج
    بازی بعد از اولین حدس اشتباه تمام می‌شود
    خطای املایی: وجود نداشتن ) بعد از لیست ورودی های ارزش به تابع
    خطای املایی: وجود نداشتن : بعد از شناسه ویژگی
    خطای املایی: } بعد از بدنه تابع وجود ندارد
    خطای املایی: جای عبارت (expression)، استرینگ است یا خطای املایی: استرینگ شامل یک پرش به خط جدید بدون املای درست است
    ذخیره اطلاعات مورد نیاز - متغیرها
    ابزارهایی که نیاز دارید
    متغیر چیست؟
    مثال متغیر
    بدون متغیر
    تعریف یک متغیر
    مقداردهی اولیه یک متغیر
    نکته‌ای در مورد متغیر var
    به‌روزرسانی یک متغیر
    نگاهی گذرا به قوانین نامگذاری متغیرها
    انواع متغیر
    اعداد numbers
    رشته‌ها string
    بولی‌ها booleans
    آرایه‌ها arrays
    اشیاء objects
    تایپ پویا
    ثابت‌ها در جاوا اسکریپت constants
    چه زمانی از const و چه زمانی از let استفاده کنیم؟
    ریاضیات پایه در جاوا اسکریپت - اعداد و اپراتور ها
    همه عاشق ریاضی هستند
    انواع اعداد
    برای من همه اینها عدد اند
    متدهای مفید اعداد
    تبدیل به انواع داده عددی
    اپراتورهای حسابی
    اولویت اپراتورها
    اپراتورهای افزایش و کاهش
    اپراتورهای انتساب
    اندازه بندی جعبه canvas
    اپراتورهای مقایسه‌ای
    مدیریت متن - رشته‌ها در جاوا اسکریپت
    قدرت کلمات
    تعریف رشته ها string
    علامت نقل قول تکی، علامت نقل قول دوتایی و علامت نقل قول معکوس
    جاسازی جاوا اسکریپت
    اتصال در متن
    اتصال با استفاده از "+"
    گنجاندن عبارات در رشته‌ها
    رشته‌های چندخطی
    گنجاندن نقل قول‌ها در رشته‌ها
    اعداد در مقابل رشته‌ها
    متدهای رشته‌ای مفید
    رشته‌ها به عنوان اشیاء
    پیدا کردن طول یک رشته
    بازیابی یک کاراکتر رشته‌ای خاص
    بررسی اینکه آیا یک رشته حاوی زیررشته است یا خیر
    پیدا کردن موقعیت یک زیر رشته در یک رشته
    استخراج یک زیررشته از یک رشته
    تغییر حالت
    به‌روزرسانی بخش‌هایی از یک رشته
    چالش‌های یادگیری
    فیلتر کردن پیام‌های تبریک
    اصلاح حروف بزرگ
    ساخت رشته‌های جدید از قطعات
    آرایه‌ها
    آرایه چیست؟
    ایجاد آرایه‌ها
    پیدا کردن طول یک آرایه
    دسترسی و تغییر آیتم‌های آرایه
    پیدا کردن شماره آیتم‌ها در یک آرایه
    اضافه کردن آیتم ها
    حذف موارد
    دسترسی به هر مورد
    تبدیل بین رشته‌ها و آرایه‌ها
    تصمیم‌گیری در کد شما - شرط‌ها
    به یه شرط!
    دستورات if...else
    سینتکس پایه if...else
    یک مثال واقعی
    else if
    نکته‌ای در مورد اپراتورهای مقایسه‌ای
    تو در تو سازی if...else
    عملگرهای منطقی: AND، OR و NOT
    دستورات سوئیچ
    یک مثال سوئیچ
    اپراتور سه تکه
    مثال اپراتور سه تکه
    حلقه ها در کد
    چرا حلقه‌ها مفید هستند؟
    مثال کد حلقه
    با حلقه و بدون حلقه
    حلقه زدن روی یک مجموعه
    حلقه for...of
    map و filter
    حلقه for استاندارد
    محاسبه مربع‌ها
    پیمایش مجموعه‌ها با حلقه for
    خروج از حلقه‌ها با break
    رد کردن تکرارها با continue
    while و do...while
    از کدام نوع حلقه باید استفاده کنید؟
    توابع - بلوک‌های کد قابل استفاده مجدد
    توابع رو از کجا پیدا کنم؟
    توابع داخلی مرورگر
    توابع و متدها
    فراخوانی توابع
    پارامترهای تابع
    پارامترهای اختیاری
    پارامترهای پیش‌فرض
    توابع بی نام و توابع پیکانی
    مثال تابع بی نام
    توابع پیکانی arrow functions
    نمونه زنده تابع arrow
    دامنه تابع و تداخلات
    نگاهی گذرا بر حلقه و دامنه شرطی
    تابع خودتان را بسازید
    بیایید یک تابع بسازیم
    تابع پایه
    فراخوانی تابع
    بهبود تابع با پارامترها
    یک پارامتر پیچیده‌تر
    مقادیر برگشتی تابع
    مقادیر بازگشتی چیستند؟
    نحوه برگرداندن یک مقدار
    پیاده‌سازی مقادیر بازگشتی تابع
    چند تا تابع خودت اضافه کن!
    مقدمه‌ای بر رویدادها
    رویداد چیست؟
    یک مثال: مدیریت یک رویداد کلیک
    استفاده از addEventListener
    گوش دادن به رویدادهای دیگر
    حذف شنوندگان رویداد
    اضافه کردن چندین شنونده برای یک رویداد واحد
    سایر مکانیزم‌های شنونده رویداد
    ویژگی‌های کنترل‌کننده رویداد
    کنترل‌کننده‌های رویداد درون‌خطی - از این‌ها استفاده نکنید
    اشیاء رویداد
    ویژگی‌های اضافی اشیاء رویداد
    جلوگیری از رفتار پیش‌فرض
    رویداد ها فقط مختص صفحات وب نیستند
    حباب رویداد
    تنظیم یک شنونده (listener) روی عنصر والد
    مثال حبابی
    مثال پخش کننده ویدیو
    رفع مشکل با stopPropagation
    ثبت رویداد
    نمایندگی رویداد
    target و currentTarget
    اصول اولیه شیء جاوا اسکریپت
    اصول اولیه شیء
    نمادگذاری نقطه‌ای
    اشیاء به عنوان ویژگی‌های اشیاء دیگر
    نمادگذاری با براکت
    تنظیم اعضای شیء
    «this» چیست؟
    معرفی سازنده‌ها
    تمام این مدت داشتید از اشیاء استفاده می‌کردید
    مقدمه‌ای بر اسکریپت‌نویسی DOM
    بخش‌های مهم یک مرورگر وب
    مدل شیء سند
    انجام برخی دستکاری‌های اولیه DOM
    ایجاد و قرار دادن گره‌های جدید
    جابجایی و حذف عناصر
    دستکاری استایل‌ها
    ایجاد درخواست‌های شبکه با جاوا اسکریپت
    مشکل اینجا چیست؟
    Fetch API
    دریافت محتوای متنی
    مثال خود را از یک سرور ارائه دهید
    فروشگاه قوطی
    API مربوط به XMLHttpRequest
    کار با JSON
    json چیست؟
    ساختار JSON
    آرایه‌ها به صورت JSON
    محدودیت‌های سینتکس JSON
    کار با یک مثال JSON
    شروع به کار
    تابع سطح بالا
    پر کردن هدر
    ایجاد کارت‌های اطلاعات قهرمانان
    فراخوانی تابع سطح بالا
    تبدیل بین اشیاء و متن
    اشکال‌زدایی و مدیریت ارور در جاوا اسکریپت
    خلاصه‌ای از انواع خطاهای جاوا اسکریپت
    کد خود را لینت کنید
    افزونه‌های ویرایشگر کد
    مشکلات رایج جاوا اسکریپت
    کنسول جاوا اسکریپت مرورگر
    API کنسول
    console.error و call stack
    رفع ارور
    استفاده از اشکال‌زدای جاوا اسکریپت
    مدیریت ارورهای جاوا اسکریپت در کد شما
    شرطی‌ها
    نمایش خطاهای سفارشی
    try...catch
    تشخیص ویژگی
    پیدا کردن کمک
    آموزش جاوا اسکریپت پیشرفته
    شئ و پروتوتایپ آن
    زنجیره پروتوتایپ
    ویژگی‌های سایه‌ای
    تنظیم پروتوتایپ
    استفاده از Object.create
    با استفاده از سازنده constructor
    ویژگی شخصی
    پروتوتایپ ها و وراثت
    برنامه‌نویسی شیءگرا
    کلاس‌ها و نمونه‌ها
    وراثت
    کپسوله سازی
    OOP و جاوا اسکریپت
    کلاس‌ها در جاوااسکریپت
    کلاس‌ها و سازنده‌ها
    حذف سازنده‌ها
    وراثت
    کپسوله سازی
    متدهای خصوصی
    جاوا اسکریپت ناهمزمان
    برنامه‌نویسی همزمان
    یک تابع همگام با اجرای طولانی مدت
    مشکل توابع همگام با اجرای طولانی مدت
    گرداننده‌های رویداد
    Callback ها
    نحوه استفاده از promise
    استفاده از fetch API
    زنجیر کردن promiseها
    گرفتن ارورها
    اصطلاحات promise
    ترکیب چندین promise
    async و await
    نحوه پیاده‌سازی یک API مبتنی بر promise
    پیاده‌سازی API مربوط به alarm
    بسته‌بندی setTimeout
    سازنده‌ی Promise
    استفاده از API مربوط به alarm
    استفاده از async و await با API مربوط به alarm
    معرفی workerها
    استفاده از web worker
    تولیدکننده‌ی همزمان عدد اول
    تولیدکننده‌ی عدد اول با worker
    انواع دیگر worker
    ابزار و نرم افزارها
    چگونه از گیت‌هاب استفاده کنم؟
    انتشار محتوا
    تنظیمات اولیه گیت‌هاب
    آماده‌سازی کد برای آپلود
    نگاهی گذرا به رابط‌های خط فرمان
    ایجاد یک مخزن (repo) برای کد شما
    آپلود فایل‌های شما در گیت‌هاب
    دانش بیشتر در مورد گیت‌هاب
    چگونه مطمئن شویم که وب‌سایت ما به درستی کار می‌کند؟
    در مرورگر خود تست کنید
    تصویر کجاست؟
    وضعیت‌های HTTP
    رفع خطای ۴۰۴
    ارور های رایج
    غلط املایی در آدرس
    خطاهای ۴۰۴
    خطاهای جاوا اسکریپت
    موارد بیشتر برای بررسی
    سرعت اجرا
    آیا سرور به اندازه کافی پاسخگو است؟
    یک چک لیست ساده
    چگونه یک سرور تست محلی راه‌اندازی کنیم؟
    فایل‌های محلی در مقابل فایل‌های راه دور
    مشکل در آزمایش فایل‌های محلی
    اجرای یک سرور HTTP محلی ساده
    استفاده از یک افزونه در ویرایشگر کد شما
    استفاده از Node.js
    استفاده از پایتون
    اجرای زبان‌های سمت سرور به صورت محلی
    چگونه فایل‌های خود را روی یک سرور وب آپلود کنیم؟
    خلاصه
    SFTP
    ورود به سیستم
    اینجا و آنجا: نمای محلی و از راه دور
    آپلود روی سرور
    آیا واقعاً آنلاین هستند؟
    Rsync
    ابزارهای رابط کاربری گرافیکی Rsync
    GitHub
    روش‌های دیگر برای آپلود فایل‌ها
    ابزارهای توسعه‌دهنده مرورگر چیست؟
    نحوه باز کردن ابزارهای توسعه (devtools) در مرورگر
    بررسی DOM inspector
    بررسی ویرایشگر CSS
    اشکال‌زدای جاوا اسکریپت
    بررسی دیباگر
    فهرست فایل‌ها
    کد منبع
    عبارات و نقاط توقف را تماشا کنید
    اطلاعات بیشتر
    کنسول جاوا اسکریپت
    اطلاعات بیشتر
    راهنمای HTML
    راهنمای HTML برای سینتکس و اعمال رایج
    عناصر درون‌خطی
    عناصر بلوک
    استفاده از اعتبارسنجی فرم HTML و API اعتبارسنجی محدودیت
    محدودیت‌های ذاتی و اساسی
    انواع input معنایی
    ویژگی‌های مرتبط با اعتبارسنجی
    فرآیند اعتبارسنجی محدودیت
    محدودیت‌های پیچیده با استفاده از API اعتبارسنجی محدودیت
    محدودیت ترکیب چندین فیلد: اعتبارسنجی کد پستی
    محدود کردن حجم فایل قبل از آپلود
    استایل‌دهی بصری اعتبارسنجی محدودیت‌ها
    دسته بندی محتوا
    محتوای فراداده metadata
    محتوای جریان flow
    محتوای بخش‌بندی section
    محتوای عنوان heading
    محتوای جمله‌بندی شده phrase
    محتوای جاسازی‌شده embed
    محتوای تعاملی interactive
    محتوای ملموس palpable
    عناصر بدون دسته بندی
    عناصر پشتیبان اسکریپت
    محتوای مرتبط با فرم
    مدل محتوای شفاف
    استفاده از فرمت‌های تاریخ و زمان در HTML
    مثال‌ها
    مبانی
    سال شمارها
    سال‌های کبیسه
    ماه‌های سال
    روزهای ماه
    رشته‌های هفته
    رشته‌های ماه
    رشته‌های تاریخ
    رشته‌های زمانی
    رشته‌های تاریخ و زمان محلی
    رشته‌های تاریخ و زمان سراسری
    رشته اختلاف در منطقه‌های زمانی
    مشکلات مربوط به تاریخ
    مشکل Y2K38 (اغلب سمت سرور)
    مشکل Y10k (اغلب از سمت کلاینت)
    استفاده از میکرودیتا در HTML
    واژگان
    محلی سازی
    ویژگی‌های سراسری
    مثال
    استفاده از میکروفرمت‌ها در HTML
    نحوه کار میکروفرمت‌ها
    موارد استفاده از میکروفرمت‌ها
    پیشوندهای میکروفرمت
    h-card
    مثال h-card تو در تو
    h-entry
    مثال h-entry پاسخ تجزیه‌شده
    h-feed
    h-event
    مثال h-event تجزیه‌شده‌
    مثال‌هایی از ویژگی‌های rel در میکروفرمت‌ها
    rel=author
    rel=license
    rel=nofollow
    درک ویژگی‌ها و حالت‌های استاندارد
    مرورگرها چگونه تشخیص می‌دهند که از کدام حالت استفاده کنند؟
    XHTML
    چطور ببینم از کدام حالت استفاده شده است؟
    استفاده از تصاویر واکنش‌گرا در HTML
    چرا تصاویر واکنش‌گرا؟
    چگونه تصاویر واکنش‌گرا (ریسپانسیو) ایجاد کنیم؟
    تغییر وضوح: اندازه‌های مختلف
    تغییر وضوح: اندازه یکسان، وضوح‌های متفاوت
    جهت هنری
    چرا نمی‌توانیم این کار را فقط با استفاده از CSS یا جاوا اسکریپت انجام دهیم؟
    پیاده‌سازی تصاویر واکنش‌گرای خودتان
    مرجع عناصر HTML
    عنصر <a>
    امتحانش کنید
    ویژگی‌ها
    ویژگی‌های منسوخ‌شده
    متن لینک ضعیف و غیرقابل دسترسی
    متن لینک قوی و قابل دسترسی
    رویدادهای onclick
    لینک‌های خارجی و لینک دادن به منابع غیر HTML
    لینکی که یک برگه/پنجره جدید باز می‌کند
    لینک به یک منبع غیر HTML
    لینک پرش
    سایز
    مجاورت
    لینک دادن به یک URL مطلق
    لینک دادن به URL های نسبی
    لینک دادن به یک عنصر در همان صفحه
    لینک دادن به یک آدرس ایمیل
    لینک دادن به شماره تلفن‌ها
    استفاده از ویژگی دانلود برای ذخیره <canvas> به عنوان PNG
    نمونه برنامه نقاشی با لینک ذخیره
    امنیت و حریم خصوصی
    خلاصه فنی
    نقش‌های مجاز ARIA
    عنصر <abbr>
    امتحانش کنید
    ویژگی‌ها
    موارد استفاده رایج
    ملاحظات دستوری
    استایل پیش‌فرض
    دسترسی‌پذیری
    علامت‌گذاری یک اختصار از نظر معنایی
    اختصارات استایل‌دهی
    فراهم کردن امکان گسترش
    تعریف یک اختصار
    عنصر <acronym> (منسوخ)
    ویژگی‌ها
    رابط DOM
    مثال
    استایل پیش‌فرض
    عنصر <address>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    مثال
    عنصر <area>
    امتحانش کنید
    ویژگی‌ها
    تصویر با نواحی قابل کلیک
    عنصر <article>
    Try it
    ویژگی‌ها
    یادداشت‌های استفاده
    مثال
    عنصر <aside>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    استفاده از <aside>
    عنصر <audio>
    امتحانش کنید
    ویژگی‌ها
    رویدادها
    یادداشت‌های استفاده
    استایل‌دهی با CSS
    تشخیص اضافه شدن و حذف شدن آهنگ‌ها
    دسترسی‌پذیری
    کاربرد اولیه
    عنصر <audio> به همراه عنصر <source>
    <audio> با چندین عنصر <source>
    عنصر <b>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    مثال
    عنصر <base>
    ویژگی‌ها
    چندین عنصر <base>
    لینک های درون صفحه‌ای
    هدف ممکن است شامل خط جدید ASCII، تب یا < نباشد
    Open Graph
    مثال
    عنصر <bdi>
    امتحانش کنید
    ویژگی‌ها
    بدون bdi و فقط با LTR
    بدون bdi با متن RTL
    استفاده از bdi با متن LTR و RTL
    عنصر <bdo>
    امتحانش کنید
    ویژگی‌ها
    مثال
    یادداشت‌ها
    عنصر <big> (منسوخ)
    ویژگی‌ها
    استفاده از big
    استفاده از اندازه فونت در CSS
    رابط DOM
    عنصر <blockquote>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    مثال
    عنصر <body>
    ویژگی‌ها
    ویژگی‌های رویداد
    ویژگی‌های منسوخ‌شده
    مثال
    عنصر <br>
    امتحانش کنید
    ویژگی‌ها
    ویژگی‌های منسوخ‌شده
    استایل‌دهی با CSS
    دسترسی‌پذیری
    br ساده
    عنصر <button>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌ها
    دکمه‌های آیکون
    سایز
    مجاورت
    اطلاعات حالت ARIA
    استایل‌های دکمه
    کلیک و فوکوس
    ایجاد یک دکمه پایه
    استفاده از مقدار request-close برای ویژگی command
    HTML
    عنصر <canvas>
    ویژگی‌ها
    محتوای جایگزین
    تگ پایانی <canvas>
    اندازه‌گذاری canvas با استفاده از CSS در مقابل HTML
    حداکثر اندازه canvas
    استفاده از canvas خارج از صفحه
    دسترسی پذیری:‌ محتوای جایگزین
    مثال
    عنصر <caption>
    امتحانش کنید
    ویژگی‌ها
    ویژگی‌های منسوخ‌شده
    یادداشت‌های استفاده
    مثال
    جدول با عنوان
    HTML
    عنصر <center> (منسوخ)
    رابط DOM
    مثال ۱
    مثال ۲ (جایگزین CSS)
    مثال ۳ (جایگزین CSS)
    عنصر <cite>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    مثال
    عنصر <code>
    امتحانش کنید
    ویژگی‌ها
    مثال
    یادداشت‌ها
    عنصر <col>
    امتحانش کنید
    ویژگی‌ها
    ویژگی‌های منسوخ‌شده
    یادداشت‌های استفاده
    مثال
    عنصر <colgroup>
    امتحانش کنید
    ویژگی‌ها
    ویژگی‌های منسوخ‌شده
    یادداشت‌های استفاده
    مثال
    عنصر <data>
    امتحانش کنید
    ویژگی‌ها
    مثال
    عنصر <datalist>
    امتحانش کنید
    ویژگی‌ها
    دسترسی‌پذیری
    انواع متنی
    انواع تاریخ و زمان
    نوع محدوده
    نوع رنگ
    عنصر <dd>
    امتحانش کنید
    ویژگی‌ها
    مثال
    عنصر <del>
    امتحانش کنید
    ویژگی‌ها
    دسترسی‌پذیری
    مثال
    عنصر <details>
    امتحانش کنید
    ویژگی‌ها
    رویدادها
    یک مثال افشای اطلاعات اولیه
    ایجاد یک جعبه افشای اطلاعات عمومی
    چندین جعبه افشای نام‌گذاری شده
    سفارشی‌سازی ظاهر
    عنصر <dfn>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    مشخص کردن اصطلاح مورد تعریف
    لینک‌ها به عناصر <dfn>
    شناسایی اولیه یک اصطلاح
    پیوند به تعاریف
    استفاده از اختصارات و تعاریف در کنار هم
    عنصر <dialog>
    ویژگی‌ها
    توضیحات
    کنترل دیالوگ‌ها با استفاده از جاوا اسکریپت
    دیالوگ‌های مودال با استفاده از دستورات invoker
    دیالوگ‌های غیرمودال با استفاده از دستورات popover
    بستن dialog
    استایل‌دهی CSS
    یادداشت‌های تکمیلی
    دسترسی‌پذیری
    ویژگی‌های HTML رابط برنامه‌نویسی کاربردی فرمان Invoker
    ویژگی‌های HTML API مربوط به Popover
    استفاده از ویژگی open در dialog
    ایجاد یک دیالوگ modal
    مدیریت مقدار برگشتی از کادر dialog
    بستن یک dialog با ورودی فرم الزامی
    مقایسه رفتارهای مختلف closedby
    انیمیشن در دیالوگ‌ها
    transition برای عنصر dialog
    انیمیشن‌های keyframe دیالوگ
    عنصر <dir> (منسوخ)
    رابط DOM
    ویژگی‌ها
    عنصر <div>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    دسترسی‌پذیری
    یک مثال اساسی
    یک مثال استایل شده
    عنصر <dl>
    امتحانش کنید
    ویژگی‌ها
    دسترسی‌پذیری
    مثال تک‌جمله و توضیح
    مثال چندین اصطلاح، یک توضیح
    مثال یک اصطلاح، چندین توصیف
    مثال اصطلاحات و توضیحات متعدد
    فراداده
    قرار دادن گروه‌های نام-مقدار در عناصر div
    یادداشت‌ها
    عنصر <dt>
    امتحانش کنید
    ویژگی‌ها
    مثال
    عنصر <em>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    <i> در مقابل <em>
    مثال
    عنصر <embed>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    دسترسی‌پذیری
    مثال
    عنصر <fencedframe> (آزمایشی)
    ویژگی‌ها
    سیاست‌های دسترسی موجود برای fencedframe
    فوکوس کردن در fencedframe
    موقعیت‌یابی و مقیاس‌بندی
    دسترسی‌پذیری
    مثال
    عنصر <fieldset>
    امتحانش کنید
    ویژگی‌ها
    استایل‌دهی با CSS
    مثال
    فیلدست غیرفعال
    عنصر <figcaption>
    امتحانش کنید
    ویژگی‌ها
    مثال
    عنصر <figure>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    تصاویر
    قطعه کدها
    نقل قول‌ها
    اشعار
    عنصر <font> (منسوخ)
    ویژگی‌ها
    رابط DOM
    عنصر <footer>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    دسترسی‌پذیری
    مثال
    عنصر <form>
    امتحانش کنید
    ویژگی‌ها
    ویژگی‌های ارسال فرم
    مثال
    عنصر <frame> (منسوخ)
    ویژگی‌ها
    یک سند frameset
    عنصر <frameset> (منسوخ)
    ویژگی‌ها
    مثال
    عنصر <geolocation> (آزمایشی)
    ویژگی‌ها
    توضیحات
    ارتباط با API موقعیت جغرافیایی
    تنظیم زبان دکمه
    محتوای جایگزین
    مسدود کردن <geolocation>
    محدودیت‌های استایل‌دهی
    محدودیت‌های دسترسی
    محدودیت‌های ارزش
    محدودیت‌های پیچیده
    ویژگی‌هایی که می‌توانند به طور معمول تنظیم شوند
    دسترسی‌پذیری
    مثال استفاده اولیه
    عنصر های <h1>-<h6>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    از استفاده از چندین عنصر <h1> در یک صفحه خودداری کنید
    تعیین اندازه فونت یکنواخت برای <h1>
    ناوبری
    برچسب‌گذاری محتوای بخش
    همه سرفصل‌ها
    عنصر <head>
    ویژگی‌ها
    مثال
    عنصر <header>
    امتحانش کنید
    یادداشت‌های استفاده
    کاربرد تاریخی
    ویژگی‌ها
    دسترسی‌پذیری
    سربرگ صفحه
    سربرگ مقاله
    عنصر <hgroup>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    مثال‌ها
    عنصر <hr>
    امتحانش کنید
    ویژگی‌ها
    مثال
    عنصر <html>
    ویژگی‌ها
    دسترسی‌پذیری
    مثال
    عنصر <i>
    امتحانش کنید
    ویژگی‌ها
    یادداشت‌های استفاده
    مثال
    عنصر <iframe>
    امتحانش کنید
    ویژگی‌ها
    ویژگی‌های منسوخ‌شده
    اسکریپت نویسی
    ناوبری بالا در فریم‌های با مبدا متقابل
    موقعیت‌یابی و مقیاس‌بندی
    رفتار رویدادهای error و load
    دسترسی‌پذیری
    یک <iframe> ساده
    جاسازی کد منبع در <iframe>
    عنصر <img>
    امتحانش کنید
    فرمت‌های تصویر پشتیبانی‌شده
    خطاهای بارگذاری تصویر
    ویژگی‌ها
    ویژگی‌های منسوخ‌شده
    استایل‌دهی با CSS
    نوشتن توضیحات جایگزین معنادار
    شناسایی SVG به عنوان تصویر
    ویژگی عنوان
    مثال متن جایگزین
    لینک تصویری
    استفاده از ویژگی srcset
    استفاده از ویژگی‌های srcset و sizes
    نگرانی‌های امنیتی و حریم خصوصی
  • صفحه اصلیتمام مستنداتتست کددرباره سایت
تمام مستندات>آموزش CSS مبتدی>رسیدگی به مغایرت ها

آموزش HTML

• اصول اولیه HTML

- HTML چیست؟

- آناتومی یک عنصر HTML

- ایجاد اولین عنصر HTML شما

- عناصر تودرتو

- عناصر خالی

- ویژگی ها

- افزودن ویژگی‌ها به یک عنصر

- ویژگی های بولی

- حذف علامت نقل قول در اطراف مقادیر ویژگی‌ها

- نقل قول تکی یا دوتایی؟

- آناتومی یک سند HTML

- فضای خالی در HTML

- ارجاعات کاراکتری: اضافه کردن کاراکترهای ویژه در HTML

- کامنت های HTML

• متا دیتای صفحه وب

- سربرگ HTML چیست؟

- افزودن عنوان

- فراداده: عنصر <meta>

- مشخص کردن کدگذاری کاراکتر سند شما

- افزودن نویسنده و توضیحات

- بررسی کاربرد توضیحات در موتورهای جستجو

- انواع دیگر فراداده

- اضافه کردن آیکون‌های شخصی ساز به سایت

- اعمال CSS و جاوا اسکریپت به HTML

- تنظیم زبان اصلی سند

• سرفصل‌ها و پاراگراف‌ها

- سرفصل‌ها و پاراگراف‌ها

- اجرای سلسله مراتب ساختاری

- چرا به ساختار نیاز داریم؟

- چرا به معناشناسی نیاز داریم؟

• تأکید و اهمیت

- تأکید و اهمیت چیست؟

- تأکید

- اهمیت قوی

- ایتالیک، بولد، زیرخط‌دار…

• لیست ها

- لیست های نامرتب

- مرتب

- لیست های تودرتو

- لیست های توضیحات

- مثال لیست توضیحات

- چندین توضیح برای یک آیتم

• ویژگی های پیشرفته‌ی متن

- نقل قول ها

- نقل قول های بلوکی

- نقل قول های درون خطی

- نقل قول ها <cite>

- اختصارات

- علامت‌گذاری اطلاعات تماس

- بالانویس و زیرنویس

- نمایش کد کامپیوتر

- علامت‌گذاری زمان‌ها و تاریخ‌ها

• ساختاردهی اسناد

- بخش‌های اساسی یک سند

- سرصفحه ها

- نوار ناوبری

- محتوای اصلی

- نوار کناری

- پاورقی

- HTML برای ساختاردهی محتوا

- عناصر طرح‌بندی HTML با جزئیات بیشتر

- بسته‌بندی‌های غیرمعنایی

- شکست خطوط و خطکش افقی

- <br>: عنصر شکست خط

- <hr>: عنصر شکست موضوعی

- ساختاردهی یک وب‌سایت پایه

• ایجاد لینک‌ها

- هایپرلینک چیست؟

- آناتومی یک لینک

- لینک‌های سطح بلوک

- لینک‌های تصویر

- افزودن اطلاعات پشتیبانی با ویژگی عنوان

- مقدمه‌ای سریع بر URLها و مسیرها

- همان دایرکتوری

- حرکت به سمت پایین و زیرشاخه‌ها

- بازگشت به دایرکتوری‌های والد

- پیوند دادن نسبت به دایرکتوری ریشه

- لینک دادن با URL های کامل

- لینک‌های داخلی و خارجی

- قطعات سند

- چگونه URL ها به مسیرهای فایل تبدیل می شوند؟

- بهترین شیوه‌های لینک

- از متن لینک واضح استفاده کنید

- لینک دادن به منابع غیر HTML - علائم راهنمایی واضح بگذارید

- هنگام پیوند به یک فایل دانلود، از ویژگی دانلود استفاده کنید

- چه زمانی لینک‌ها را در تب جدید باز کنیم؟

- ایجاد منوی ناوبری

- لینک‌های ایمیل

- مشخص کردن جزئیات

• تصاویر

- چگونه یک تصویر را در صفحه وب قرار دهیم؟

- متن جایگزین

- عرض و ارتفاع

- تغییر اندازه تصاویر

- عنوان‌های تصویر

- دارایی‌های رسانه‌ای و مجوزها

- آشنایی با انواع مجوزها

- مالکیت عمومی/CC0

- جستجوی تصاویر دارای مجوز مجاز

- حاشیه‌نویسی تصاویر با شکل‌ها و زیرنویس شکل‌ها

- تصاویر پس زمینه CSS

• ویدئو و صوت HTML

- ویدئو و صدا در وب

- عنصر <video>

- استفاده از چندین قالب منبع برای بهبود سازگاری

- محتویات یک فایل رسانه‌ای

- پشتیبانی از فایل‌های رسانه‌ای در مرورگرها

- سایر ویژگی‌های <video>

- عنصر <audio>

- نمایش مسیر خطی ویدیوها

• اصول اولیه جدول HTML

- جدول چیست؟

- یک جدول چگونه کار می‌کند؟

- چه زمانی باید از جداول HTML اجتناب کنید؟

- اضافه کردن سرفصل با عناصر <th>

- چرا سرفصل‌ها مفید هستند؟

- اجازه دادن به سلول‌ها برای گسترش در چندین ردیف و ستون

- گروه بندی ستون ها با <colgroup> و <col>

• دسترسی‌پذیری جدول HTML

- استفاده از سرستون‌ها و سر سطرها

- اضافه کردن عنوان به جدول با استفاده از <caption>

- افزودن ساختار با <thead> و <tbody> و <tfoot>

- افزودن ساختار به جدول ثبت هزینه‌ها

- ویژگی scope

- ویژگی‌های id و headers

• فرم‌ها و دکمه‌ها در HTML

- تعامل با کاربران

- دکمه‌ها

- آناتومی یک فرم

- عنصر <form>

- ساختاربندی فرم‌ها

- عناصر <input>

- ویژگی‌های required و value در عمل

- ورودی‌های فیلد متنی تخصصی

- عناصر <label>

- برچسب‌های فرم صریح و ضمنی

- عنصر <button>

- نکته‌ای فرعی در مورد دسترسی‌پذیری

- انواع دیگر کنترل

- دکمه‌های رادیویی

- غیرفعال کردن کنترل‌های فرم

- کادرهای انتخاب

- منوهای کشویی

- فیلدهای ورودی متن چند خطی

- اعتبارسنجی فرم

• اشکال‌زدایی HTML

- اشکال زدایی ترسناک نیست

- HTML و اشکال‌زدایی

- استفاده از بازرس DOM

- نوبت شما: مطالعه HTML با استفاده از DOM inspector

- اعتبارسنجی HTML

- تفسیر پیام‌های خطا

• گنجاندن گرافیک‌های برداری در HTML

- گرافیک برداری چیست؟

- SVG چیست؟

- اضافه کردن SVG به صفحات شما

- راه سریع: عنصر img

- عیب‌یابی و پشتیبانی از مرورگرهای مختلف

- چگونه کد SVG را در HTML خود قرار دهیم

- نحوه جاسازی SVG با iframe

• از object تا iframe - فناوری‌های عمومی جاسازی

- تاریخچه کوتاهی از جاسازی

- iframe ها با جزئیات

- نگرانی‌های امنیتی

- فقط در صورت لزوم جاسازی کنید

- از HTTPS استفاده کنید

- همیشه از ویژگی sandbox استفاده کنید

- پیکربندی دستورالعمل‌های CSP

- عناصر <embed> و <object>

آموزش CSS مبتدی

• CSS چیست؟

- استایل‌های پیش‌فرض مرورگر

- CSS برای چیست؟

- اصول اولیه سینتکس CSS

- CSS چگونه به HTML اعمال می‌شود؟

• شروع کار با CSS

- شروع با مقداری HTML

- اضافه کردن CSS به سند

- استایل دهی خارجی

- قرار دادن استایل‌شیت‌ها در مکان‌های مختلف

- استایل دهی داخلی

- استایل‌های درون‌خطی

- استفاده از انتخابگرهای رایج

- انتخاب عناصر HTML

- اضافه کردن کلاس

- استایل‌دهی به چیزها بر اساس موقعیت آنها در سند

- استایل‌دهی به چیزها بر اساس حالت (state)

- ترکیب انتخابگرها و ترکیب‌کننده‌ها

- سایر ویژگی‌های سینتکس CSS

- توابع

- تابع calc

- توابع تبدیل

- قوانین @

- ویژگی‌های مختصرنویسی

- کامنت‌های CSS

- فضای خالی در CSS

• انتخابگرهای CSS پایه

- انتخابگر (selector) چیست؟

- انتخابگرهای نوع (Type)

- انتخابگرهای کلاس (Class)

- هدف قرار دادن کلاس‌ها روی عناصر خاص

- انتخاب عنصری که بیش از یک کلاس دارد

- انتخابگرهای شناسه (ID)

- لیست‌های انتخابگر

- انتخابگرهای نامعتبر در فهرست‌های انتخابگر

- انتخابگر جهانی

- استفاده از انتخابگر سراسری برای خواناتر کردن انتخابگرهایتان

• انتخابگرهای ویژگی

- انتخابگرهای حضور و ارزش

- انتخابگرهای تطبیق زیررشته

• شبه کلاس‌ها و شبه عناصر

- شبه کلاس چیست؟

- مثال پایه‌ای از شبه کلاس

- شبه کلاس‌های تعامل کاربر

- شبه عنصر چیست؟

- ترکیب شبه کلاس‌ها و شبه عناصر

- تولید محتوا با before و after

- آیکون‌های محتوای تولید شده

- اشکال تولید شده

• ترکیب‌کننده‌ها

- ترکیب‌کننده‌ی نسلی

- ترکیب‌کننده فرزند

- ترکیب‌کننده‌ی sibling بعدی مستقیم

- ترکیب‌کننده‌ی sibling بعدی غیرمستقیم

- ترکیب ترکیب‌کننده‌ها با انتخاب‌کننده‌ها

• مدل جعبه‌ای

- جعبه‌های بلوکی و درون‌خطی

- انواع نمایشگر داخلی و خارجی

- نمونه‌هایی از انواع مختلف نمایشگر

- مدل جعبه‌ای CSS چیست؟

- قطعات یک جعبه

- مدل جعبه‌ای استاندارد CSS

- مدل جعبه‌ای جایگزین CSS

- استفاده از ابزارهای توسعه مرورگر برای مشاهده مدل جعبه‌ای

- مارجین‌ها، فاصله‌گذاری و حاشیه‌ها

- مارجین margin

- فروپاشی مارجین

- مرزها (حاشیه ها) border

- پدینگ padding

- مدل جعبه‌ای و جعبه‌های درون‌خطی

- استفاده از نمایش: inline-block

• رسیدگی به مغایرت ها

- قوانین متناقض

- آبشاری cascade

- مشخصه specificity

- وراثت inheritance

- درک چگونگی تعامل مفاهیم با یکدیگر

- درک وراثت

- کنترل وراثت

- تنظیم مجدد تمام مقادیر ویژگی‌ها

- درک آبشار

- ترتیب منبع

- مشخصه

- مثالی عمیق‌تر از جزئیات

- شناسه‌ها در مقابل کلاس‌ها

- استایل‌های درون‌خطی

- مهم!

- تأثیر مکان CSS

- ترتیب اعلان‌های برتر

• مقادیر و واحدهای CSS

- مقدار CSS چیست؟

- اعداد، طول‌ها و درصدها

- طول‌ها

- واحدهای طول مطلق

- واحدهای طول نسبی

- بررسی یک مثال

- em و rem

- درصدها

- اعداد

- رنگ color

- کلمات کلیدی رنگی

- مقادیر RGB هگزادسیمال

- مقادیر RGB

- یک مثال RGB با opacity

- استفاده از hue برای مشخص کردن یک رنگ

- HWB

- HSL

- تصاویر image

- موقعیت position

- رشته‌ها string و شناسه‌ها id

- توابع

- توابع ریاضی

• اندازه بندی آیتم ها در CSS

- اندازه طبیعی یا ذاتی آیتم ها

- تنظیم اندازه خاص

- استفاده از درصدها

- مارجین و پدینگ درصدی

- حداقل و حداکثر اندازه‌ها

- حداکثر عرض روی تصاویر max-width

- واحدهای viewport

• پس‌زمینه‌ها و حاشیه‌ها

- رنگ‌های پس‌زمینه

- تصاویر پس زمینه

- کنترل تکرار پس‌زمینه

- اندازه بندی تصویر پس زمینه

- قرار دادن تصویر پس زمینه

- پس‌زمینه‌های گرادیان

- تصاویر پس زمینه چندگانه

- پیوست پس‌زمینه

- استفاده از ویژگی مختصر نویسی background

- ملاحظات دسترسی پس زمینه

- حاشیه ها

- گوشه‌های گرد

• محتوای سرریز شده

- overflow یا سرریز چیست؟

- CSS تلاش می‌کند از «از دست رفتن داده‌ها» جلوگیری کند

- ویژگی overflow

- پنهان کردن محتوای سرریز شده

- اسکرول محتوای سرریز شده

- نمایش دادن اسکرول بار فقط درصورت نیاز

- سرریز ناخواسته در طراحی وب

• تصاویر، رسانه‌ها و عناصر فرم

- عناصر جایگزین شده

- اندازه بندی تصاویر

- مدیریت مشکلات نمایش تصویر با object-fit

- عناصر جایگزین شده در طرح بندی

- عناصر فرم

- استایل‌دهی به عناصر ورودی متن

- نرمال‌سازی رفتار فرم

- وراثت و عناصر فرم

- عناصر فرم و اندازه‌بندی جعبه‌ای

- سایر تنظیمات مفید

- درست کردن همه چیز با "reset"

• استایل‌دهی جداول

- یک جدول HTML معمولی

- شروع استایل‌دهی به جدول

- به‌روزرسانی فونت

- فاصله گذاری

- ترازبندی

- اضافه کردن حاشیه

- نوار گورخری

- استایل دادن به کپشن ها

- نکات ریز استایل‌دهی جداول

• اشکال‌زدایی CSS

- نحوه دسترسی به DevTools مرورگر

- DOM در مقابل منبع نمایش

- بررسی CSS اعمال شده

- ویرایش مقادیر

- افزودن یک ویژگی جدید

- درک مدل جعبه‌ای

- حل مسائل مربوط به مشخصه‌ها

- مشکلات اشکال‌زدایی در CSS

- از مشکل یک قدم عقب بروید

- آیا HTML و CSS معتبری دارید؟

- آیا ویژگی و مقدار توسط مرورگری که در آن آزمایش می‌کنید پشتیبانی می‌شوند؟

- آیا چیز دیگری CSS شما را نادیده گرفته است؟

- یک مورد آزمایشی کوچک‌شده از مشکل ایجاد کنید

• جلوه‌های پیشرفته استایل‌دهی

- سایه Box shadow

- یک box shadow ساده

- box shadow در تعداد

- سایر ویژگی‌های box shadow

- فیلترها

- حالت‌های ترکیبی

- حالت ترکیبی پس‌زمینه background-blend-mode

- حالت ترکیبی mix-blend-mode

- اشکال CSS

- -webkit-background-clip: text

• لایه‌های آبشاری

- بررسی مفهوم آبشار

- منشأ و آبشار

- منشأ و ویژگی

- مروری بر لایه‌های آبشاری

- ترتیب اولویت لایه آبشاری

- مسائلی که لایه‌های آبشاری می‌توانند حل کنند

- مسائلی که لایه‌های آبشاری تو در تو می‌توانند حل کنند

- ایجاد لایه‌های آبشاری

- دستور @layer در قاعده برای لایه‌های نامگذاری شده

- قاعده‌ی بلوک @layer برای لایه‌های نامگذاری شده و ناشناس

- ایجاد لایه و media query

- وارد کردن استایل شیت‌ها به لایه‌های نام‌گذاری شده و ناشناس با استفاده از @import

- مروری بر لایه‌های آبشاری تو در تو

- مزایای لانه سازی لایه ها

- ایجاد لایه‌های آبشاری تو در تو

- تعیین اولویت بر اساس ترتیب لایه‌ها

- ترتیب اولویت لایه‌های آبشاری منظم

- ترتیب اولویت لایه‌های آبشاری تو در تو

• مدیریت جهت‌های مختلف متن

- حالت‌های نوشتاری چیستند؟

- حالت‌های نوشتاری و طرح‌بندی بلوکی و درون‌خطی

- جهت

- ویژگی‌ها و مقادیر منطقی

- ویژگی‌های منطقی حاشیه، مرز و فاصله‌گذاری

- مقادیر منطقی

- آیا باید از ویژگی‌های فیزیکی استفاده کنید یا منطقی؟

• سازماندهی CSS شما

- آیا پروژه شما راهنمای سبک کدنویسی دارد؟

- ثابت قدم باشید

- قالب‌بندی CSS قابل خواندن

- CSS خود را کامنت کنید

- بخش‌های منطقی را در فایل استایل خود ایجاد کنید

- از انتخابگرهای بیش از حد خاص خودداری کنید

- استایل‌شیت‌های بزرگ را به چندین استایل‌شیت کوچک‌تر تقسیم کنید

- ابزارهای دیگری که می‌توانند کمک کنند

- روش‌های CSS

- OOCSS

- BEM

- سایر سیستم‌های رایج

- ساخت سیستم‌هایی برای CSS

- تعریف متغیرها

- کامپایل کردن استایل‌شیت‌های کامپوننت

آموزش CSS پیشرفته

• استایل‌دهی اولیه متن و فونت

- استایل‌دهی به متن در CSS شامل چه مواردی می‌شود؟

- فونت‌ها

- رنگ

- خانواده‌های فونت

- فونت های در دسترس

- فونت‌های پیش‌فرض

- استک های فونت

- یک مثال از خانواده فونت

- اندازه فونت

- سبک فونت، وزن فونت، تبدیل متن و تزئین متن

- سایه‌های متن

- سایه‌های متعدد

- طرح‌بندی متن

- ترازبندی متن

- ارتفاع خط

- فاصله گذاری حروف و کلمات

- سایر ویژگی هایی که ارزش بررسی دارند

- خلاصه نویسی فونت

• استایل‌دهی به لیست‌ها

- یک مثال ساده از لیست

- مدیریت فاصله‌گذاری لیست‌ها

- سبک‌های خاص لیست

- استایل‌های گلوله‌ای

- موقعیت گلوله

- استفاده از تصویر گلوله شخصی ساز

- خلاصه نویسی به سبک لیست

- کنترل شمارش لیست

- start

- reversed

- value

• استایل‌دهی به لینک‌ها

- حالت‌های یک لینک

- سبک‌های پیش‌فرض

- استایل‌دهی به لینک‌ها

- لینک‌های خودتان را استایل‌دهی کنید

- قرار دادن آیکون روی لینک‌ها

- استایل‌دهی به لینک‌ها به عنوان دکمه

• فونت‌های وب

- خلاصه خانواده‌های فونت

- فونت‌های وب

- افزودن فونت‌های وب خودتان

- پیدا کردن فونت‌ها

- تولید کد مورد نیاز

- پیاده‌سازی کد در نسخه آزمایشی شما

- استفاده از یک سرویس فونت آنلاین

- font-face با جزئیات بیشتر

• مقدمه‌ای بر طرح‌بندی CSS

- جریان طرح‌بندی عادی

- عناصر به طور پیش‌فرض چگونه چیدمان می‌شوند؟

- مثال جریان عادی

- نادیده گرفتن جریان عادی

- سایر تکنیک‌های چیدمان

• float ها

- پس‌زمینه float

- مثالی از نوع float

- شناور کردن جعبه

- تجسم شناور

- پاک کردن شناورها

- جعبه‌های پاکسازی که دور یک شناور پیچیده شده‌اند

- مشکل

- display: flow-root

• موقعیت یابی

- معرفی موقعیت‌یابی position

- موقعیت‌یابی استاتیک static

- موقعیت‌یابی نسبی relative

- معرفی بالا، پایین، چپ و راست

- موقعیت‌یابی مطلق absolute

- زمینه‌های موقعیت‌یابی

- معرفی z-index

- موقعیت‌یابی ثابت fixed

- موقعیت‌یابی چسبنده sticky

- مثال پایه

- فهرست scroll

• فلکس‌باکس

- چرا فلکس باکس؟

- معرفی یک مثال ساده

- مشخص کردن عناصری که باید به عنوان flexbox طرح‌بندی شوند

- The flex model

- ستون‌ها یا ردیف‌ها؟

- بسته بندی

- خلاصه‌سازی جریان flex

- اندازه‌بندی انعطاف‌پذیر آیتم‌های flex

- flex: خلاصه‌نویسی در مقابل طولانی‌نویسی

- تراز افقی و عمودی

- ترتیب دهی به آیتم های فلکس

- flexbox تو در تو

• طرح بندی شبکه ای CSS

- طرح شبکه‌ای چیست؟

- ایجاد شبکه در CSS

- تعریف یک شبکه

- شبکه‌های انعطاف‌پذیر با واحد fr

- شکاف بین خطوط

- تکرار فهرست مسیرها

- شبکه‌های ضمنی و صریح

- تابع minmax

- تعداد ستون‌هایی که جا می‌شوند

- جایگذاری مبتنی بر خط

- موقعیت‌یابی با grid-template-areas

- شبکه‌ها و زیرشبکه‌های تودرتو

- چارچوب‌های شبکه‌ای

• طراحی وب واکنش‌گرا

- پیش درآمدی بر طراحی واکنش‌گرا: طراحی وب موبایل

- معرفی طراحی وب واکنش‌گرا

- media query ها

- فناوری‌های طرح‌بندی واکنش‌گرا

- Flexbox

- شبکه CSS

- تصاویر/رسانه‌های واکنش‌گرا

- تایپوگرافی واکنش‌گرا

- استفاده از مدیا کوئری‌ها برای تایپوگرافی واکنش‌گرا

- استفاده از واحدهای viewport برای تایپوگرافی واکنش‌گرا

- متا تگ viewport

• اصول media query ها

- اصول اولیه مدیا کوئری ها

- انواع رسانه

- قوانین مربوط به ویژگی‌های رسانه‌ای

- عرض و ارتفاع

- جهت گیری

- استفاده از دستگاه‌های اشاره‌گر

- استفاده از سینتکس محدوده‌ای

- مدیا کوئری های پیچیده‌تر

- منطق "and" در کوئری‌های رسانه‌ای

- منطق "or" در کوئری‌های رسانه‌ای

- منطق "not" در کوئری‌های مدیا

- نحوه انتخاب نقاط شکست

- طراحی واکنش‌گرا متناسب با موبایل (mobile-first)

- طراحی موبایل-محور خودتان را بسازید

- شروع به کار

- ایجاد طرح دو ستونه برای عرض‌های متوسط

- اضافه کردن ستون سوم برای صفحات نمایش عریض‌تر

- متای viewport

- آیا واقعاً به یک media query نیاز دارید؟

• طرح‌بندی چند ستونی

- طرح سه ستونه

- تنظیم عرض ستون

- استایل دادن به ستون‌ها

- ستون‌های پوشا

- ستون‌ها و قطعه قطعه شدن

- جعبه‌های تکه‌تکه شده

- تنظیم شکست های درونی

• مثال‌های عملی موقعیت‌یابی

- یک جعبه اطلاعات تب‌بندی‌شده

- تنظیمات عمومی

- استایل‌دهی به تب‌های ما

- استایل دادن به پنل‌ها

- جاوا اسکریپت

- یک جعبه اطلاعات با تب‌های ثابت

- اضافات HTML

- تغییرات در CSS موجود

- استایل‌دهی به محتوای اصلی

- یک پنل مخفی کشویی

- استایل دادن به دکمه

- استایل دادن به پنل

- تنظیم وضعیت بررسی‌شده

آموزش جاوا اسکریپت مبتدی

• جاوا اسکریپت چیست؟

- تعریف کلی

- خب، واقعاً چه کاری می‌تواند انجام دهد؟

- جاوا اسکریپت در صفحه شما چه کاری انجام می‌دهد؟

- امنیت مرورگر

- ترتیب اجرای جاوا اسکریپت

- کد interpreted در مقابل کد compiled

- کد سمت سرور در مقابل کد سمت کلاینت

- کد پویا (dynamic) در مقابل کد ایستا (static)

- چگونه جاوا اسکریپت را به صفحه خود اضافه کنیم؟

- جاوا اسکریپت داخلی

- جاوا اسکریپت خارجی

- کنترل‌کننده‌های درون‌خطی جاوااسکریپت

- به جای آن از addEventListener استفاده کنید

- استراتژی‌های بارگذاری اسکریپت

- کامنت ها

• اولین نگاه به جاوا اسکریپت

- معرفی مثال «بازی حدس اعداد» ما

- فکر کردن مثل یک برنامه‌نویس

- خلاصه اولیه معماری

- راه اندازی اولیه

- اضافه کردن متغیرها برای ذخیره داده‌هایمان

- توابع Functions

- رشته‌های متنی Strings

- شرط ها Conditionals

- رویدادها Events

- تکمیل قابلیت‌های بازی

- حلقه‌ها Loops

• چه مشکلی پیش آمد؟ عیب‌یابی جاوا اسکریپت

- انواع ارور

- یک مثال ارور

- رفع ارورهای گزارش شده در کنسول

- رفع ارور زمان اجرا

- رفع یک ارور املایی دیگر

- یک ارور منطقی

- طی شدن مسیر منطقی

- سایر ارورهای رایج

- بازی بعد از اولین حدس اشتباه تمام می‌شود

- خطای املایی: وجود نداشتن ) بعد از لیست ورودی های ارزش به تابع

- خطای املایی: وجود نداشتن : بعد از شناسه ویژگی

- خطای املایی: } بعد از بدنه تابع وجود ندارد

- خطای املایی: جای عبارت (expression)، استرینگ است یا خطای املایی: استرینگ شامل یک پرش به خط جدید بدون املای درست است

• ذخیره اطلاعات مورد نیاز - متغیرها

- ابزارهایی که نیاز دارید

- متغیر چیست؟

- مثال متغیر

- بدون متغیر

- تعریف یک متغیر

- مقداردهی اولیه یک متغیر

- نکته‌ای در مورد متغیر var

- به‌روزرسانی یک متغیر

- نگاهی گذرا به قوانین نامگذاری متغیرها

- انواع متغیر

- اعداد numbers

- رشته‌ها string

- بولی‌ها booleans

- آرایه‌ها arrays

- اشیاء objects

- تایپ پویا

- ثابت‌ها در جاوا اسکریپت constants

- چه زمانی از const و چه زمانی از let استفاده کنیم؟

• ریاضیات پایه در جاوا اسکریپت - اعداد و اپراتور ها

- همه عاشق ریاضی هستند

- انواع اعداد

- برای من همه اینها عدد اند

- متدهای مفید اعداد

- تبدیل به انواع داده عددی

- اپراتورهای حسابی

- اولویت اپراتورها

- اپراتورهای افزایش و کاهش

- اپراتورهای انتساب

- اندازه بندی جعبه canvas

- اپراتورهای مقایسه‌ای

• مدیریت متن - رشته‌ها در جاوا اسکریپت

- قدرت کلمات

- تعریف رشته ها string

- علامت نقل قول تکی، علامت نقل قول دوتایی و علامت نقل قول معکوس

- جاسازی جاوا اسکریپت

- اتصال در متن

- اتصال با استفاده از "+"

- گنجاندن عبارات در رشته‌ها

- رشته‌های چندخطی

- گنجاندن نقل قول‌ها در رشته‌ها

- اعداد در مقابل رشته‌ها

• متدهای رشته‌ای مفید

- رشته‌ها به عنوان اشیاء

- پیدا کردن طول یک رشته

- بازیابی یک کاراکتر رشته‌ای خاص

- بررسی اینکه آیا یک رشته حاوی زیررشته است یا خیر

- پیدا کردن موقعیت یک زیر رشته در یک رشته

- استخراج یک زیررشته از یک رشته

- تغییر حالت

- به‌روزرسانی بخش‌هایی از یک رشته

- چالش‌های یادگیری

- فیلتر کردن پیام‌های تبریک

- اصلاح حروف بزرگ

- ساخت رشته‌های جدید از قطعات

• آرایه‌ها

- آرایه چیست؟

- ایجاد آرایه‌ها

- پیدا کردن طول یک آرایه

- دسترسی و تغییر آیتم‌های آرایه

- پیدا کردن شماره آیتم‌ها در یک آرایه

- اضافه کردن آیتم ها

- حذف موارد

- دسترسی به هر مورد

- تبدیل بین رشته‌ها و آرایه‌ها

• تصمیم‌گیری در کد شما - شرط‌ها

- به یه شرط!

- دستورات if...else

- سینتکس پایه if...else

- یک مثال واقعی

- else if

- نکته‌ای در مورد اپراتورهای مقایسه‌ای

- تو در تو سازی if...else

- عملگرهای منطقی: AND، OR و NOT

- دستورات سوئیچ

- یک مثال سوئیچ

- اپراتور سه تکه

- مثال اپراتور سه تکه

• حلقه ها در کد

- چرا حلقه‌ها مفید هستند؟

- مثال کد حلقه

- با حلقه و بدون حلقه

- حلقه زدن روی یک مجموعه

- حلقه for...of

- map و filter

- حلقه for استاندارد

- محاسبه مربع‌ها

- پیمایش مجموعه‌ها با حلقه for

- خروج از حلقه‌ها با break

- رد کردن تکرارها با continue

- while و do...while

- از کدام نوع حلقه باید استفاده کنید؟

• توابع - بلوک‌های کد قابل استفاده مجدد

- توابع رو از کجا پیدا کنم؟

- توابع داخلی مرورگر

- توابع و متدها

- فراخوانی توابع

- پارامترهای تابع

- پارامترهای اختیاری

- پارامترهای پیش‌فرض

- توابع بی نام و توابع پیکانی

- مثال تابع بی نام

- توابع پیکانی arrow functions

- نمونه زنده تابع arrow

- دامنه تابع و تداخلات

- نگاهی گذرا بر حلقه و دامنه شرطی

• تابع خودتان را بسازید

- بیایید یک تابع بسازیم

- تابع پایه

- فراخوانی تابع

- بهبود تابع با پارامترها

- یک پارامتر پیچیده‌تر

• مقادیر برگشتی تابع

- مقادیر بازگشتی چیستند؟

- نحوه برگرداندن یک مقدار

- پیاده‌سازی مقادیر بازگشتی تابع

- چند تا تابع خودت اضافه کن!

• مقدمه‌ای بر رویدادها

- رویداد چیست؟

- یک مثال: مدیریت یک رویداد کلیک

- استفاده از addEventListener

- گوش دادن به رویدادهای دیگر

- حذف شنوندگان رویداد

- اضافه کردن چندین شنونده برای یک رویداد واحد

- سایر مکانیزم‌های شنونده رویداد

- ویژگی‌های کنترل‌کننده رویداد

- کنترل‌کننده‌های رویداد درون‌خطی - از این‌ها استفاده نکنید

- اشیاء رویداد

- ویژگی‌های اضافی اشیاء رویداد

- جلوگیری از رفتار پیش‌فرض

- رویداد ها فقط مختص صفحات وب نیستند

• حباب رویداد

- تنظیم یک شنونده (listener) روی عنصر والد

- مثال حبابی

- مثال پخش کننده ویدیو

- رفع مشکل با stopPropagation

- ثبت رویداد

- نمایندگی رویداد

- target و currentTarget

• اصول اولیه شیء جاوا اسکریپت

- اصول اولیه شیء

- نمادگذاری نقطه‌ای

- اشیاء به عنوان ویژگی‌های اشیاء دیگر

- نمادگذاری با براکت

- تنظیم اعضای شیء

- «this» چیست؟

- معرفی سازنده‌ها

- تمام این مدت داشتید از اشیاء استفاده می‌کردید

• مقدمه‌ای بر اسکریپت‌نویسی DOM

- بخش‌های مهم یک مرورگر وب

- مدل شیء سند

- انجام برخی دستکاری‌های اولیه DOM

- ایجاد و قرار دادن گره‌های جدید

- جابجایی و حذف عناصر

- دستکاری استایل‌ها

• ایجاد درخواست‌های شبکه با جاوا اسکریپت

- مشکل اینجا چیست؟

- Fetch API

- دریافت محتوای متنی

- مثال خود را از یک سرور ارائه دهید

- فروشگاه قوطی

- API مربوط به XMLHttpRequest

• کار با JSON

- json چیست؟

- ساختار JSON

- آرایه‌ها به صورت JSON

- محدودیت‌های سینتکس JSON

- کار با یک مثال JSON

- شروع به کار

- تابع سطح بالا

- پر کردن هدر

- ایجاد کارت‌های اطلاعات قهرمانان

- فراخوانی تابع سطح بالا

- تبدیل بین اشیاء و متن

• اشکال‌زدایی و مدیریت ارور در جاوا اسکریپت

- خلاصه‌ای از انواع خطاهای جاوا اسکریپت

- کد خود را لینت کنید

- افزونه‌های ویرایشگر کد

- مشکلات رایج جاوا اسکریپت

- کنسول جاوا اسکریپت مرورگر

- API کنسول

- console.error و call stack

- رفع ارور

- استفاده از اشکال‌زدای جاوا اسکریپت

- مدیریت ارورهای جاوا اسکریپت در کد شما

- شرطی‌ها

- نمایش خطاهای سفارشی

- try...catch

- تشخیص ویژگی

- پیدا کردن کمک

آموزش جاوا اسکریپت پیشرفته

• شئ و پروتوتایپ آن

- زنجیره پروتوتایپ

- ویژگی‌های سایه‌ای

- تنظیم پروتوتایپ

- استفاده از Object.create

- با استفاده از سازنده constructor

- ویژگی شخصی

- پروتوتایپ ها و وراثت

• برنامه‌نویسی شیءگرا

- کلاس‌ها و نمونه‌ها

- وراثت

- کپسوله سازی

- OOP و جاوا اسکریپت

• کلاس‌ها در جاوااسکریپت

- کلاس‌ها و سازنده‌ها

- حذف سازنده‌ها

- وراثت

- کپسوله سازی

- متدهای خصوصی

• جاوا اسکریپت ناهمزمان

- برنامه‌نویسی همزمان

- یک تابع همگام با اجرای طولانی مدت

- مشکل توابع همگام با اجرای طولانی مدت

- گرداننده‌های رویداد

- Callback ها

• نحوه استفاده از promise

- استفاده از fetch API

- زنجیر کردن promiseها

- گرفتن ارورها

- اصطلاحات promise

- ترکیب چندین promise

- async و await

• نحوه پیاده‌سازی یک API مبتنی بر promise

- پیاده‌سازی API مربوط به alarm

- بسته‌بندی setTimeout

- سازنده‌ی Promise

- استفاده از API مربوط به alarm

- استفاده از async و await با API مربوط به alarm

• معرفی workerها

- استفاده از web worker

- تولیدکننده‌ی همزمان عدد اول

- تولیدکننده‌ی عدد اول با worker

- انواع دیگر worker

ابزار و نرم افزارها

• چگونه از گیت‌هاب استفاده کنم؟

- انتشار محتوا

- تنظیمات اولیه گیت‌هاب

- آماده‌سازی کد برای آپلود

- نگاهی گذرا به رابط‌های خط فرمان

- ایجاد یک مخزن (repo) برای کد شما

- آپلود فایل‌های شما در گیت‌هاب

- دانش بیشتر در مورد گیت‌هاب

• چگونه مطمئن شویم که وب‌سایت ما به درستی کار می‌کند؟

- در مرورگر خود تست کنید

- تصویر کجاست؟

- وضعیت‌های HTTP

- رفع خطای ۴۰۴

- ارور های رایج

- غلط املایی در آدرس

- خطاهای ۴۰۴

- خطاهای جاوا اسکریپت

- موارد بیشتر برای بررسی

- سرعت اجرا

- آیا سرور به اندازه کافی پاسخگو است؟

- یک چک لیست ساده

• چگونه یک سرور تست محلی راه‌اندازی کنیم؟

- فایل‌های محلی در مقابل فایل‌های راه دور

- مشکل در آزمایش فایل‌های محلی

- اجرای یک سرور HTTP محلی ساده

- استفاده از یک افزونه در ویرایشگر کد شما

- استفاده از Node.js

- استفاده از پایتون

- اجرای زبان‌های سمت سرور به صورت محلی

• چگونه فایل‌های خود را روی یک سرور وب آپلود کنیم؟

- خلاصه

- SFTP

- ورود به سیستم

- اینجا و آنجا: نمای محلی و از راه دور

- آپلود روی سرور

- آیا واقعاً آنلاین هستند؟

- Rsync

- ابزارهای رابط کاربری گرافیکی Rsync

- GitHub

- روش‌های دیگر برای آپلود فایل‌ها

• ابزارهای توسعه‌دهنده مرورگر چیست؟

- نحوه باز کردن ابزارهای توسعه (devtools) در مرورگر

- بررسی DOM inspector

- بررسی ویرایشگر CSS

- اشکال‌زدای جاوا اسکریپت

- بررسی دیباگر

- فهرست فایل‌ها

- کد منبع

- عبارات و نقاط توقف را تماشا کنید

- اطلاعات بیشتر

- کنسول جاوا اسکریپت

- اطلاعات بیشتر

راهنمای HTML

• راهنمای HTML برای سینتکس و اعمال رایج

- عناصر درون‌خطی

- عناصر بلوک

• استفاده از اعتبارسنجی فرم HTML و API اعتبارسنجی محدودیت

- محدودیت‌های ذاتی و اساسی

- انواع input معنایی

- ویژگی‌های مرتبط با اعتبارسنجی

- فرآیند اعتبارسنجی محدودیت

- محدودیت‌های پیچیده با استفاده از API اعتبارسنجی محدودیت

- محدودیت ترکیب چندین فیلد: اعتبارسنجی کد پستی

- محدود کردن حجم فایل قبل از آپلود

- استایل‌دهی بصری اعتبارسنجی محدودیت‌ها

• دسته بندی محتوا

- محتوای فراداده metadata

- محتوای جریان flow

- محتوای بخش‌بندی section

- محتوای عنوان heading

- محتوای جمله‌بندی شده phrase

- محتوای جاسازی‌شده embed

- محتوای تعاملی interactive

- محتوای ملموس palpable

- عناصر بدون دسته بندی

- عناصر پشتیبان اسکریپت

- محتوای مرتبط با فرم

- مدل محتوای شفاف

• استفاده از فرمت‌های تاریخ و زمان در HTML

- مثال‌ها

- مبانی

- سال شمارها

- سال‌های کبیسه

- ماه‌های سال

- روزهای ماه

- رشته‌های هفته

- رشته‌های ماه

- رشته‌های تاریخ

- رشته‌های زمانی

- رشته‌های تاریخ و زمان محلی

- رشته‌های تاریخ و زمان سراسری

- رشته اختلاف در منطقه‌های زمانی

- مشکلات مربوط به تاریخ

- مشکل Y2K38 (اغلب سمت سرور)

- مشکل Y10k (اغلب از سمت کلاینت)

• استفاده از میکرودیتا در HTML

- واژگان

- محلی سازی

- ویژگی‌های سراسری

- مثال

• استفاده از میکروفرمت‌ها در HTML

- نحوه کار میکروفرمت‌ها

- موارد استفاده از میکروفرمت‌ها

- پیشوندهای میکروفرمت

- h-card

- مثال h-card تو در تو

- h-entry

- مثال h-entry پاسخ تجزیه‌شده

- h-feed

- h-event

- مثال h-event تجزیه‌شده‌

- مثال‌هایی از ویژگی‌های rel در میکروفرمت‌ها

- rel=author

- rel=license

- rel=nofollow

• درک ویژگی‌ها و حالت‌های استاندارد

- مرورگرها چگونه تشخیص می‌دهند که از کدام حالت استفاده کنند؟

- XHTML

- چطور ببینم از کدام حالت استفاده شده است؟

• استفاده از تصاویر واکنش‌گرا در HTML

- چرا تصاویر واکنش‌گرا؟

- چگونه تصاویر واکنش‌گرا (ریسپانسیو) ایجاد کنیم؟

- تغییر وضوح: اندازه‌های مختلف

- تغییر وضوح: اندازه یکسان، وضوح‌های متفاوت

- جهت هنری

- چرا نمی‌توانیم این کار را فقط با استفاده از CSS یا جاوا اسکریپت انجام دهیم؟

- پیاده‌سازی تصاویر واکنش‌گرای خودتان

مرجع عناصر HTML

• عنصر <a>

- امتحانش کنید

- ویژگی‌ها

- ویژگی‌های منسوخ‌شده

- متن لینک ضعیف و غیرقابل دسترسی

- متن لینک قوی و قابل دسترسی

- رویدادهای onclick

- لینک‌های خارجی و لینک دادن به منابع غیر HTML

- لینکی که یک برگه/پنجره جدید باز می‌کند

- لینک به یک منبع غیر HTML

- لینک پرش

- سایز

- مجاورت

- لینک دادن به یک URL مطلق

- لینک دادن به URL های نسبی

- لینک دادن به یک عنصر در همان صفحه

- لینک دادن به یک آدرس ایمیل

- لینک دادن به شماره تلفن‌ها

- استفاده از ویژگی دانلود برای ذخیره <canvas> به عنوان PNG

- نمونه برنامه نقاشی با لینک ذخیره

- امنیت و حریم خصوصی

- خلاصه فنی

- نقش‌های مجاز ARIA

• عنصر <abbr>

- امتحانش کنید

- ویژگی‌ها

- موارد استفاده رایج

- ملاحظات دستوری

- استایل پیش‌فرض

- دسترسی‌پذیری

- علامت‌گذاری یک اختصار از نظر معنایی

- اختصارات استایل‌دهی

- فراهم کردن امکان گسترش

- تعریف یک اختصار

• عنصر <acronym> (منسوخ)

- ویژگی‌ها

- رابط DOM

- مثال

- استایل پیش‌فرض

• عنصر <address>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- مثال

• عنصر <area>

- امتحانش کنید

- ویژگی‌ها

- تصویر با نواحی قابل کلیک

• عنصر <article>

- Try it

- ویژگی‌ها

- یادداشت‌های استفاده

- مثال

• عنصر <aside>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- استفاده از <aside>

• عنصر <audio>

- امتحانش کنید

- ویژگی‌ها

- رویدادها

- یادداشت‌های استفاده

- استایل‌دهی با CSS

- تشخیص اضافه شدن و حذف شدن آهنگ‌ها

- دسترسی‌پذیری

- کاربرد اولیه

- عنصر <audio> به همراه عنصر <source>

- <audio> با چندین عنصر <source>

• عنصر <b>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- مثال

• عنصر <base>

- ویژگی‌ها

- چندین عنصر <base>

- لینک های درون صفحه‌ای

- هدف ممکن است شامل خط جدید ASCII، تب یا < نباشد

- Open Graph

- مثال

• عنصر <bdi>

- امتحانش کنید

- ویژگی‌ها

- بدون bdi و فقط با LTR

- بدون bdi با متن RTL

- استفاده از bdi با متن LTR و RTL

• عنصر <bdo>

- امتحانش کنید

- ویژگی‌ها

- مثال

- یادداشت‌ها

• عنصر <big> (منسوخ)

- ویژگی‌ها

- استفاده از big

- استفاده از اندازه فونت در CSS

- رابط DOM

• عنصر <blockquote>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- مثال

• عنصر <body>

- ویژگی‌ها

- ویژگی‌های رویداد

- ویژگی‌های منسوخ‌شده

- مثال

• عنصر <br>

- امتحانش کنید

- ویژگی‌ها

- ویژگی‌های منسوخ‌شده

- استایل‌دهی با CSS

- دسترسی‌پذیری

- br ساده

• عنصر <button>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌ها

- دکمه‌های آیکون

- سایز

- مجاورت

- اطلاعات حالت ARIA

- استایل‌های دکمه

- کلیک و فوکوس

- ایجاد یک دکمه پایه

- استفاده از مقدار request-close برای ویژگی command

- HTML

• عنصر <canvas>

- ویژگی‌ها

- محتوای جایگزین

- تگ پایانی <canvas>

- اندازه‌گذاری canvas با استفاده از CSS در مقابل HTML

- حداکثر اندازه canvas

- استفاده از canvas خارج از صفحه

- دسترسی پذیری:‌ محتوای جایگزین

- مثال

• عنصر <caption>

- امتحانش کنید

- ویژگی‌ها

- ویژگی‌های منسوخ‌شده

- یادداشت‌های استفاده

- مثال

- جدول با عنوان

- HTML

• عنصر <center> (منسوخ)

- رابط DOM

- مثال ۱

- مثال ۲ (جایگزین CSS)

- مثال ۳ (جایگزین CSS)

• عنصر <cite>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- مثال

• عنصر <code>

- امتحانش کنید

- ویژگی‌ها

- مثال

- یادداشت‌ها

• عنصر <col>

- امتحانش کنید

- ویژگی‌ها

- ویژگی‌های منسوخ‌شده

- یادداشت‌های استفاده

- مثال

• عنصر <colgroup>

- امتحانش کنید

- ویژگی‌ها

- ویژگی‌های منسوخ‌شده

- یادداشت‌های استفاده

- مثال

• عنصر <data>

- امتحانش کنید

- ویژگی‌ها

- مثال

• عنصر <datalist>

- امتحانش کنید

- ویژگی‌ها

- دسترسی‌پذیری

- انواع متنی

- انواع تاریخ و زمان

- نوع محدوده

- نوع رنگ

• عنصر <dd>

- امتحانش کنید

- ویژگی‌ها

- مثال

• عنصر <del>

- امتحانش کنید

- ویژگی‌ها

- دسترسی‌پذیری

- مثال

• عنصر <details>

- امتحانش کنید

- ویژگی‌ها

- رویدادها

- یک مثال افشای اطلاعات اولیه

- ایجاد یک جعبه افشای اطلاعات عمومی

- چندین جعبه افشای نام‌گذاری شده

- سفارشی‌سازی ظاهر

• عنصر <dfn>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- مشخص کردن اصطلاح مورد تعریف

- لینک‌ها به عناصر <dfn>

- شناسایی اولیه یک اصطلاح

- پیوند به تعاریف

- استفاده از اختصارات و تعاریف در کنار هم

• عنصر <dialog>

- ویژگی‌ها

- توضیحات

- کنترل دیالوگ‌ها با استفاده از جاوا اسکریپت

- دیالوگ‌های مودال با استفاده از دستورات invoker

- دیالوگ‌های غیرمودال با استفاده از دستورات popover

- بستن dialog

- استایل‌دهی CSS

- یادداشت‌های تکمیلی

- دسترسی‌پذیری

- ویژگی‌های HTML رابط برنامه‌نویسی کاربردی فرمان Invoker

- ویژگی‌های HTML API مربوط به Popover

- استفاده از ویژگی open در dialog

- ایجاد یک دیالوگ modal

- مدیریت مقدار برگشتی از کادر dialog

- بستن یک dialog با ورودی فرم الزامی

- مقایسه رفتارهای مختلف closedby

- انیمیشن در دیالوگ‌ها

- transition برای عنصر dialog

- انیمیشن‌های keyframe دیالوگ

• عنصر <dir> (منسوخ)

- رابط DOM

- ویژگی‌ها

• عنصر <div>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- دسترسی‌پذیری

- یک مثال اساسی

- یک مثال استایل شده

• عنصر <dl>

- امتحانش کنید

- ویژگی‌ها

- دسترسی‌پذیری

- مثال تک‌جمله و توضیح

- مثال چندین اصطلاح، یک توضیح

- مثال یک اصطلاح، چندین توصیف

- مثال اصطلاحات و توضیحات متعدد

- فراداده

- قرار دادن گروه‌های نام-مقدار در عناصر div

- یادداشت‌ها

• عنصر <dt>

- امتحانش کنید

- ویژگی‌ها

- مثال

• عنصر <em>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- <i> در مقابل <em>

- مثال

• عنصر <embed>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- دسترسی‌پذیری

- مثال

• عنصر <fencedframe> (آزمایشی)

- ویژگی‌ها

- سیاست‌های دسترسی موجود برای fencedframe

- فوکوس کردن در fencedframe

- موقعیت‌یابی و مقیاس‌بندی

- دسترسی‌پذیری

- مثال

• عنصر <fieldset>

- امتحانش کنید

- ویژگی‌ها

- استایل‌دهی با CSS

- مثال

- فیلدست غیرفعال

• عنصر <figcaption>

- امتحانش کنید

- ویژگی‌ها

- مثال

• عنصر <figure>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- تصاویر

- قطعه کدها

- نقل قول‌ها

- اشعار

• عنصر <font> (منسوخ)

- ویژگی‌ها

- رابط DOM

• عنصر <footer>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- دسترسی‌پذیری

- مثال

• عنصر <form>

- امتحانش کنید

- ویژگی‌ها

- ویژگی‌های ارسال فرم

- مثال

• عنصر <frame> (منسوخ)

- ویژگی‌ها

- یک سند frameset

• عنصر <frameset> (منسوخ)

- ویژگی‌ها

- مثال

• عنصر <geolocation> (آزمایشی)

- ویژگی‌ها

- توضیحات

- ارتباط با API موقعیت جغرافیایی

- تنظیم زبان دکمه

- محتوای جایگزین

- مسدود کردن <geolocation>

- محدودیت‌های استایل‌دهی

- محدودیت‌های دسترسی

- محدودیت‌های ارزش

- محدودیت‌های پیچیده

- ویژگی‌هایی که می‌توانند به طور معمول تنظیم شوند

- دسترسی‌پذیری

- مثال استفاده اولیه

• عنصر های <h1>-<h6>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- از استفاده از چندین عنصر <h1> در یک صفحه خودداری کنید

- تعیین اندازه فونت یکنواخت برای <h1>

- ناوبری

- برچسب‌گذاری محتوای بخش

- همه سرفصل‌ها

• عنصر <head>

- ویژگی‌ها

- مثال

• عنصر <header>

- امتحانش کنید

- یادداشت‌های استفاده

- کاربرد تاریخی

- ویژگی‌ها

- دسترسی‌پذیری

- سربرگ صفحه

- سربرگ مقاله

• عنصر <hgroup>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- مثال‌ها

• عنصر <hr>

- امتحانش کنید

- ویژگی‌ها

- مثال

• عنصر <html>

- ویژگی‌ها

- دسترسی‌پذیری

- مثال

• عنصر <i>

- امتحانش کنید

- ویژگی‌ها

- یادداشت‌های استفاده

- مثال

• عنصر <iframe>

- امتحانش کنید

- ویژگی‌ها

- ویژگی‌های منسوخ‌شده

- اسکریپت نویسی

- ناوبری بالا در فریم‌های با مبدا متقابل

- موقعیت‌یابی و مقیاس‌بندی

- رفتار رویدادهای error و load

- دسترسی‌پذیری

- یک <iframe> ساده

- جاسازی کد منبع در <iframe>

• عنصر <img>

- امتحانش کنید

- فرمت‌های تصویر پشتیبانی‌شده

- خطاهای بارگذاری تصویر

- ویژگی‌ها

- ویژگی‌های منسوخ‌شده

- استایل‌دهی با CSS

- نوشتن توضیحات جایگزین معنادار

- شناسایی SVG به عنوان تصویر

- ویژگی عنوان

- مثال متن جایگزین

- لینک تصویری

- استفاده از ویژگی srcset

- استفاده از ویژگی‌های srcset و sizes

- نگرانی‌های امنیتی و حریم خصوصی

آموزش CSS مبتدی : رسیدگی به مغایرت ها

هدف از این درس، توسعه درک شما از برخی از اساسی‌ترین مفاهیم CSS - آبشار، ویژگی و وراثت - است که نحوه اعمال CSS بر HTML و نحوه حل اختلافات بین اعلان‌های سبک را کنترل می‌کنند. اگرچه ممکن است مطالعه این درس در ابتدا بی‌ربط و کمی آکادمیک‌تر از برخی بخش‌های دیگر دوره به نظر برسد، اما درک این مفاهیم شما را از دردسرهای بعدی نجات خواهد داد! ما شما را تشویق می‌کنیم که این بخش را با دقت مطالعه کنید و قبل از ادامه، بررسی کنید که مفاهیم را درک کرده‌اید.

قوانین متناقض

   CSS مخفف Cascading Style Sheets است و درک کلمه اول یعنی cascading بسیار مهم است - نحوه رفتار cascade کلید درک CSS است. در برهه‌ای از زمان، شما روی یک پروژه کار خواهید کرد و متوجه خواهید شد که برخی از CSS هایی که فکر می‌کنید باید روی یک عنصر اعمال شوند، کار نمی‌کنند. اغلب، این مشکل زمانی رخ می‌دهد که دو قانون ایجاد می‌کنید که مقادیر مختلفی از یک ویژگی را روی یک عنصر اعمال می‌کنند. Cascade و مفهوم نزدیک به آن، specificity، مکانیسم‌هایی هستند که کنترل می‌کنند کدام قانون هنگام بروز چنین تداخلی اعمال شود. ممکن است تعریفی که عنصر شما را استایل می‌دهد، آن چیزی نباشد که انتظار دارید، بنابراین باید نحوه کار این مکانیسم‌ها را درک کنید. همچنین در اینجا مفهوم وراثت قابل توجه است، به این معنی که برخی از ویژگی‌های CSS به طور پیش‌فرض مقادیر تنظیم شده روی عنصر والد عنصر فعلی را به ارث می‌برند و برخی دیگر این کار را نمی‌کنند. این همچنین می‌تواند باعث رفتار غیرمنتظره‌ای شود. بیایید با نگاهی سریع به مفاهیم کلیدی که با آنها سر و کار داریم شروع کنیم، سپس به نوبت به هر کدام نگاه خواهیم کرد و خواهیم دید که چگونه با یکدیگر و CSS شما تعامل دارند. درک این مفاهیم ممکن است دشوار به نظر برسد، اما با تمرین بیشتر در نوشتن CSS، واضح‌تر خواهند شد.

آبشاری cascade

   آبشاری شدن استایل‌شیت‌ها. در سطح بسیار ساده، این به این معنی است که مبدا و ترتیب قوانین CSS اهمیت دارند. وقتی دو قانون هر دو دارای ویژگی یکسانی باشند، آن قانونی که در استایل‌شیت آخر تعریف شده است، همان قانونی است که استفاده خواهد شد. مفاهیم دیگری نیز وجود دارند که تأثیر دارند، مانند لایه‌های آبشاری، اما این‌ها پیشرفته‌تر هستند و ما در اینجا به جزئیات آن‌ها نمی‌پردازیم. در مثال زیر، دو قانون داریم که می‌توانند روی عنصر اعمال شوند. محتوای در نهایت به رنگ آبی در می‌آید. دلیل این امر این است که هر دو قانون از یک منبع هستند، یک انتخابگر عنصر یکسان دارند و بنابراین، ویژگی یکسانی دارند، اما آخرین مورد در ترتیب منبع برنده می‌شود.

HTML

CSS

مشخصه specificity

   مشخصه، الگوریتمی است که مرورگر برای تصمیم‌گیری در مورد اینکه کدام مقدار ویژگی به یک عنصر اعمال شود، استفاده می‌کند. اگر چندین قانون، انتخابگرهای مختلفی داشته باشند که مقادیر متفاوتی را برای یک ویژگی تعیین کنند و یک عنصر را هدف قرار دهند، ویژگی، مقدار ویژگی اعمال شده به عنصر را تعیین می‌کند. ویژگی اساساً معیاری برای میزان خاص بودن انتخاب یک انتخابگر است: یک انتخابگر نوع (عنصر) کمتر مشخص و خاص است؛ تمام عناصر آن نوع را که در یک صفحه ظاهر می‌شوند انتخاب می‌کند، بنابراین وزن کمتری دارد. انتخابگرهای شبه عنصر همان ویژگی انتخابگرهای عناصر معمولی را دارند. یک انتخابگر کلاس مشخص تر و خاص‌تر است؛ فقط عناصری را در یک صفحه انتخاب می‌کند که مقدار ویژگی کلاس خاصی دارند، بنابراین وزن بیشتری دارد. انتخابگرهای ویژگی و شبه کلاس‌ها وزنی مشابه یک کلاس دارند. یک انتخابگر شناسه حتی خاص‌تر است - فقط یک عنصر واحد با مقدار شناسه خاص را انتخاب می‌کند. بنابراین وزن بیشتری دارد. در زیر، دوباره دو قانون داریم که می‌توانند برای عنصر اعمال شوند. محتوای زیر در نهایت به رنگ قرمز درمی‌آید، حتی با اینکه عبارت در ترتیب کد منبع دیرتر ظاهر می‌شود، زیرا انتخابگر کلاس به قاعده خود سطح خصوصیت بالاتری نسبت به انتخابگر نوع h1 می‌دهد. تعریفی با سطح خصوصیت بالاتر که با استفاده از انتخابگر کلاس تعریف شده است، اعمال می‌شود.

HTML

CSS

وراثت inheritance

   وراثت نیز باید در این زمینه درک شود - برخی از مقادیر ویژگی‌های CSS که روی عناصر والد تنظیم می‌شوند، توسط عناصر فرزندشان به ارث می‌رسند و برخی دیگر نه. برای مثال، اگر یک رنگ و را روی یک عنصر تنظیم کنید، هر عنصر درون آن نیز با آن رنگ و فونت استایل‌دهی می‌شود، مگر اینکه مقادیر رنگ و فونت متفاوتی را مستقیماً به آنها اعمال کرده باشید.

HTML

CSS

   بعضی از ویژگی‌ها ارث‌بری نمی‌کنند - برای مثال width اگر برای یک عنصر، width برابر با ۵۰٪ تنظیم کنید، تمام فرزندان آن width برابر با ۵۰٪ از width والد خود دریافت نمی‌کنند. اگر اینطور بود، استفاده از CSS بسیار خسته‌کننده می‌شد!

درک چگونگی تعامل مفاهیم با یکدیگر

   این سه مفهوم (آبشاری، اختصاصی بودن و وراثت) با هم کنترل می‌کنند که کدام CSS برای کدام عنصر اعمال شود. در بخش‌های زیر، خواهیم دید که چگونه آنها با هم کار می‌کنند. گاهی اوقات ممکن است کمی پیچیده به نظر برسد، اما با افزایش تجربه در CSS، آنها را به خاطر خواهید آورد و اگر جزئیات را فراموش کردید، همیشه می‌توانید آنها را جستجو کنید! حتی توسعه‌دهندگان باتجربه هم همه جزئیات را به خاطر نمی‌آورند.

درک وراثت

   با وراثت شروع می‌کنیم. در مثال زیر، یک عنصر داریم که دو سطح از لیست‌های نامرتب درون آن قرار گرفته‌اند. به بیرونی، حاشیه، فاصله‌گذاری و رنگ فونت داده‌ایم. ویژگی رنگ یک ویژگی ارثی است. بنابراین، مقدار ویژگی رنگ به فرزندان مستقیم و همچنین به فرزندان غیرمستقیم - فرزندان بی‌واسطه ها و آنهایی که درون لیست تودرتوی اول هستند - اعمال می‌شود. سپس کلاس special را به لیست تودرتوی دوم اضافه کرده‌ایم و رنگ متفاوتی به آن اعمال کرده‌ایم. سپس این کلاس از طریق فرزندانش به ارث می‌رسد.

HTML

CSS

   ویژگی‌هایی مانند عرض (همانطور که قبلاً ذکر شد)، حاشیه، فاصله‌گذاری و حاشیه، ویژگی‌های ارثی نیستند. اگر قرار بود یک حاشیه توسط فرزندان در این مثال لیست به ارث برده شود، هر لیست و آیتم لیست یک حاشیه به دست می‌آورد - احتمالاً این تأثیری نیست که ما هرگز بخواهیم! اگرچه هر صفحه ویژگی CSS فهرست می‌کند که آیا ویژگی به ارث برده می‌شود یا خیر، اگر بدانید که مقدار ویژگی به چه جنبه‌ای استایل می‌دهد، اغلب می‌توانید به طور شهودی همین را حدس بزنید.

کنترل وراثت

   CSS پنج مقدار ویژگی جهانی ویژه برای کنترل وراثت ارائه می‌دهد. هر ویژگی CSS این مقادیر را می‌پذیرد. heritance مقدار ویژگی اعمال شده به یک عنصر انتخاب شده را برابر با عنصر والد آن قرار می‌دهد. در واقع، این "وراثت را فعال می‌کند". initial مقدار ویژگی اعمال شده به یک عنصر انتخاب شده را به مقدار اولیه آن ویژگی تنظیم می‌کند. revert مقدار ویژگی اعمال شده به یک عنصر انتخاب شده را به سبک پیش‌فرض مرورگر به جای پیش‌فرض‌های اعمال شده به آن ویژگی، بازنشانی می‌کند. این مقدار در بسیاری از موارد مانند unset عمل می‌کند. revert-layer مقدار ویژگی اعمال شده به یک عنصر انتخاب شده را به مقداری که در یک لایه آبشاری قبلی ایجاد شده است، بازنشانی می‌کند. unset ویژگی را به مقدار طبیعی خود بازنشانی می‌کند، به این معنی که اگر ویژگی به طور طبیعی به ارث رسیده باشد، مانند inherit عمل می‌کند، در غیر این صورت مانند initial عمل می‌کند.

HTML

CSS

تنظیم مجدد تمام مقادیر ویژگی‌ها

   ویژگی خلاصه CSS به نام all می‌تواند برای اعمال یکی از این مقادیر وراثت به (تقریباً) همه ویژگی‌ها به طور همزمان استفاده شود. مقدار آن می‌تواند هر یک از مقادیر وراثت (inherit، initial، revert، revert-layer یا unset) باشد. این یک روش مناسب برای لغو تغییرات ایجاد شده در سبک‌ها است تا بتوانید قبل از شروع تغییرات جدید به یک نقطه شروع شناخته شده برگردید. در مثال زیر، دو blockquote داریم. در اولی، استایل به خود عنصر blockquote اعمال شده است. در دومی، یک کلاس به blockquote اعمال شده است که مقدار all را unset قرار می‌دهد.

HTML

CSS

درک آبشار

   اکنون می‌دانیم که وراثت دلیل این است که چرا یک پاراگراف که در اعماق ساختار HTML شما قرار دارد، همان رنگی را دارد که CSS اعمال شده بر روی بدنه دارد. از دروس مقدماتی، ما درک کرده‌ایم که چگونه CSS اعمال شده بر روی چیزی را در هر نقطه از سند تغییر دهیم - چه با اختصاص CSS به یک عنصر و چه با ایجاد یک کلاس. اکنون بررسی خواهیم کرد که چگونه آبشار تعریف می‌کند کدام قوانین CSS زمانی اعمال می‌شوند که بیش از یک بلوک سبک، ویژگی یکسانی را با مقادیر مختلف، بر روی یک عنصر اعمال می‌کنند. سه عامل برای بررسی وجود دارد که در اینجا به ترتیب اهمیت فزاینده فهرست شده‌اند. موارد بعدی بر موارد قبلی غلبه می‌کنند: - ترتیب منبع - مشخصه - اهمیت ما به این موارد نگاه خواهیم کرد تا ببینیم مرورگرها چگونه دقیقاً متوجه می‌شوند که چه CSS باید اعمال شود.

ترتیب منبع

   قبلاً دیده‌ایم که ترتیب منبع چگونه برای آبشار اهمیت دارد. اگر بیش از یک قانون داشته باشید که همه آنها دقیقاً وزن یکسانی داشته باشند، آنگاه قانونی که در CSS آخر می‌آید برنده خواهد شد. می‌توانید این را اینگونه در نظر بگیرید: قانونی که به خود عنصر نزدیک‌تر است، قوانین قبلی را بازنویسی می‌کند تا زمانی که آخرین قانون برنده شود و عنصر را استایل‌دهی کند. ترتیب منبع فقط زمانی اهمیت دارد که وزن ویژگی قوانین یکسان باشد، بنابراین بیایید در ادامه به ویژگی ویژگی بپردازیم.

مشخصه

   شما اغلب با موقعیتی مواجه می‌شوید که می‌دانید یک قانون در صفحه استایل بعداً می‌آید، اما یک قانون قبلی و متناقض اعمال می‌شود. این اتفاق می‌افتد زیرا قانون قبلی مشخصه بالاتری دارد - خاص‌تر است و بنابراین توسط مرورگر به عنوان قانونی که باید عنصر را استایل‌بندی کند، انتخاب می‌شود. همانطور که قبلاً در این درس دیدیم، یک انتخابگر کلاس وزن بیشتری نسبت به یک انتخابگر عنصر دارد، بنابراین ویژگی‌های تعریف شده در بلوک سبک کلاس، ویژگی‌های تعریف شده در بلوک سبک عنصر را لغو می‌کنند. نکته قابل توجه این است که اگرچه ما در مورد انتخابگرها و قوانینی که بر متن یا مؤلفه‌ای که انتخاب می‌کنند اعمال می‌شود، فکر می‌کنیم، اما کل قانون بازنویسی نمی‌شود، بلکه فقط ویژگی‌هایی که در چندین مکان تعریف شده‌اند، بازنویسی می‌شوند. این رفتار به جلوگیری از تکرار در CSS شما کمک می‌کند. یک روش معمول این است که سبک‌های عمومی را برای عناصر پایه تعریف کنید و سپس کلاس‌هایی را برای آنهایی که متفاوت هستند ایجاد کنید. به عنوان مثال، در صفحه استایل زیر، ما سبک‌های عمومی را برای عناوین سطح 2 تعریف کرده‌ایم و سپس کلاس‌هایی ایجاد کرده‌ایم که فقط برخی از ویژگی‌ها و مقادیر را تغییر می‌دهند. مقادیری که در ابتدا تعریف شده‌اند، روی همه سرعنوان‌ها اعمال می‌شوند، سپس مقادیر خاص‌تر روی سرعنوان‌های دارای کلاس اعمال می‌شوند.

HTML

CSS

   حال بیایید نگاهی به نحوه محاسبه ویژگی توسط مرورگر بیندازیم. ما از قبل می‌دانیم که یک انتخابگر عنصر، ویژگی کمی دارد و می‌تواند توسط یک کلاس بازنویسی شود. اساساً یک مقدار بر حسب امتیاز به انواع مختلف انتخابگرها اختصاص داده می‌شود و جمع این امتیازها، وزن آن انتخابگر خاص را به شما می‌دهد که سپس می‌توان آن را در مقایسه با سایر تطابق‌های بالقوه ارزیابی کرد. میزان ویژگی یک انتخابگر با استفاده از سه مقدار (یا مؤلفه) مختلف اندازه‌گیری می‌شود که می‌توان آنها را به ترتیب به عنوان ستون‌های ID، CLASS و ELEMENT با ارزش صدها، ده‌ها و یک‌ها در نظر گرفت: IDها: برای هر انتخابگر ID موجود در انتخابگر کلی، در این ستون یک (100 امتیاز) امتیاز بگیرید. کلاس‌ها: برای هر انتخابگر کلاس، انتخابگر ویژگی یا شبه کلاس موجود در انتخابگر کلی، در این ستون یک (10 امتیاز) امتیاز بگیرید. عناصر: برای هر انتخابگر عنصر یا شبه عنصر موجود در انتخابگر کلی، در این ستون یک (1 امتیاز) امتیاز بگیرید.

   جدول زیر چند مثال مجزا را نشان می‌دهد تا شما را با این موضوع آشنا کند. سعی کنید این موارد را مرور کنید و مطمئن شوید که دلیل ویژگی خاصی که به آنها داده‌ایم را درک می‌کنید.

انتخابگرشناسه‌ها #idکلاس‌ها .classعناصر <>مجموع میزان خاص بودن
h10010-0-1
h1 + p::first-letter0030-0-3
li > a[href*="en-US"] > .inline-warning0220-2-2
#identifier1001-0-0

مثالی عمیق‌تر از جزئیات

   قبل از اینکه ادامه دهیم، بیایید به یک مثال در عمل نگاه کنیم. شاید بخواهید این را در Playground در یک تب جداگانه باز کنید تا بتوانید هنگام خواندن توضیحات، به راحتی به آن ارجاع دهید.

HTML

CSS

   خب، اینجا چه اتفاقی می‌افتد؟ اول از همه، ما فقط به هفت قانون اول این مثال علاقه‌مندیم و همانطور که متوجه خواهید شد، مقادیر ویژگی آنها را در یک کامنت قبل از هر کدام قرار داده‌ایم.

   دو انتخابگر اول بر سر سبک‌بندی رنگ پس‌زمینه لینک رقابت می‌کنند. انتخابگر دوم برنده می‌شود و رنگ پس‌زمینه را آبی می‌کند زیرا یک انتخابگر شناسه اضافی در زنجیره دارد: ویژگی آن 2-0-1 در مقابل 1-0-1 است. انتخابگرهای 3 و 4 بر سر سبک‌بندی رنگ متن لینک رقابت می‌کنند. انتخابگر دوم برنده می‌شود و متن را سفید می‌کند زیرا اگرچه یک انتخابگر عنصر کمتر دارد، انتخابگر از دست رفته با یک انتخابگر کلاس جایگزین می‌شود که وزن بیشتری نسبت به انتخابگرهای عنصر دارد. ویژگی برنده 1-1-3 در مقابل 1-0-4 است. انتخابگرهای 5 تا 7 بر سر سبک‌بندی حاشیه لینک هنگام نگه داشتن موس روی آن رقابت می‌کنند. انتخابگر ۶ به وضوح در برابر انتخابگر ۵ با ویژگی ۰-۲-۳ در مقابل ۰-۲-۴ شکست می‌خورد؛ این انتخابگر یک انتخابگر عنصر کمتر در زنجیره دارد. با این حال، انتخابگر ۷ هر دو انتخابگر ۵ و ۶ را شکست می‌دهد زیرا تعداد زیرانتخابگرهای آن در زنجیره با انتخابگر ۵ برابر است، اما یک عنصر با یک انتخابگر کلاس جایگزین شده است. بنابراین ویژگی برنده ۰-۳-۳ در مقابل ۰-۲-۳ و ۰-۲-۴ است. هر نوع انتخابگر سطح اختصاصی خود را دارد که نمی‌تواند توسط انتخابگرهایی با سطح اختصاصی پایین‌تر بازنویسی شود. برای مثال، یک میلیون انتخابگر کلاس با هم نمی‌توانند اختصاصیت یک انتخابگر id را بازنویسی کنند. بهترین راه برای ارزیابی اختصاصیت، امتیازدهی جداگانه سطوح اختصاصیت از بالاترین شروع و در صورت لزوم به پایین‌ترین است. فقط زمانی که بین نمرات انتخابگرها در یک ستون اختصاصیت تساوی وجود داشته باشد، باید ستون بعدی را ارزیابی کنید. در غیر این صورت، می‌توانید انتخابگرهای اختصاصیت پایین‌تر را نادیده بگیرید زیرا آنها هرگز نمی‌توانند انتخابگرهای اختصاصیت بالاتر را بازنویسی کنند.

شناسه‌ها در مقابل کلاس‌ها

   انتخابگرهای شناسه از خاص بودن بالایی برخوردارند. این بدان معناست که سبک‌هایی که بر اساس تطابق با یک انتخابگر شناسه اعمال می‌شوند، سبک‌های اعمال شده بر اساس سایر انتخابگرها، از جمله انتخابگرهای کلاس و نوع، را لغو می‌کنند. از آنجا که یک شناسه فقط یک بار در یک صفحه می‌تواند رخ دهد و به دلیل ویژگی بالای انتخابگرهای شناسه، ترجیح داده می‌شود که به جای شناسه، یک کلاس به یک عنصر اضافه شود. اگر استفاده از شناسه تنها راه برای هدف قرار دادن عنصر است - شاید به این دلیل که به نشانه‌گذاری دسترسی ندارید و نمی‌توانید آن را ویرایش کنید - استفاده از شناسه را در یک انتخابگر ویژگی، مانند در نظر بگیرید.

استایل‌های درون‌خطی

   استایل‌های درون‌خطی، یعنی تعریف سبک درون یک ویژگی استایل، صرف نظر از میزان اولویت، بر تمام استایل‌های معمولی اولویت دارند. چنین تعریف‌هایی انتخابگر ندارند، اما اولویت آنها را می‌توان به صورت 1-0-0-0 تعبیر کرد؛ همیشه بیشتر از هر وزن اولویت دیگری، صرف نظر از تعداد شناسه‌ها در انتخابگرها.

مهم!

   یک بخش خاص از CSS وجود دارد که می‌توانید از آن برای لغو تمام محاسبات فوق، حتی سبک‌های درون‌خطی، استفاده کنید - پرچم . با این حال، هنگام استفاده از آن باید بسیار مراقب باشید. این پرچم برای تبدیل یک جفت ویژگی و مقدار به خاص‌ترین قانون استفاده می‌شود و در نتیجه قوانین عادی آبشار، از جمله سبک‌های درون‌خطی عادی را لغو می‌کند. دانستن وجود پرچم مفید است تا وقتی در کد دیگران به آن برخوردید، بدانید چیست. با این حال، اکیداً توصیه می‌کنیم هرگز از آن استفاده نکنید، مگر اینکه کاملاً مجبور باشید. پرچم نحوه عملکرد معمول آبشار را تغییر می‌دهد، بنابراین می‌تواند اشکال‌زدایی مشکلات CSS را، به خصوص در یک فایل استایل شیت بزرگ، واقعاً دشوار کند. به این مثال نگاهی بیندازید که در آن دو پاراگراف داریم که یکی از آنها دارای شناسه است.

HTML

CSS

   بیایید این را بررسی کنیم تا ببینیم چه اتفاقی می‌افتد - اگر درک آن برایتان دشوار است، سعی کنید برخی از ویژگی‌ها را حذف کنید تا ببینید چه اتفاقی می‌افتد: خواهید دید که مقادیر رنگ و پدینگ قانون سوم اعمال شده‌اند، اما رنگ پس‌زمینه اعمال نشده است. چرا؟ واقعاً، هر سه باید مطمئناً اعمال شوند زیرا قوانین بعدی در ترتیب منبع معمولاً قوانین قبلی را لغو می‌کنند. با این حال، قوانین بالاتر از آن برنده می‌شوند زیرا انتخابگرهای کلاس نسبت به انتخابگرهای عنصر، ویژگی بالاتری دارند. هر دو عنصر دارای کلاس better هستند، اما عنصر دوم نیز دارای شناسه winning است. از آنجایی که شناسه‌ها ویژگی حتی بالاتری نسبت به کلاس‌ها دارند، رنگ پس‌زمینه قرمز و حاشیه سیاه ۱ پیکسلی باید هر دو به عنصر دوم اعمال شوند، به طوری که عنصر اول رنگ پس‌زمینه خاکستری و بدون حاشیه را دریافت کند، همانطور که توسط کلاس مشخص شده است. عنصر دوم رنگ پس‌زمینه قرمز را دریافت می‌کند، اما بدون حاشیه. چرا؟ به دلیل پرچم در قانون دوم. اضافه کردن پرچم بعد از به این معنی است که این تعریف بر مقدار حاشیه در قانون قبلی غلبه خواهد کرد، حتی اگر انتخابگر شناسه از ویژگی بالاتری برخوردار باشد. تنها راه برای لغو یک تعریف مهم، اضافه کردن یک تعریف مهم دیگر با همان ویژگی در ترتیب منبع یا تعریفی با ویژگی بالاتر است. یکی از موقعیت‌هایی که ممکن است مجبور به استفاده از پرچم شوید، زمانی است که روی یک CMS کار می‌کنید که نمی‌توانید ماژول‌های اصلی CSS را ویرایش کنید و واقعاً می‌خواهید یک سبک درون‌خطی یا یک تعریف مهم را که به هیچ روش دیگری قابل لغو نیست، لغو کنید. اما واقعاً، اگر می‌توانید از آن اجتناب کنید، از آن استفاده نکنید.

تأثیر مکان CSS

   در نهایت، لازم به ذکر است که اولویت یک اعلان CSS به نوع استایل‌شیت تعیین‌شده بستگی دارد. کاربران می‌توانند استایل‌شیت‌های سفارشی را طوری تنظیم کنند که استایل‌های توسعه‌دهنده را نادیده بگیرند. برای مثال، یک کاربر کم‌بینا ممکن است بخواهد اندازه فونت را در تمام صفحات وبی که بازدید می‌کند دو برابر اندازه معمولی تنظیم کند تا خواندن آن آسان‌تر شود.

ترتیب اعلان‌های برتر

   اعلان‌های متناقض به ترتیب زیر اعمال می‌شوند و اعلان‌های بعدی، اعلان‌های قبلی را لغو می‌کنند: (از کمتر به بیشتر) ۶- اعلان‌ها در برگه‌های استایل عامل کاربر (مثلاً استایل‌های پیش‌فرض مرورگر، که وقتی هیچ سبک دیگری تنظیم نشده است استفاده می‌شوند). ۵- اعلان‌های عادی در برگه‌های استایل کاربر (استایل‌های سفارشی تنظیم شده توسط کاربر). ۴- اعلان‌های عادی در برگه‌های استایل نویسنده (اینها سبک‌هایی هستند که توسط ما، توسعه‌دهندگان وب، تنظیم شده‌اند). ۳- اعلان‌های مهم در برگه‌های استایل نویسنده. ۲- اعلان‌های مهم در برگه‌های استایل کاربر. ۱- اعلان‌های مهم در برگه‌های استایل عامل کاربر. توجه: ترتیب اولویت برای سبک‌هایی که با علامت‌گذاری شده‌اند، معکوس می‌شود. لغو کردن برگه‌های سبک توسعه‌دهندگان وب توسط برگه‌های سبک کاربر منطقی است، بنابراین می‌توان طراحی را مطابق با هدف حفظ کرد. با این حال، گاهی اوقات کاربران دلایل خوبی برای لغو سبک‌های توسعه‌دهنده وب دارند، همانطور که در بالا ذکر شد، و این امر را می‌توان با استفاده از در قوانین خود به دست آورد.