آموزش HTML - تقسیم بندی صفحه با استفاده از تگ div
در مطلب قبلی گفتیم که دو راه برای تقسیم بندی صفحه وجود دارد یکی table و یکی div . در مطلب پیش table توضیح داده شد و در این مطلب div توضیح داده می شود .
برای ایجاد div کافیست یک تگ باز و بسته div ایجاد کنید . به همین سادگی ! چیزی که باعث می شود کار با div مشکل به نظر برسد نحوه چیدمان div ها در کنار یکدیگر است . در ابتدا تفاوت div را با table بررسیمی کنیم .
در جدول این محدودیت وجود دارد که شما باید الزاما پهنای تمام سطر ها را با هم مساوی در نظر بگیرید یعنی در جدول نمی توان کاری کرد که حاشیه جدول دارای حالت کنگره ای یا دندانه دار باشد . ضمن اینکه جدول حجم صفحه را نسبت به div افزایش می دهد و کسانی که نگران رتبه خود در موتور های جستجو هستند بهتر است از div استفاده کنند .
شما در هر قسمت از صفحه که اراده کنید می توانید div بسازید حتی در داخل یک div دیگر . div در حالت عادی مانند یک پاراگراف عمل می کند . چیزی که باعث می شود div کارا باشد استفاده درست و بهینه از خصوصیت های موجود در style آن می باشد . در واقع با کمک div می توانید صفحه وب خود را هر طور که می خواهید تقسیم بندی نمائید . به مثال زیر توجه نمائید :
<div style="background-color:yellow;color:blue;width:100px;height:50px">
Hello
</div>
<div style="background-color
range;color:brown;width:110px;height:30px">
World !
</div>
نتیجه اجرای این کد به شکل زیر است :
Hello
World !
همانطور که می بینید div در حال عادی همانند پاراگراف به نظر می رسد . اما آنچه که div را ممتاز می کند اینست که اولا می توان جایگاه هر div را به طور جداگانه تعیین کرد (که البته این امکان برای تمام عناصر html وجود دارد) و ثانیا اینکه می توان در div تمام عناصر html و حتی کنترل هایی که مخصوص برنامه نویسی هستند را به کار برد در صورتیکه پاراگراف
معمولا برای متن بکار می رود . تعیین جایگاه به صورت مجزا و مستقل نیازمند تعریف یک خصیصه جدید در style است :
خصیصه position :
جایگاه هر عنصر در سند html به طور پیش فرض نسبت به عنصر قبلی تعیین می شود بدین صورت که از ابتدای خط بعدی و درست از اول خط ظاهر می شود .عنصر اول نسبت به نقطه مرجع تعیین مکان می گردد . نقطه مرجع در صفحات راست به چپ (dir=rtl) نقطه بالا و سمت راست صفحه و در صفحات چپ به راست (dir=ltr) نقطه بالا و سمت چپ صفحه است . این خصیصه به صورت پیش فرض دارای مقدار
static یا ایستا است به این معنی که جایگاه هر عنصر در سند html به ترتیب ظهور در سند html تعیین می گردد . اگر بخواهید این جایگاه به صورت مستقل (یعنی نسبت به نقطه مرجع) تعیین گردد باید مقدار این خصیصه را به
absolute یا مطلق تغییر دهید . غیر از این دو مقدار این خصیصه سه مقدار دیگر نیز می تواند بگیرد که به شرح ذیل هستند :
relative : باعث می شود جایگاه عنصر نسبت به جایگاه عادی خود تعیین شود . مثلا عبارت 'left:20px' باعث می شود 20 پیکسل به مختصات سمت چپ عنصر اضافه شود .
fixed : جایگاه عناصر نسبت به جایگاه پنجره مرورگر تعیین می شود .
inherit : جایگاه عنصر نسبت به جایگاه عنصر والد تعیین می شود .
پس ازتعیین مشخصه فوق (در صورتیکه مقدار آنرا به absolute) تغییر داده اید باید مختصات نقطه سمت چپ و بالای عنصر (در صفحات چپ به راست) یا مختصات نقطه سمت راست و بالای عنصر (در صفحات راست به چپ) را به ترتیب نسبت به نقطه سمت چپ و بالای صفحه (در صفحات چپ به راست) یا مختصات نقطه سمت راست و بالای صفحه(در صفحات راست به چپ) تعیین کنید . برای این کار از خصوصیات زیر استفاده کنید .
خصیصه top :
این خصیصه یک مقدار بر حسب پیکسل گرفته و فاصله عمودی نقطه بالایی عنصر را با نقطه مرجع صفحه تنظیم می کند .
خصیصه left :
این خصیصه یک مقدار بر حسب پیکسل گرفته و فاصله افقی نقطه بالایی عنصر را با نقطه مرجع صفحه (لبه چپ صفحه) تنظیم می کند . (در صورتیکه صفحه چپ به راست باشد از این خصیصه استفاده می شود)
خصیصه right :
این خصیصه یک مقدار بر حسب پیکسل گرفته و فاصله افقی نقطه بالایی عنصر را با نقطه مرجع صفحه (لبه سمت راست صفحه) تنظیم می کند . (در صورتیکه صفحه راست به چپ باشد از این خصیصه استفاده می شود)
برای مثال به کد زیر توجه کنید :
<div style="background-color:yellow;color:blue;width:100px;height:50px">
Hello
</div>
<div style="background-color
range ; color:brown ; width:110px ; height:30px ; position:absolute ; left:200px ; top:1550px">
World !
</div>
نتیجه اجرای این کد چنین است :
Hello
World !
همانطور که می بینید div دوم با دادن مختصات در جای مناسب خودش قرار گرفته است . و چون این مختصات بر روی div اول واقع است این دو قسمت با هم همپوشانی دارند . بعد از تعیین position اگر هر یک از خصیصه های top و left و right تعیین نشوند نسبت به عنصر قبلی توسط مرورگر تعیین خواهند شد .
ضمن اینکه هر عنصر در html نسبت به عنصر قبلی خود دارای بعد سوم بالاتریست همانطور که در مثال فوق پیداست div دوم روی div اول را پوشانده است . اگر بخواهیم این ترتیب را به هم بزنیم باید از
خصیصه z-index در style استفاده کرد . این خصیصه برای تنظیم بعد سوم بکار می رود .هر عنصری که دارای z-index بالاتری باشد ، بالاتر به نظر می رسد . اگر این قضیه را به مثال فوق اعمال کنیم کد و نتیجه زیر را خواهیم داشت :
<div style="background-color:yellow;color:blue;width:100px;height:50px;position:relative;z-index:10">
Hello
</div>
<div style="background-color
range ; color:brown ; width:110px ; height:30px ; position:absolute ; left:200px ; top:1940px">
World !
</div>
نتیجه اجرای این کد چنین است :
Hello
World !
می بینید که خصیصه z-index به div اول اعمال شده است . اما خصیصه position را نیز به آن اضافه کرده ایم . چرا ؟ برای اینکه خصیصه z-index فقط به عناصری اعمال می شود که دارای خصیصه position باشند. یعنی مرورگر تا وقتی که طراح آگاهانه جایگاه عنصر را تعیین ننماید اجازه نمی دهد از یک خصیصه حرفه ای مانند z-index استفاده نماید .