loading...
طراحی وب- برنامه نویسی
برنامه نویس بازدید : 42 پنجشنبه 27 تیر 1398 نظرات (0)

برای کنترل نمایش یک عنصر، display مهم ترین خصوصیت ممکن است. این خصوصیت تعیین کننده ی این است که آیا یک عنصر نمایش داده شود؟ و اگر نمایش داده می شود، چطور نمایش داده شود؟ هر عنصر HTML ای بر اساس ماهیت خود دارای مقدار پیش فرضی برای خاصیت display است که برای اکثر عناصر block یا inline است. اما این ها تنها مقادیر مجاز برای display نیستند، شما می توانید از مقادیری مثل none نیز استفاده کنید.

 none (به معنی «هیچکدام») عنصر ما را محو و ظاهر می کند، بدون آنکه نیاز به ساختن دوباره ی آن داشته باشیم! در واقع اگر بخواهید با جاوا اسکریپت یکی از عناصر را حذف کنید، اضافه کردن خصوصیت none به آن عنصر، یکی از روش های مقبول است چرا که بعدا می توانید با تغییر display به مقادیری غیر از none ، آن را برگردانید:

مشاهده ی خروجی در JSBin

در کد بالا مشاهده می کنید که تگ h1 دارای display: none است بنابراین دیده نمی شود. با حذف کردن این خصوصیت می توانید آن را دوباره نمایش دهید.

شما می توانید این کار را با یک دستور دیگر نیز انجام دهید: ;visibility:hidden

مشاهده ی خروجی در JSBin

سوال: تفاوت این دو دستور چیست؟

پاسخ: دستور display: none عنصر را طوری مخفی می کند که انگار اصلا در صفحه وجود ندارد، بنابراین هیچ فضایی را نیز اشغال نمی کند اما ;visibility:hidden تنها ظاهر عنصر را غیر قابل دیدن می کند. بنابراین آن عنصر هنوز هم فضا می گیرد. این مورد به خوبی در دو مثال بالا قابل مشاهده است.

با استفاده از کمی خلاقیت می توانیم صفحات زیبایی در دنیای وب خلق کنیم. به مثال زیر توجه کنید:

کدهای HTML:

کدهای CSS:

کدهای جاوا اسکریپت:

با ترکیب این سه دسته کد و استفاده از قابلیت display:none می توانیم یک فرم لاگین و ثبت نام به زیبایی تمام بسازیم. خروجی این سه دسته کد را در لینک زیر مشاهده کنید:

مشاهده ی نمونه فرم لاگین و ثبت نام کاربران

عناصر block

عناصری که از نوع block هستند تمام عرض صفحه یا نگه دارنده‌شان را می گیرند و به همین خاطر همیشه از خط جدید شروع می شوند. مثال:

مشاهده ی خروجی در JSBin

در زیر لیستی از عناصری که از نوع Block هستند مشاهده می کنید:

<address> <article> <aside> <blockquote> <canvas> <dd> <div> <dl> <dt> <fieldset><figcaption> <figure> <footer> <form> <h1>-<h6> <header> <hr> <li> <main> <nav><noscript> <ol> <p> <pre> <section> <table> <tfoot> <ul> <video>

عناصر inline

عناصر inline برخلاف عناصر block تنها فضای لازم خودشان را می گیرند و دیگر سر تا سر عرض صفحه را اشغال نمی کنند به همین خاطر در خط جدید شروع نمی شوند. مثال:

مشاهده ی خروجی در JSBin

در لیست زیر عناصر inline را مشاهده می کنید:

<a> <abbr> <acronym> <b> <bdo> <big> <br> <button> <cite> <code> <dfn> <em> <i><img> <input> <kbd> <label> <map> <object> <output> <q> <samp> <script> <select><small> <span> <strong> <sub> <sup> <textarea> <time> <tt> <var>

تغییر خاصیت display در عناصر مختلف

همانطور که قبلا هم گفتیم هر عنصر یک مقدار خاص برای خاصیت display دارد اما ما می توانیم این مقدار را تغییر دهیم. تبدیل کردن عناصر inline به عناصر block و بالعکس از جمله روش هایی است که برای نمایش یک صفحه ی وب به صورتی خاص یا بر اساس سلیقه مان کاربردی است. یکی از مثال های کاربردی این موضوع لیست ها (li) هستند:

مشاهده ی خروجی در JSBin

با تغییر دادن تگ های li به حالت inline می توانیم منو های امروزی را بسازیم، البته منوی بالا کامل نمی باشد و نیاز به استایل دهی دارد.

نکته: تغییر دادن حالت Display عناصر تنها مشخص می کند که چگونه نمایش داده شوند و هیچ تاثیری در تعیین ماهیت آن عنصر ندارد بنابراین اگر یک عنصر inline داشته باشیم و سپس به آن خاصیت ;display: block را بدهیم، دیگر نمی تواند عناصر block دیگری را درون خود جای بدهد. در مثال زیر یک تگ span را می بینید که به دلیل داشتن خاصیت block باعث شکستن خط شده است:

مشاهده ی خروجی در JSBin

با تگ های <a> نیز چنین کاری کرده ایم:

مشاهده ی خروجی در JSBin

میبینید که دیگر عناصر <a> کنار یکدیگر نمی ایستند و حتما باید از خط جدید شروع شوند.

 

منبع: روکسو

 

 
ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 346
  • کل نظرات : 0
  • افراد آنلاین : 3
  • تعداد اعضا : 0
  • آی پی امروز : 10
  • آی پی دیروز : 17
  • بازدید امروز : 30
  • باردید دیروز : 21
  • گوگل امروز : 2
  • گوگل دیروز : 5
  • بازدید هفته : 104
  • بازدید ماه : 469
  • بازدید سال : 6,978
  • بازدید کلی : 35,213