امروز پنجشنبه ۱۴۰۰/۰۱/۲۶

2021/04/15 GMT +4:30

» لایه بندی در HTML با تگ div و span

html-div-span

در ادامه آموزش های مقدماتی آشنایی با زبان پایه برنامه نویسی وب یعنی html، این بار می خواهیم به دو تگ کلیدی، مخصوصا در زمینه لایه بندی (فرمت بندی) صفحات وب بپردازیم، این دو تگ div و span نام دارند و کمتر صفحه وبی وجود دارد که در سورس کدهای خود از آنها استفاده نکرده باشد، به طور خلاصه از div برای ایجاد بلاک های غیر هم سطح نگهدارنده (container) سایر عناصر صفحه و از span برای ایجاد بلاک های هم سطح (inline) و معمولا برای نگهداری محتوای متنی استفاده می شود که در ادامه آموزش، به طور جزئی تری با آنها آشنا خواهیم شد.

کاربرد تگ div در html


همان طور که گفتیم، تگ div در زبان html برای ایجاد بلاک ها یا لایه های نگهدارنده جهت فرمت بندی قسمت های مختلف صفحه مورد استفاده قرار می گیرد، در واقع اکثر صفحاتی که در وب مشاهده می کنیم، از بلاک هایی تو در تو تشکیل شده اند که به کمک ویژگی های css به شکل منطقی و نظم یافته ای به نظر می رسند، پیش از این طراحان وب برای رسیدن به مقاصد خود در زمینه فرمت بندی صفحات از تگ table استفاده می کردند که امروزه به دلایلی توصیه شده تنها از جداول جهت مقاصد آماری یا اطلاعاتی که نیاز به جدول بندی دارند استفاده شود نه برای فرمت بندی.
تگ div در حالت پیش فرض توسط مرورگر ها به صورت غیر هم سطح پردازش می شود، یعنی در ابتدا و انتهای آن خطی جدا کننده (به صورت فرضی) در نظر گرفته می شود، در مثال زیر با نحوه تعریف و کاربرد این تگ آشنا می شویم.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | کاربرد تگ div در html</title>
<!-- https://webgoo.ir -->
</head>
<body>
<div dir="rtl">این یک بلاک div است.</div>
</body>
</html>
توضیح:
- برای تعریف بلاک های div کافی است آنها را به صورت تگ های جفتی در html ایجاد کنید:
<div></div>
- ملاحظه می کنید که برای نمایش صحیح حروف فارسی از dir با مقادیر rtl استفاده کرده ایم، البته در کدنویسی پیشرفته، توصیه می شود در حد امکان از استایل های خطی html اجتناب شده و اینگونه تنظیمات با css انجام شود که در آموزش های مربوطه در این مورد گفته ایم.

یک مثال کاربردی با div


استفاده از تگ div در html به موارد ساده ختم نمی شود، در کدنویسی پیشرفته معمولا نیاز به تعریف بلاک های div تو در تو وجود دارد که به دلیل یکپارچه و وابسته بودن زبان های html و css در وب، برای ایجاد تنظیمات ظاهری، علاوه بر تگ div از استایل css نیز در کنار آن استفاده می شود.
در مثال کاربردی زیر، نحوه ایجاد چند بلاک div فرمت بندی شده را ملاحظه می کنید.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | کاربرد تگ div در html</title>
<!-- https://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    direction:rtl;
    font-size:12px;
}
</style>
</head>
<body>
<!-- بلاک اصلی -->
<div style="display:block; width:600px; height:auto; border:1px solid #999; background-color:#9CF; margin:0 auto; direction:rtl; padding:4px;">
بلاک div شماره 1
<!-- بلاک زیر مجموعه -->
<div style="display:inline-block; width:200px; height:200px; border:1px solid #999; background-color:#6C9; float:left; margin:4px;">
بلاک div شماره 2
</div>
<!-- بلاک زیر مجموعه -->
<div style="display:inline-block; width:200px; height:200px; border:1px solid #999; background-color:#FC0; float:left; margin:4px;">
بلاک div شماره 3
</div>
<!-- بلاک جدا کننده -->
<div style="clear:both;"></div>
<!-- بلاک زیر مجموعه -->
<div style="display:block; width:590px; height:50px; border:1px solid #999; background-color:#CCC; margin:4px;">
بلاک div شماره 4
</div>
<!-- بلاک جدا کننده -->
<div style="clear:both;"></div>
<!-- بستن بلاک اصلی -->
</div>
<hr />
با استفاده از تنظیم بلاک های div به صورت تو در تو و بهره بردن از css، طراحان وب قالب ها و طرح های خود را فرمت بندی می کنند.
</body>
</html>
پیش نمایش
توضیح:
- در کد بالا در کنار استفاده از تگ div از استایل css نیز استفاده کرده ایم، چرا که تگ های div معمولا به تنهایی قابلیت های خاصی ندارند و در کنار ویژگی های css است که قدرت و انعطاف پذیری آنها مشخص می شود.
- همان طور که در آموزش های مقدماتی css گفته ایم، استایل ها به چند صورت قابل تعریف هستند (به صورت خطی، درون صفحه ای و ایمپورت فایل خارجی در صفحه)، در اینجا برای تگ body از استایل css درون صفحه ای و برای بلاک های div از استایل های خطی استفاده کرده ایم.
- برای آشنایی با ویژگی های css، لطفا مباحث مربوط به آموزش های آن را ملاحظه کنید.

کاربرد تگ span در html


تگ span در صفحات وب کاربردهای خاصی دارد، به طور مثال از آنجایی که این تگ توسط مرورگرها به طور پیش فرض به صورت بلاک های هم سطح یا inline تفسیر می شود (یعنی اگر از تگ span در کنار سایر عناصر استفاده کنیم، در یک سطح با آنها قرار می گیرد و به طور مثال به پائین سایر بلاک ها منتقل نمی شود)، برای نمایش دکمه های صفحه به صفحه، برجسته کردن (highlight) بخشی از یک متن به فرض در هنگام جستجو و... کاربرد دارد.
ویژگی های تگ span با استفاده از خاصیت های css کامل می شود که در زیر نمونه ای از آن را ملاحظه می کنید.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | کاربرد تگ span در html</title>
<!-- https://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
}
.paged{
    display:inline-block;
    padding:4px;
    border:1px solid #09C;
    margin:2px;
    text-align:center;
}
.light{
    color:#69F;
    text-decoration:blink;
}
</style>
</head>
<body>
<span class="paged">صفحه 1</span>
<span class="paged">صفحه 2</span>
<span class="paged">صفحه 3</span>
<span class="paged">صفحه 4</span>
<span class="paged">صفحه 5</span>
<span class="paged">صفحه 6</span>
<hr />
تگ <span class="light">span</span> به طور پیش فرض به صورت هم سطح یا inline پردازش می شود و به این دلیل در برخی موارد بهترین گزینه برای طراحان وب است.
</body>
</html>
پیش نمایش
توضیح:
- مانند تگ div، تگ span نیز قابلیت های css را به خوبی می پذیرد و می توان به کمک آن به اهداف خود در طراحی وب دست یافت.
- در کد بالا از کلاس های css برای ایجاد قابلیت های ظاهری تگ span استفاده کرده ایم، دلیل این کار این است که تگ های html به خودی خود معمولا توانایی ایجاد جلوه ها و تنظیمات پیشرفته را ندارند و باید در کنار آنها از css استفاده شود.
- در مثال بالا دو کاربرد رایج از تگ span را ملاحظه می کنید، دکمه های هم سطح و همچنین برجسته کردن بخشی از یک متن با رنگ و ویژگی خاص.
دسته بندی: آموزش مقدماتی » HTML
related مطالب بیشتر:
» نحوه ایجاد لینک در HTML
» آشنایی با HTML، زبان پایه کدنویسی وب
» فرمت بندی و کار با متن و پاراگراف در HTML
» ایجاد جدول با تگ table در HTML
» کار با تگ فرم (form) در HTML
commentنظرات (۳۵ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: عليرضا
۱۶:۵۶ ۱۳۹۱/۰۷/۰۳
سلام. از اموزشهايي كه در اين سايت قرار مي دهيد بسيار ممنون. اگر مثالهاي كاربردي براي مطالب اموزش داده شده بيشتر شوند ، سايت شما پربارتر خواهد شد. مثلا براي هر مطلب مثالهاي متنوعي ذكر كنيد. باز هم ممنون.
پاسخ: 
سلام
ممنون از پیشنهاد شما.
نویسنده: مجید
۱۱:۴۰ ۱۳۹۱/۰۷/۱۴
می خوام تشکر کنم ازتون. من مدت ها است که دنبال همچین سایتی میگردم. خیلی جالب توضیح دادید.
نویسنده: میلاد
۰۰:۳۴ ۱۳۹۱/۰۷/۱۷
سلام.. همه چی عالی هستش.. همه چی!! این نظمی که به مطالب داده شده محتویات رو پربارتر نشون میده.. تنها ایراد به نظرم چینش مطالب هست که از بالا به پایین ترتیب مطالب از جدید به قدیمی هست!! برعکس میشد خیلی بهتر بود.. بازم ممنون
پاسخ: 
سلام
سپاس به خاطر نظر لطف و پیشنهاد شما، چینش مطالب به زودی تغییر خواهد کرد!
نویسنده: روح الله بهزاد
۰۲:۱۲ ۱۳۹۱/۰۷/۲۷
ممنونم از لطفتون
نویسنده: amin
۱۰:۱۱ ۱۳۹۱/۰۹/۰۵
با سلام و خسته نباشید !
ببخشید 1 سوال واسم پیش اومده !!!
چرا موقعی که تو 1 div داخلی از float استفاده می کنم از div خارجی خارج میشه !!! ؟
پاسخ: 
خاصیت float برای تعیین موقعیت یک بلاک (سمت چپ یا راست) به کار می رود و در حالت عادی تاثیر دیگری بر روی آنها ندارد، پس مشکل را باید در موارد دیگر بررسی کنید، از جمله اینکه ارتفاع و عرض بلاک والد (بلاک خارجی) از بلاک درونی کمتر نباشد، از خاصیت های مربوط به display و position به درستی استفاده کرده باشید، از padding یا margin به نحو صحیح استفاده کرده باشید و... در کل رفتار بلاک های div علاوه بر اینکه از خاصیت های مربوط به خودشان پیروی می کند، تحت تاثیر سایر عناصر جانبی نیز هستند، برای پاسخ دقیق تر باید نمونه کدی قرار دهید.
نویسنده: علیرضا
۱۳:۲۲ ۱۳۹۱/۱۰/۱۲
سلام خسته نباشید.
شیوه آموزشتون عالیه.
فقط من یه درخواست دارم که یه قالب سه ستونه رو بذارین و از روی اون توضیح بدین . فکر کنم خیلی در یاد گیری موثر باشه.
پاسخ: 
سلام
ممنون از پیشنهاد شما، البته در سایر بخش های سایت از جمله در بخش اموزش های کاربردی و طراحی وب به این شیوه نیز آموزش هایی وجود دارد.
نویسنده: نیکو
۱۲:۱۴ ۱۳۹۱/۱۱/۲۵
سلام
واقعاً نمی دونم چطور می شه از این همه لطف بی ادعا تشکر کرد؟
فقط براتون از خدا زندگی سرشار از عشق و شادی آرزو می کنم ، امیدوارم از زندگیتون لذت ببرید، همیشه و همیشه.
تو رو خدا ادامه بدید. مرسی
پاسخ: 
سلام
سپاس از این همه نظر لطف.
آهسته و پیوسته ادامه خواهد داشت :-) انشاا...
نویسنده: محمد
۱۶:۴۰ ۱۳۹۱/۱۲/۰۳
کامل نبود !
پاسخ: 
آموزش در حدی که به تگ div و span مربوط می شود مناسب است، انتظار ندارید که کل وب را در یک مطلب خلاصه کنیم؟! :-)
نویسنده: مسعود
۱۲:۳۰ ۱۳۹۲/۰۱/۰۸
ممنون از سایت خوبتون
مطالبتون خیلی آموزنده و کاربردی هست
نویسنده: سارا
۱۸:۲۴ ۱۳۹۲/۰۱/۱۹
سلام. واقعا به نحوه ی آموزشتون تبریک میگم
فقط می خواستم بدونم برای استفاده از فونت های فارسی در وب سایت ها باید از یک سری فونت های خاص استفاده کنیم . چرا؟
از چه فونت هایی استفاده کنیم بهتره؟
پاسخ: 
سلام
استفاده از فونت فارسی در وب دو حالت دارد:
- استاندارد
- فونت های سفارشی
در حالت استاندارد از فونت هایی که در تمام سیستم ها به صورت پیش فرض پشتیبانی می شود استفاده می کنیم، مانند Tahoma یا Arial که به اصطلاح به آنها فونت های امن وب می گویند.
در حالت سفارشی از قابلیت font-face@ در css3 استفاده می شود که در آن می توان از هر فونتی (پس از تبدیل) در وب استفاده کرد و محدودیتی از این نظر نیست، اما معمولا فونت BYekan بیشترین طرفدار را در این زمینه دارد، که البته این به زمینه فعالیت سایت نیز بستگی دارد.
نویسنده: parisa
۱۱:۵۵ ۱۳۹۲/۰۱/۳۱
سلام
کد ایجاد دو دایره با رنگ های مختلف را می خواستم و کد mousemove هنگامی که صفحه کاملا خالی می باشد و با حرکت موس روی صفحه صفحه تغییر کرده و صفحه جدیدی نمایش دهد واقعا سایت خوبی دارید اگر راهنماییم کنید ممنون می شوم
پاسخ: 
سلام
در زمینه کدهای آماده جاوا اسکریپت فعالیتی نداریم، لطفا به سایت ها یا وبلاگ های مرتبط مراجعه کنید.
نویسنده: پویا
۱۴:۱۰ ۱۳۹۲/۰۲/۱۰
با سلام
میخواستم تشکر کنم از سایت خوب و آموزنده شما
نویسنده: حدیث
۱۹:۵۹ ۱۳۹۲/۰۲/۲۲
عالی بود خیلی بدردم خورد
نویسنده: رضا حموله
۱۷:۳۸ ۱۳۹۲/۰۴/۲۰
از مطالبتون خیلی استفاده می کنم و حتا برای مطالبی که از قدیم بلدم کاربردهای جدید پیدا می کنم. موفق باشین
نویسنده: orkideh
۱۰:۱۹ ۱۳۹۲/۰۴/۲۵
مرسییییییییییییییییی! عالی بود. ممنون
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- موارد غیرمرتبط با مباحث آموزش ها را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ مختصر داده خواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- از درج عناوین تبلیغاتی در فیلدها خودداری کنید، در صورتی که یادداشت تبلیغاتی تشخیص داده شود حذف خواهد شد.
- تمام یادداشت ها بررسی و زمانی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد خودداری کنید.





6 × 6
 refresh

آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form شریفی
در:
سلام مجدد. من یه سوال خیلی تخصصی دارم. ممنون میشم پاسخ بدین. برای پروژه پایان نامه. دارم روی موتورهای جستجوگر تحقیق میکنم. فرض...
۱۴۰۰/۰۱/۲۵

form شریفی
در:
سلام استاد. من از متد file_get_contents استفاده می کنم برای دریافت اطلاعات از سایت های مختلف. بعضی وقتها سایت ها دیر لود میشه. آیا...
۱۴۰۰/۰۱/۲۵

form hh
در:
سلام خدمت شما بنده یه سوال داشتم تمام مراحل شما رو انجام دادم و نتیجه گرفتم و لازمه یه تشکرم بکنم. وبسایت من،...
۱۴۰۰/۰۱/۲۵

form erfan
در:
سلام من واسه یه دکمه یه محتوایی تعریف کردم که وقتی کلیک شد محتوا رو نشون بده اما تو دوجاش موندم یک اینکه چیکار کنم...
۱۴۰۰/۰۱/۲۱

form mahdi
در:
سلام استاد عزیز ، بازم معذرت میخوام سوالام زیاد شد ولی همشون در یک موضوع هستن ، تونستم که با این روش برای هر اسلایدر...
۱۴۰۰/۰۱/۱۸

form mahdi
در:
سلام استاد عزیز عذر میخوام بار سومه پیام میزارم ، مشکلش از ست اینترول بود که قطع نمیشد و با هم تداخل داشتند ولی بدون...
۱۴۰۰/۰۱/۱۸

form mahdi
در:
سلام وقت بخیر استاد عزیز ، یک تابع رو چطور میشه در جاوا اسکریپت اورراید کرد؟ که مثلا با هر فراخوانی مجدد ، قبلی ها...
۱۴۰۰/۰۱/۱۸

form متین
در:
سلام چجوری برای خود صفحه ادرس بسازیم که سایتی که رو ساختیم رو با دستگاه دیگه پیداش کنیم
۱۴۰۰/۰۱/۱۶

form امیرحسین برزویی
در:
من یک وبلاگ دارم و 9 سالمه من در وبلاگم مداحی می گذارم ولی وقتی قاب گذاشتم از این سایت من دیگه فیلم...
۱۴۰۰/۰۱/۱۶

form بنده خدا
در:
سلام خسته نباشین، خدا قوت. یه سوال دارم. چرا در بخش نظردهی وبلاگ به جای عنوان پست می نویسه مطلب مورد نظر یافت نشد؟!...
۱۴۰۰/۰۱/۱۵

form روح الله
در:
موقعی میخواهم وارد سایت ایران خودرو بشم پیام میده از Ip داخلی استفاده کنید دلیلش چیست
۱۴۰۰/۰۱/۱۴

form غریب
در:
تشکر از شما مشکلم حل شد امیدوارم موفق و پیروز باشید هر جا که هستید
۱۴۰۰/۰۱/۱۱

form غریب
در:
سلام مجدد ممنون و تشکر از کمکتون کد به خوبی کار میکنه اما همچنان من مشکلی دارم که حل نتونستم کنم...
۱۴۰۰/۰۱/۱۰

form غریب
در:
سلام مجدد این کدی که دادید خوب هست ولی من بد و ناقص توضیح دادم توجه کنید کد این هست تقریبا ممنون...
۱۴۰۰/۰۱/۱۰

form غریب
در:
سلام خسته نباشید من کدی دارم که میخوام داخل یه بخشیش نتیجه یه رویداد رو فراخوانی کنم و راهش و نمیدونم اگر میشه کمک...
۱۴۰۰/۰۱/۱۰

form محسن
در:
سلام ، سوال من مربوط به پنل کارگزاری هاست ، وقتی اسم یک سهم (نماد) را در قسمت جست و جو سرچ میکنم...
۱۴۰۰/۰۱/۰۸

form ترجمه
در:
باسلام همه صفحات من دارای دو url می باشد که یکی با حروف کوچک است و دیگری با حروف بزرگ چجوری این مشکل را...
۱۴۰۰/۰۱/۰۸

form سهیل ملکی
در:
سلام خسته نباشید ببخشید من میخوام از تابع navigator.online توی جاوا اسکریپت استفاده کنم تا باهاش بفهمم کاربر آنلاین هست یا نه و اگه بود...
۱۴۰۰/۰۱/۰۴

form Rabbiten
در:
سلام. من چند ماه است که دنبال کد استایل تصویر مثل تبلیغات بالای سایت شما هستم. اما هیچ جا پیدایش نمی کنم. لطف می...
۱۴۰۰/۰۱/۰۱

form mahdi
در:
سلام استاد عزیز سال نو رو تبریک میگم بهتون ، امیدوارم که خودتون و خانوادتون همیشه سالم و سلامت باشید و امسال پر از...
۱۳۹۹/۱۲/۳۰

form korosh abbasy
در:
سلام وقت بخیر ببخشید در مورد این مطلب سوالی پرسیدم شما در مورد output buffering توضیح دادید کد کار نمیکنه میخواستم ببینم نیازی هست من...
۱۳۹۹/۱۲/۲۹

form احمد
در:
سلام مجدد عذرخواهی میکنم یه موردی دیگه بود فراموش کردم در مورد سوال هدر بگم اینکه روی لوکال به هدر ارسال میشه ولی روی هاست...
۱۳۹۹/۱۲/۲۸

form احمد
در:
با سلام خسته نباشید ببخشید قبلا یه سری دستورات جی کوری رو از خودتون گرفتم وقتی فیلدهای فرمم تکمیل شده است توسط هدر بره به...
۱۳۹۹/۱۲/۲۸

form korosh abbasy
در:
سلام دم شما گرم این دستور برای خوندن فایل هم استفاده میشه؟ من میخوام دسترسی تعیین کنم که اگر یک متغییر true...
۱۳۹۹/۱۲/۲۷
  در انتظار بررسی: ۱
 پاسخگویی به سوالات ممکن است تا 24 ساعت زمان ببرد.