نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی

مکان یابی عناصر CSS - تعیین موقعیت عناصر بلوک

از نویسنده:با درود. تعیین موقعیت عناصر css موضوع بسیار مهمی در ساخت سایت است. در این مقاله، من پیشنهاد می کنم آن را با جزئیات بیشتر در نظر بگیریم، تمام راه های جابجایی بلوک ها در سراسر صفحه وب.

انواع آن چیست

اگر در مورد مکان یابی عناصر بلوک صحبت کنیم، با استفاده از ویژگی position تنظیم می شود. چهار معنا دارد و هر کدام مستحق بررسی جداگانه است.

موقعیت یابی مطلق

این اولین گونه شناخته شده است. به این صورت تنظیم می شود: موقعیت: مطلق. پس از آن، بلوک خواص معمول خود را از دست می دهد و به طور کامل از جریان عادی خارج می شود. این جریان چیست؟ سعی کنید چندین عنصر بلوک را در یک ردیف در نشانه گذاری قرار دهید. چگونه خواهند شد؟ یکی پس از دیگری، و نه غیر از این.

این رفتار پیش فرض عادی بلوک ها است. اما برای بلوکی که موقعیت‌یابی مطلق تعریف شده است، چه اتفاقی می‌افتد؟ به طور کامل از جریان عادی خارج می شود، بلوک های دیگر به سادگی متوجه آن نمی شوند، گویی هرگز وجود نداشته است، اما عنصر در صفحه باقی می ماند. موقعیت یابی مطلق در css اغلب برای قرار دادن دقیق عناصر تزئینی، نمادها و سایر موارد طراحی استفاده می شود.

اکنون می توان آن را با استفاده از ویژگی های چپ، راست، بالا و پایین منتقل کرد. به‌طور پیش‌فرض، حرکت نسبت به لبه‌های پنجره مرورگر رخ می‌دهد، اما اگر عنصر والد دارای موقعیت: نسبی باشد، آفست نسبت به بلوک والد رخ می‌دهد.

بلوک (موقعیت: مطلق؛ پایین: 0؛ سمت راست: 0؛)

مسدود کردن (

موقعیت: مطلق;

پایین: 0;

سمت راست: 0;

عنصر به گوشه سمت راست پایین منتقل می شود. متوجه شدم که دکمه بالایی اغلب به این صورت انجام می شود - آنها فقط آن را کاملاً در گوشه قرار می دهند. در اینجا مثال دیگری وجود دارد که در آن ابتدا نشانه گذاری احتمالی را به شما نشان می دهم:

< div id = "wrapper" >

< div class = "block" > < / div >

< / div >

و اکنون سبک های css برای این قطعه:

#wrapper (وضعیت: نسبی؛) بلوک (موقعیت: مطلق؛ بالا: 0؛ سمت راست: 10 پیکسل؛)

#لفافه (

موقعیت: نسبی;

مسدود کردن (

موقعیت: مطلق;

بالا: 0;

سمت راست: 10 پیکسل؛

در این مثال، ما ابتدا موقعیت نسبی را به ظرف والد (نسبی - در مورد آن در مقاله بعدی) یادداشت کردیم، و سپس موقعیت مطلق را برای همان عنصر .block تنظیم کردیم. در نتیجه، مختصات نه از خود پنجره مرورگر، بلکه از لبه های عنصر والد، یعنی بلوک wrapper، شمارش می شود.

موقعیت یابی نسبی عناصر css

این نمای زیر است و به این صورت نوشته می شود - موقعیت: نسبی. مختصات با همان ویژگی های موقعیت مطلق تنظیم می شوند. تنها تفاوت مهم این است که عنصر به طور رسمی از جریان نمی افتد - جایی برای آن وجود دارد.

این مقدار مانند visibility عمل می کند: پنهان، زمانی که عنصر از صفحه پنهان می شود، اما فضای زیر آن دست نخورده باقی می ماند. در مورد قرارگیری نسبی نیز همین اتفاق می افتد - بلوک را می توان به هر جایی منتقل کرد، اما فضای آن خالی می ماند و قسمت های دیگر آن را نمی گیرند.

همچنین مهم است که بدانید که افست از لبه‌های پنجره مرورگر وب رخ نمی‌دهد، بلکه از جایی که بلوک در ابتدا قرار داشت، رخ می‌دهد. به این معنا که:

بلوک (موقعیت: نسبی؛ بالا: 10 پیکسل؛ سمت راست: 50 پیکسل؛)

مسدود کردن (

موقعیت: نسبی;

بالا: 10px;

سمت راست: 50 پیکسل؛

بلوک 50 پیکسل به سمت راست و 10 پیکسل به سمت چپ حرکت می کند.

تثبیت

مطمئناً در اینترنت، بیش از یک بار در سایت ها دیده اید که هنگام پیمایش، برخی از بنرها ناپدید نشدند، اما همچنان در منطقه دید شما قرار داشتند، گویی به یک مکان چسبیده بودند. این عمدتا با استفاده از موقعیت ثابت انجام می شود. برای این کار باید بنویسید:

موقعیت: موقعیت ایستا ایستا یا عادی

آخرین نوع ثابت است، این رفتار معمول عناصر بلوک است. نیازی به نوشتن نیست، زیرا به طور پیش فرض است، اما هنوز باید مقدار چهارم را بدانید. گاهی اوقات برای لغو یک نوع موقعیت یابی در رویدادهای خاص در صفحه وب، با position: static نوشته می شود.

چگونه می توانم بلوک ها را به درستی در css قرار دهم؟

ما معانی را در نظر گرفتیم، اما این کافی نیست تا این موضوع را برای خود ببندیم. در واقع، شما باید بدانید که کجا و چه نوع موقعیت یابی باید اعمال شود. من قبلاً برای شما مثالی با یک مثال ثابت آورده‌ام - می‌توانید از آن برای ایجاد ستون‌های کناری، هدر یا پاورقی چسبنده استفاده کنید.

موقعیت یابی نسبی می تواند به زمانی کمک کند که بخواهید یک بلوک را کمی نسبت به موقعیت آن جابه جا کنید و همچنان آن را در جریان نگه دارید. همچنین برای استفاده از حرکت مطلق برای کودکان روی بلوک‌های والدین تنظیم شده است.

ترفندهای دیگر: مرکز، بلوک های شناور

ویژگی position تمام مشکلات مربوط به چیدمان عناصر بلوک را حل نمی کند. برای مثال، چگونه می‌توانید با استفاده از آن یک شبکه سایت ایجاد کنید؟ من ایده خوبی ندارم در اینجا سایر خواص به کمک می آیند.

گریدها اغلب با استفاده از شناورها در css ساخته می شوند. این ویژگی به شما امکان می دهد بلوک را به لبه چپ یا راست والد فشار دهید (float: چپ، شناور: راست)، به چندین عنصر بلوک اجازه می دهد تا در یک خط قرار گیرند، که در هر سایتی رایج است.

مرکز کردن به این صورت انجام می شود: بلوک باید یک عرض مشخص بنویسد و سپس حاشیه ویژگی: 0 را روی auto تنظیم کند. این مقدار خودکار است که آن را به صورت افقی دقیقاً با مرکز تراز می کند. به طور طبیعی، برای این باید تنها در خط خود باشد، در غیر این صورت هیچ چیز کار نخواهد کرد.

همه انواع موقعیت یابی که در این مقاله ذکر شده است می تواند برای یک توسعه دهنده وب مفید باشد. در جایی نماد باید درج شود (موقعیت: مطلق)، در جایی، موقعیت بلوک باید کمی تنظیم شود و جایی در پشت آن باقی بماند (موقعیت: نسبی)، و جایی که ویجت باید ثابت شود (موقعیت: ثابت). به طور کلی، شناخت این ویژگی قطعاً اضافی نخواهد بود.

خوب، برای یادگیری بیشتر از دنیای سایت سازی، حتما در وبلاگ ما مشترک شوید و مطالب آموزشی جدید دریافت کنید. و همچنین به شما توصیه می کنم که نگاهی به موضوع ما بیندازید که در آن موضوع مشابهی نیز مطرح شده است. (موقعیت اقلام)

ولاد مرژویچ

موقعیت یابی به موقعیت یک عنصر در یک سیستم مختصات اشاره دارد. چهار نوع موقعیت وجود دارد: عادی، مطلق، ثابت و نسبی. بسته به نوع که از طریق ویژگی position تنظیم می شود، سیستم مختصات نیز تغییر می کند.

به لطف ترکیبی از ویژگی‌های موقعیت، چپ، بالا، راست و پایین، یک عنصر را می‌توان بر روی یکدیگر قرار داد، در نقطه‌ای با مختصات خاصی نمایش داده شد، در یک مکان مشخص ثابت شد، موقعیت یک عنصر را نسبت به دیگری تعیین کرد. مانند سایر ویژگی های CSS، کنترل موقعیت از طریق اسکریپت ها در دسترس است. بنابراین، شما می توانید به صورت پویا موقعیت عناصر را بدون بارگیری مجدد صفحه، ایجاد انیمیشن ها و جلوه های مختلف تغییر دهید.

موقعیت یابی عادی

اگر ویژگی position برای یک عنصر تنظیم نشده باشد یا ثابت باشد، عنصر طبق معمول در جریان سند ارائه می شود. به عبارت دیگر، عناصر به ترتیبی که در منبع HTML ظاهر می شوند در صفحه نمایش داده می شوند.

ویژگی های چپ، بالا، راست، پایین، در صورت مشخص شدن، نادیده گرفته می شوند.

موقعیت یابی مطلق

با موقعیت یابی مطلق، عنصر در جریان سند وجود ندارد و موقعیت آن نسبت به لبه های مرورگر است. می توانید این نوع را از طریق مقدار مطلق ویژگی position تنظیم کنید. مختصات نسبت به لبه های پنجره مرورگر مشخص می شوند که "منطقه قابل مشاهده" نامیده می شود (شکل 3.42).

برنج. 3.42. مقادیر ویژگی های چپ، راست، بالا و پایین وقتی در حالت مطلق قرار می گیرند

حالت دارای ویژگی های زیر است.

  • عرض لایه، اگر به طور صریح تنظیم نشده باشد، عرض محتوا به اضافه مقادیر حاشیه، حاشیه و padding است.
  • یک لایه اگر ویژگی های راست، چپ، بالا و پایین را نداشته باشد، موقعیت اصلی خود را تغییر نمی دهد.
  • ویژگی های چپ و بالا بر ویژگی های راست و پایین اولویت دارند. اگر چپ و راست با هم تضاد داشته باشند، ارزش راست نادیده گرفته می شود. در مورد پایین هم همینطور.
  • اگر سمت چپ روی مقدار منفی تنظیم شود، لایه فراتر از لبه سمت چپ مرورگر می رود و نوار اسکرول ظاهر نمی شود. این یکی از راه‌های پنهان کردن یک عنصر از دید است. همین امر در مورد ویژگی top صدق می کند، فقط لایه از لبه بالایی عبور می کند.
  • اگر سمت چپ روی مقداری بیشتر از عرض ناحیه قابل مشاهده تنظیم شده باشد، یا اگر سمت راست با مقدار منفی مشخص شده باشد، یک نوار اسکرول افقی ظاهر می شود. یک قانون مشابه با بالا کار می کند، فقط نوار اسکرول عمودی مربوط می شود.
  • به طور همزمان، ویژگی های سمت چپ و راست مشخص شده، عرض لایه را تشکیل می دهند، اما فقط در صورتی که عرض مشخص نشده باشد. ویژگی width را اضافه کنید و مقدار مناسب نادیده گرفته می شود. همین امر در مورد ارتفاع لایه اتفاق می افتد، فقط ویژگی های بالا، پایین و ارتفاع از قبل درگیر هستند.
  • یک عنصر کاملاً موقعیت‌یافته با سند در حین حرکت حرکت می‌کند.

از ویژگی position تنظیم شده روی absolute می توان برای ایجاد افکت فریم استفاده کرد. علاوه بر موقعیت یابی مطلق، عناصر باید دارای ویژگی سرریز با مقدار خودکار باشند. سپس، زمانی که محتوا از ارتفاع ناحیه قابل مشاهده بیشتر شود، یک نوار اسکرول ظاهر می شود. ارتفاع و عرض "قاب ها" به طور خودکار با استفاده از ویژگی های چپ، راست برای عرض و بالا، پایین برای ارتفاع به طور همزمان ایجاد می شود (مثال 3.31).

مثال 3.31. ایجاد یک آنالوگ از فریم ها

موقعیت یابی مطلق

فرغانه پلو

گوشت تکه تکه شده را در یک قابلمه بریزید و تفت دهید تا پوسته شکل بگیرد. پیاز حلقه ای خرد شده را به همراه گوشت تفت دهید تا قرمز شود سپس هویج را که به صورت نواری خرد شده اضافه کنید. نیمی از نمک را اضافه کنید، همه چیز را هم بزنید و تفت دهید تا هویج ها قهوه ای طلایی شوند. بعد از آن نصف مقدار لازم آب را بریزید و بگذارید بجوشد.

روی برنج را با یک لایه یکنواخت بپوشانید و حرارت را زیاد کنید و بلافاصله آب بریزید به طوری که 1-1.5 سانتی متر روی برنج را بپوشاند و به محض تبخیر آب پلو را با سطحی جمع کنید و به ته آن بروید. سپس روی پلو را بپوشانید و بگذارید 20-25 دقیقه بماند.

پلو تمام شده را کاملا هم بزنید، به ظرف بزرگ منتقل کنید، گوشت را روی آن پهن کنید.

نتیجه این مثال در شکل نشان داده شده است. 3.43. لایه هدر طبق معمول در جریان رندر می شود و نوار کناری و لایه های محتوا روی موقعیت مطلق تنظیم می شوند.

برنج. 3.43. استفاده از موقعیت یابی مطلق

در IE6، عناصر کاملاً دارای موقعیت را نمی توان همزمان روی ویژگی های چپ، راست و بالا، پایین تنظیم کرد.

موقعیت یابی مطلق نیز برای ایجاد افکت های مختلف مانند راهنمای ابزار برای عکس ها استفاده می شود. برخلاف ویژگی عنوان تگ که متن راهنمای ابزار را نیز نمایش می دهد، از طریق استایل ها می توانید ظاهر متن نمایش داده شده را با استفاده از اسکریپت کنترل کنید.

ابتدا یک لایه خالی با شناسه floatTip ایجاد می کنیم و استایل آن را تعریف می کنیم. سه ویژگی سبک باید مورد نیاز باشد - موقعیت با مقدار مطلق، نمایش با مقدار هیچ یک لایه را پنهان نمی کند و عرض، عرض لایه اشاره را تنظیم می کند. بقیه ویژگی ها به درخواست توسعه دهنده استفاده می شوند و برای تغییر ظاهر لایه در نظر گرفته شده اند (مثال 3.32).

مثال 3.32. سبک راهنمای ابزار

#floatTip (موقعیت: مطلق؛ / * موقعیت‌یابی مطلق * / عرض: 250 پیکسل؛ / * عرض بلوک * / نمایشگر: هیچ‌کدام؛ / * پنهان کردن از نمایشگر * / حاشیه: 1px جامد # 000؛ / * گزینه‌های قاب * / پد: 5 پیکسل ؛ / * حاشیه های اطراف متن * / font-family: sans-serif; / * فونت برش خورده * / اندازه قلم: 9pt؛ / * اندازه قلم * / رنگ: # 333؛ / * رنگ متن * / پس زمینه: # ECF5E4؛ /* رنگ پس زمینه */ )

خود اسکریپت از دو تابع تشکیل شده است - moveTip () حرکت ماوس را ردیابی می کند و موقعیت لایه را مطابق با مختصات مکان نما تغییر می دهد و toolTip () نمایان بودن لایه را کنترل می کند و متن مورد نظر را در آن نمایش می دهد. (مثال 3.33).

مثال 3.33. اسکریپت برای خروجی لایه

Document.onmousemove = moveTip; تابع moveTip (e) (floatTipStyle = document.getElementById ("floatTip"). سبک؛ w = 250؛ // عرض لایه // برای مرورگر اینترنت اکسپلورر if (document.all) (x = event.x + document.body.scrollLeft ; y = event.y + document.body.scrollTop؛ // برای سایر مرورگرها) else (x = e.pageX؛ // مختصات X مکان نما y = e.pageY؛ // مختصات Y مکان نما) // نمایش لایه در سمت راست مکان نما اگر ((x + w + 10)< document.body.clientWidth) { floatTipStyle.left = x + "px"; // Показывать слой слева от курсора } else { floatTipStyle.left = x - w + "px"; } // Положение от верхнего края окна браузера floatTipStyle.top = y + 20 + "px"; } function toolTip(msg) { floatTipStyle = document.getElementById("floatTip").style; if (msg) { // Выводим текст подсказки document.getElementById("floatTip").innerHTML = msg; floatTipStyle.display = "block"; // Показываем слой } else { floatTipStyle.display = "none"; // Прячем слой } }

برای راحتی و تطبیق پذیری، اسکریپت باید در یک فایل جداگانه قرار داده شود و از طریق ویژگی src تگ متصل شود.

لنز "+": Canon EF 24-105 f / 4L IS USM
فلاش "+": Canon Speedlite 580 EX
نوردهی "+": 1/125
دیافراگم: 5.6 ")" onmouseout = "toolTip ()" />

نتیجه این مثال در شکل نشان داده شده است. 3.44. توجه داشته باشید که بسته بندی متن در فراخوانی تابع toolTip () برای خوانایی است و از نحو جاوا اسکریپت استفاده می کند. در سافاری گاهی اوقات اسکریپت با بسته بندی متن کار نمی کند که در این صورت متن باید در یک خط نوشته شود. ویژگی Opacity CSS3 را به استایل ها اضافه کرد که کمی شفافیت به لایه اضافه می کند. قبل از IE 9.0، این ویژگی پشتیبانی نمی‌شود.

برنج. 3.44. راهنمای ابزار با جاوا اسکریپت ارائه شده است

موقعیت ثابت

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

این نوع موقعیت یابی برای ایجاد منوها، تب ها، سرصفحه ها، به طور کلی، هر عنصری که باید در صفحه پین ​​شود و همیشه برای بازدید کننده قابل مشاهده باشد، استفاده می شود. مثال 3.35 اضافه شدن پاورقی را نشان می دهد که بدون توجه به میزان اطلاعات سایت در یک مکان باقی می ماند.

مثال 3.35. زیرزمین ثابت

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

زیرزمین ثابت

تمامی روش های صید شیر درج شده در سایت بصورت تئوری و مبتنی بر روش های محاسباتی می باشد. نویسنده ایمنی شما را هنگام استفاده از آنها تضمین نمی کند و هیچ مسئولیتی را در قبال نتیجه سلب می کند. به یاد داشته باشید، شیر یک حیوان درنده و خطرناک است!

نتیجه مثال در شکل نشان داده شده است. 3.45. از آنجایی که پاورقی ثابت روی متن همپوشانی دارد و آن را پنهان می کند، ما برای انتخابگر BODY، لایه پایینی اضافه کردیم. IE6 از مقدار ثابت پشتیبانی نمی کند، بنابراین این مثال به درستی در آن کار نخواهد کرد.

برنج. 3.45. پاورقی در پایین صفحه

موقعیت یابی نسبی

اگر ویژگی نسبی ویژگی position را تنظیم کنید، موقعیت عنصر نسبت به موقعیت اصلی آن است. افزودن ویژگی‌های چپ، بالا، راست و پایین، موقعیت عنصر را تغییر می‌دهد و آن را به یک طرف یا طرف دیگر از موقعیت اصلی خود منحرف می‌کند. یک مقدار مثبت برای سمت چپ، یک افست را در سمت راست مرز چپ عنصر، یک مقدار منفی، یک افست را در سمت چپ مشخص می کند. یک مقدار مثبت بالا، تغییر عنصر به سمت پایین را مشخص می کند (شکل 3.46)، یک مقدار منفی، تغییر به سمت بالا را مشخص می کند.

برنج. 3.46. مقادیر اموال سمت چپ و بالا برای موقعیت یابی نسبی

خواص پایین و سمت راست اثر معکوس دارند. اگر مقدار مثبت باشد، به راست عنصر را به سمت چپ لبه سمت راستش می برد، اگر منفی باشد، آن را به سمت راست منتقل می کند (شکل 3.47). مقدار مثبت پایین عنصر را به سمت بالا و مقدار منفی آن را به سمت پایین حرکت می دهد.

برنج. 3.47. مقادیر اموال سمت راست و پایین برای موقعیت یابی نسبی

موقعیت یابی نسبی دارای ویژگی های زیر است.

  • این نوع موقعیت‌یابی برای عناصر جدول مانند سلول‌ها، ردیف‌ها، ستون‌ها و غیره قابل استفاده نیست.
  • هنگامی که یک عنصر نسبت به موقعیت اصلی خود جابجا می شود، مکان اشغال شده توسط عنصر خالی می ماند و با عناصر زیر یا بالا پر نمی شود.

مثال 3.36 تغییر متن عنوان را به سمت پایین نشان می دهد تا سبک نوشتاری خاصی به آن بدهد.

مثال 3.36. عنوان متن

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

سرفصل

آز و راش علم قلم

تایپ فیس وسیله ای برای بیان طراحی است، نه خواندنی بی اهمیت.

نتیجه این مثال در شکل نشان داده شده است. 3.48.

برنج. 3.48. تغییر متن از موقعیت اصلی

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

معمولاً خود موقعیت یابی نسبی اغلب استفاده نمی شود، زیرا تعدادی ویژگی وجود دارد که در واقع همان نقش را انجام می دهند، به عنوان مثال، همان حاشیه. اما ترکیب انواع مختلف موقعیت‌یابی برای لایه‌های تو در تو، یکی از راحت‌ترین و کاربردی‌ترین تکنیک‌های چیدمان است. اگر نسبی را برای عنصر والد و مطلق را برای عنصر فرزند تنظیم کنید، سیستم مختصات تغییر می کند و موقعیت عنصر فرزند نسبت به والد آن نشان داده می شود (شکل 3.49).

برنج. 3.49. مقادیر ویژگی های چپ، راست، بالا و پایین در لایه های تودرتو

مختصات از لبه داخلی مرز شمارش می شود؛ مقادیر فیلد در نظر گرفته نمی شود. مثال زیر متن را در گوشه سمت راست پایین یک لایه در نزدیکی حاشیه قرار می دهد، بدون توجه به ویژگی padding.

متن

با استفاده از چهار ویژگی چپ، راست، بالا، پایین برای کنترل موقعیت لایه داخلی، نیازی به دانستن اندازه لایه والد ندارید. این دامنه موقعیت یابی را گسترش می دهد، بنابراین موقعیت به طور فعال در طرح بندی عناصر مختلف استفاده می شود. به عنوان مثال، اجازه دهید پوشش اطلاعات مختلف روی یک عکس را در نظر بگیریم: تعداد نظرات به آن، پیوندهای "افزودن نظر"، "اطلاعات مربوط به نویسنده" و "افزودن به موارد دلخواه". به طور کلی، نتیجه باید چیزی شبیه شکل. 3.50.

برنج. 3.50. عکس با عناصر روی هم قرار گرفته است

خود کد در مثال 3.37 نشان داده شده است. لایه عکس روی موقعیت نسبی تنظیم شده است و لایه های داخلی img (خروجی عکس)، نظر (تعداد نظرات) و ابزار (لینک ها در پایین عکس) روی موقعیت مطلق تنظیم شده اند.

مثال 3.37. لایه های موقعیت یابی

XHTML 1.0 CSS 2.1 CSS 3 IE 7+ IE 9+ Cr Op Sa Fx

لایه های موقعیت یابی

134

تعیین موقعیت بلوک های cssیکی از مهمترین مراحل چیدمان است، زیرا این همان چیزی است که بر سازگاری سایت یا امکان اجرای آن در آینده (اگر در حال حاضر مورد نیاز نباشد) تأثیر می گذارد و همچنین تأثیر بسزایی در مقیاس بندی بیشتر دارد. سایت. برای "طراحان بدبخت چیدمان" غیرمعمول نیست که چنین چیدمانی درست کنند که در نهایت بیرون انداختن آن راحت تر از تغییر چیزی باشد، اما در عین حال می تواند کاملاً مطابق با چیدمان به نظر برسد. این وضعیت ناشی از عدم درک مکان و زمان استفاده از این یا آن نوع موقعیت یابی است. امروز سعی خواهیم کرد این موضوع را درک کنیم. و بنابراین، در css یک ویژگی وجود دارد موقعیتاین ویژگی می تواند 5 مقدار داشته باشد، اما ما 4 مقدار اصلی را در نظر خواهیم گرفت:

  • مطلق
  • استاتیک
  • نسبت فامیلی
  • درست شد

موقعیت یابی مطلق بلوک ها (مطلق)

اولین مورد در لیست ما روش موقعیت یابی مطلق است. هنگامی که این ویژگی اختصاص داده می شود، بلوک به خودی خود تبدیل به یک واحد می شود و بقیه عناصر صفحه بر مکان آن تأثیر نمی گذارند و همچنین بر سایر عناصر تأثیر نمی گذارد. اندازه کادر با ویژگی های عرض و ارتفاع و موقعیت صفحه با ویژگی های بالا تعیین می شود. چپ، راست و پایین این پارامترها حاشیه ها را از لبه های بالا، چپ، راست و پایین تنظیم می کنند. اگر بلوک عنصر والد نداشته باشد و همچنین اگر موقعیت عنصر والد با استاتیک متفاوت باشد، ویژگی های بالا، چپ، پایین، راست تورفتگی ها را از ابتدای صفحه تنظیم می کنند، در غیر این صورت از لبه های صفحه عنصر والد

اغلب، این نوع موقعیت‌یابی زمانی استفاده می‌شود که بلوک باید به لبه سمت راست یا پایین فشار داده شود. طرحی مانند این را در نظر بگیرید.

برای راحتی، بلوک ها با یک قاب چند رنگ برجسته شده اند. نشانه گذاری به شکل زیر خواهد بود:

XHTML

رابطه (موقعیت: نسبی؛) زرد (موقعیت: مطلق؛ راست: 10 پیکسل؛ پایین: 10 پیکسل؛)

رابطه

موقعیت: نسبی;

رنگ زرد

موقعیت: مطلق;

سمت راست: 10 پیکسل؛

پایین: 10 پیکسل؛

در این مثال، از ویژگی های راست و پایین برای تنظیم تورفتگی از لبه های سمت راست و پایین استفاده کردیم. این مقادیر ویژگی معادل بالا هستند: ارتفاع عنصر - 10 پیکسل و سمت چپ: عرض عنصر - 10 پیکسل.

همچنین، موقعیت‌یابی مطلق گاهی اوقات در مواقعی استفاده می‌شود که لازم باشد یک عنصر به عنصر دیگر «فرار» شود.

موقعیت یابی استاتیک

رایج ترین نوع موقعیت یابی که در هر صفحه رخ می دهد و معمولاً برای اکثر عناصر تنظیم می شود، ثابت است، در css به صورت static نوشته می شود. برای اکثر تگ های HTML، این مقدار به طور پیش فرض تعریف شده است، به عنوان مثال. اگر موقعیت به طور صریح تنظیم نشده باشد، مقدار ثابت خواهد بود. با این چیدمان، المان‌ها روی هم ردیف می‌شوند و مختصات در پنجره هر عنصر به نزدیک‌ترین عناصر با موقعیت: استاتیک یا موقعیت: نسبی بستگی دارد. ویژگی های بالا، چپ، راست، پایین با این موقعیت یابی کار نمی کنند، موقعیت به دلیل خاصیت حاشیه تغییر می کند.

موقعیت یابی نسبی

این نوع موقعیت یابی بسیار شبیه به موقعیت یابی استاتیک است، با این تفاوت که موقعیت عنصر را می توان با ویژگی های بالا، چپ، راست، پایین و حاشیه تغییر داد.

موقعیت یابی ثابت

موقعیت یابی ثابت با توجه به مشخصات مشخص کردن مختصات مشابه مطلق است، اما موقعیت نه نسبت به صفحه HTML بلکه نسبت به پنجره مرورگر محاسبه می شود، یعنی. با top: 10px، padding بالایی را روی 10px قرار می دهید از پنجره مرورگرو مهم نیست که در چه سطحی از پیمایش هستید، این عنصر همیشه با صفحه نمایش شما همراه خواهد بود.

معمولاً برای عناصر ناوبری استفاده می شود، به طوری که کاربر همیشه اطلاعات مهم یا پیوندهایی به صفحات جالب را در اختیار دارد.

توسعه دهندگان وب این روزها می توانند با استفاده از تکنیک های مختلف CSS، طرح بندی های پیچیده ای از صفحات وب بسازند. برخی از این تکنیک ها سابقه طولانی دارند (فلوات)، برخی دیگر (فلکس باکس) در سال های اخیر محبوبیت پیدا کرده اند.

در این مقاله، نگاهی دقیق به برخی از چیزهای ناشناخته در مورد موقعیت یابی CSS خواهیم داشت.

قبل از شروع، اجازه دهید به طور خلاصه اصول انواع مختلف موقعیت یابی را مرور کنیم.

مروری بر روش های موقعیت یابی موجود

ویژگی position CSS نوع موقعیت یک عنصر را تعیین می کند.

گزینه های موقعیت یابی

static مقدار ویژگی موقعیت یابی پیش فرض است. ما گزارش می‌دهیم که این عنصر از موقعیت‌یابی استفاده نمی‌کند - موقعیت‌یابی تنها در صورتی اعمال می‌شود که نوع موقعیت‌یابی را غیر از حالت پیش‌فرض تنظیم کنید.

برای انجام این کار، ویژگی position را روی یکی از مقادیر زیر تنظیم کنید:

  • نسبت فامیلی
  • مطلق
  • درست شد
  • چسبنده

و تنها پس از تنظیم موقعیت، می توانید از ویژگی هایی استفاده کنید که عنصر را جبران می کند:

  • درست
  • پایین
  • مقدار اولیه برای این ویژگی ها کلمه کلیدی خودکار است.

باید در نظر داشت که اگر عنصری دارای ویژگی position روی مطلق یا ثابت باشد، یک عنصر کاملاً موقعیت‌یافته است. همچنین، برای عناصر موقعیت‌یافته، ویژگی z-index شروع به کار می‌کند که ترتیب همپوشانی را تعیین می‌کند.

تفاوت بین روش های تعیین موقعیت اولیه

اکنون، بیایید به سرعت به سه تفاوت اساسی بین انواع موقعیت یابی موجود نگاه کنیم:

  • عناصر کاملاً مستقر به طور کامل از جریان حذف می شوند و نزدیکترین همسایگان آنها جای آنها را می گیرند.
  • نسبتاً موقعیت (نسبی) و چسبیده (چسبنده) جای خود را در جریان نگه می دارند و نزدیکترین همسایگان آنها آن را اشغال نمی کنند. با این حال، بالشتک این عناصر فضایی را اشغال نمی کند، اما به طور کامل توسط سایر عناصر نادیده گرفته می شود و این می تواند منجر به همپوشانی عناصر شود.
  • عناصر ثابت (و موقعیت ثابت نوعی مطلق است) همیشه نسبت به درگاه دید (با نادیده گرفتن موقعیت اجداد) قرار می گیرند، در حالی که عناصر چسبدار نسبت به نزدیکترین جد پیمایشی قرار می گیرند (سرریز: خودکار). و فقط در صورت عدم وجود چنین اجدادی، آنها نسبت به منطقه دید قرار می گیرند.

این را می توان با جزئیات بیشتر در دمو مشاهده کرد:

توجه: تعیین موقعیت "عناصر چسب" هنوز یک فناوری آزمایشی با پشتیبانی محدود مرورگر است. البته در صورت تمایل می توانید از polyfill برای افزودن این قابلیت به مرورگر استفاده کنید، اما با توجه به شیوع کم آن، در این مقاله به این ویژگی پرداخته نخواهد شد.

عناصر تعیین موقعیت با نوع موقعیت یابی مطلق

من مطمئن هستم که اکثر مردم می دانند موقعیت یابی مطلق چگونه کار می کند. با این حال، بسیاری از چیزها در مورد آن می تواند برای مبتدیان گیج کننده باشد.

بنابراین تصمیم گرفتم در هنگام توصیف ویژگی های موقعیت یابی کمتر شناخته شده با آن شروع کنم.

بنابراین، یک عنصر کاملاً موقعیت‌یافته از نزدیک‌ترین جد قرار گرفته‌اش جدا می‌شود. البته، اگر هر یک از اجداد موقعیتی غیر از ایستا داشته باشد، کار می کند - اگر عنصر هیچ اجدادی در موقعیت قرار نداشته باشد، از نمای دید خارج می شود.

این با مثال زیر نشان داده می شود:

در این نسخه ی نمایشی، جعبه سبز در ابتدا با حاشیه های کاملاً صفر در پایین: 0 و سمت چپ: 0 قرار می گیرد، جد آن (جعبه قرمز) به هیچ وجه قرار نداشت.

با این حال، ما لفاف خارجی (یک عنصر jumbotron) را نسبتاً در موقعیت قرار داده ایم. توجه کنید که چگونه موقعیت جعبه سبز با تغییر نوع موقعیت اجداد آن تغییر می کند.

عناصر کاملاً قرار گرفته ویژگی float را نادیده می گیرند

اگر موقعیت مطلق یا ثابت را برای یک عنصر شناور اعمال کنیم، ویژگی float روی هیچ تنظیم می شود. از طرف دیگر، اگر موقعیت نسبی را تنظیم کنیم، عنصر شناور باقی می ماند.

به نسخه ی نمایشی مربوطه نگاهی بیندازید:

در این مثال، ما دو عنصر مختلف را برای شناور به سمت راست تعریف می کنیم. توجه داشته باشید که وقتی کادر قرمز کاملاً در موقعیت قرار می‌گیرد، مقدار شناور را نادیده می‌گیرد، در حالی که کادر سبز نسبتاً قرار گرفته مقدار شناور را حفظ می‌کند.

عناصر درون خطی کاملاً قرار گرفته به سطح بلوک تبدیل می شوند

یک عنصر درون خطی با موقعیت مطلق یا ثابت ویژگی های یک عنصر بلوک را به خود می گیرد. برای جزئیات بیشتر در مورد تبدیل عناصر درون خطی به عناصر بلوک، جدول را ببینید.

در این مورد، ما دو عنصر متفاوت ایجاد کرده ایم. اولی (بلوک سبز) یک عنصر بلوکی است و دومی (بلوک قرمز) یک عنصر درون خطی است. در ابتدا فقط بلوک سبز قابل مشاهده است.

کادر قرمز قابل مشاهده نیست زیرا ویژگی های عرض و ارتفاع آن فقط روی عناصر بلوک و درون خطی کار می کند و از آنجایی که محتوایی ندارد، ابعادی نیز ندارد.

هنگامی که بلوک قرمز به موقعیت مطلق یا ثابت اختصاص داده می شود، به بلوک تبدیل می شود و اندازه بلوک مشخص شده در آن اعمال می شود.

عناصر کاملاً قرار گرفته حاشیه های فرو ریخته ندارند

به‌طور پیش‌فرض، وقتی دو حاشیه عمودی لمس می‌شوند، در یکی برابر با حداکثر آن‌ها ادغام می‌شوند. به این می گویند حاشیه های فروپاشی.

عناصر کاملاً قرار گرفته مانند عناصر شناور رفتار می کنند - لایه آنها با عناصر مجاور ادغام نمی شود.

در این دمو، عنصر روی تورفتگی 20 پیکسل تنظیم شده است. padding آن با padding عنصر والد که آن هم 20 پیکسل است جمع می شود. همانطور که می بینید، تنها با موقعیت یابی مطلق، هیچ فروپاشی رخ نمی دهد.

اما چگونه می توانیم از فرو ریختن لنت جلوگیری کنیم؟ ما باید نوعی جداکننده بین آنها قرار دهیم.

این می تواند بالشتک یا حاشیه باشد و می تواند برای عناصر والدین و فرزند اعمال شود. گزینه دیگر اضافه کردن یک clearfix به عنصر والد است.

تعیین موقعیت عناصر با پیکسل و درصد

آیا تا به حال از درصد به جای پیکسل برای قرار دادن عناصر استفاده کرده اید؟ اگر پاسخ مثبت است، می دانید که افست عنصر به واحدهای اندازه گیری انتخاب شده (پیکسل یا درصد) بستگی دارد.

این کمی شرم آور است، درست است؟ بنابراین ابتدا، بیایید ببینیم مشخصات به صورت درصد در مورد افست چه می گوید:

افست به عنوان درصدی از عرض (برای چپ و راست) یا ارتفاع (بالا یا پایین) جعبه والد. برای عناصر چسب دار، افست به صورت درصدی از عرض (برای چپ و راست) یا ارتفاع (بالا یا پایین) جریان محاسبه می شود. مقادیر منفی مجاز است.

همانطور که گفته شد، هنگام تعیین یک افست به عنوان درصد، موقعیت یک عنصر به عرض و ارتفاع والد آن بستگی دارد.

نسخه ی نمایشی این تفاوت را نشان می دهد:

این مثال از پیکسل ها و درصدها برای افست استفاده می کند. البته، وقتی افست را بر حسب پیکسل تنظیم می کنید، عنصر به جایی که باید باشد منتقل می شود.

و اگر درصدی را برای افست انتخاب کنیم، نتیجه به اندازه عنصر والد بستگی دارد. در اینجا تصویری است که نشان می دهد موقعیت جدید چگونه محاسبه می شود:

توجه: همانطور که احتمالا می دانید، ویژگی transform (همراه با توابع مختلف ترجمه) به شما امکان می دهد موقعیت یک عنصر را تغییر دهید. اما در این حالت، هنگام استفاده از درصد، محاسبه بر اساس اندازه خود عنصر خواهد بود و نه والد آن.

نتیجه

امیدوارم این مقاله به شما در درک بهتر موقعیت CSS کمک کرده باشد و پیچیدگی های اساسی را روشن کند.

آنها بر روی تمام عناصر قرار گرفته به جز عناصر استاتیک کار می کنند.

مثال موقعیت یابی

عناصر می توانند با یکدیگر همپوشانی داشته باشند!

نمایش یک مورد بالاتر از بقیه!

ویژگی position دارای 4 مقدار استاتیک، ثابت، نسبی و مطلق است. هر یک از این مقادیر در زیر با مثالی از کاربرد نشان داده خواهد شد.

قبل از اینکه به جزئیات در مورد انواع موقعیت عناصر در یک صفحه بپردازیم، باید بررسی کنیم که جریان سند چیست.

جریان سند

به طور پیش‌فرض، عناصر در یک صفحه وب به ترتیبی که در یک سند HTML ظاهر می‌شوند، نمایش داده می‌شوند، یعنی عناصر بلوک تمام عرض موجود خود را می‌گیرند و به صورت عمودی یکی زیر دیگری روی هم قرار می‌گیرند. عناصر درون خطی به صورت افقی ردیف می شوند تا زمانی که کل عرض موجود اشغال شود، پس از اینکه کل عرض اشغال شد، یک خط شکسته ایجاد می شود و همه چیز از نو شروع می شود. به این ترتیب چیدمان عناصر گفته می شود جریان عادی(همچنین به نام جریان سندیا جریان عمومی).

با استفاده از ویژگی float یا position می توانید یک عنصر را از جریان عادی حذف کنید. اگر عنصری از جریان عادی خارج شود، عناصری که در کد زیر این عنصر قرار دارند به جای خود در صفحه وب منتقل می شوند.

موقعیت یابی استاتیک

Static موقعیت پیش فرض برای همه عناصر در یک صفحه وب است. اگر خاصیت position به عنصری اعمال نشود، ثابت خواهد بود و با توجه به جریان کلی عناصر در صفحه وب نمایش داده می شود.

هنگام اعمال ویژگی های CSS بالا، چپ، راست یا پایین به یک عنصر استاتیکی، آنها نادیده گرفته می شوند.

در صورت لزوم، می توانید با استفاده از مقدار استاتیک، موقعیت استاتیک را در شیوه نامه تنظیم کنید:

نام سند

پراگراف اول.

پاراگراف دوم.

تلاش كردن "

موقعیت یابی ثابت

عناصر با موقعیت ثابت نسبت به پنجره مرورگر در صفحه قرار می گیرند. چنین عناصری از جریان عمومی حذف می شوند، عناصری که از عنصر ثابت در جریان پیروی می کنند، آن را نادیده می گیرند، جابه جا می شوند و جای آن را در صفحه وب می گیرند.

لازم به ذکر است که عناصر با موقعیت ثابت می توانند با عناصر دیگر همپوشانی داشته باشند و آنها را به طور کامل یا جزئی پنهان کنند. هنگام پیمایش در صفحات طولانی، آنها جلوه اشیاء ثابت را ایجاد می کنند و در همان مکان باقی می مانند:

نام سند

متن متن متن متن متن متن متن متن متن متن متن متن متن متن
تلاش كردن "

موقعیت یابی نسبی

عناصر نسبتاً قرار گرفته، مانند عناصر استاتیک، در جریان باقی می مانند. هنگامی که ویژگی‌های بالا، چپ، راست یا پایین را به عناصر نسبتاً قرار داده شده اعمال می‌کنید، آنها از محل خود منحرف می‌شوند و فضای سفید در جایی که عنصر در ابتدا قرار گرفته است باقی می‌ماند.

چنین عناصری بر چیدمان عناصر اطراف تأثیر نمی گذارد، بقیه عناصر در جای خود باقی می مانند و می توانند توسط یک عنصر نسبتاً قرار گرفته همپوشانی داشته باشند:

نام سند

عنوان سطح اول

عنوان نسبتاً قرار گرفته است.

عنوان سطح سوم

تلاش كردن "

نکته: عناصر با موقعیت نسبی (نسبی) معمولاً به عنوان والد عناصر با موقعیت مطلق (مطلق) استفاده می شوند.

موقعیت یابی مطلق

عناصر کاملاً قرار گرفته به طور کامل از جریان حذف می شوند، بقیه عناصر فضای آزاد شده را اشغال می کنند و عناصر کاملاً قرار گرفته را نادیده می گیرند. سپس می توانید با استفاده از ویژگی های بالا، چپ، راست یا پایین، عنصر را در هر کجای صفحه وب که می خواهید قرار دهید.

همه عناصر دارای موقعیت مطلق نسبت به پنجره مرورگر یا نسبت به نزدیکترین جد قرار گرفته (در صورت وجود) قرار می گیرند که ویژگی موقعیت آن به صورت مطلق، ثابت یا نسبی تنظیم شده است.

نام سند

بیایید موقعیت لوگو را با استفاده از موقعیت مطلق تغییر دهیم.
حالا لوگو در گوشه سمت راست بالای صفحه قرار خواهد گرفت.

تلاش كردن "

عناصر همپوشانی

هنگامی که عناصر خارج از جریان عمومی صفحه باشند، می توانند با یکدیگر همپوشانی داشته باشند. معمولاً ترتیب عناصر با ترتیب آنها در کد HTML صفحه مطابقت دارد، اما می توان ترتیب همپوشانی را با استفاده از ویژگی z-index CSS کنترل کرد، هر چه مقدار آن بیشتر باشد، عنصر بالاتر خواهد بود.

نام سند

z-index: 1;
z-index: 0;
z-index: 2;

مقالات مرتبط برتر