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

پاورقی در پایین صفحه css. زیرزمین ثابت

  • آموزش

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

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

بیایید به اجرای یک نوع فوتر میخکوب شده که از شبکه گرفته شده است نگاه کنیم و سعی کنیم بفهمیم چه اتفاقی در حال رخ دادن است. css-tricks.com/snippets/css/sticky-footer
CSS:
* ( margin:0; padding:0; ) html, body, #wrap ( ارتفاع: 100%؛ ) body > #wrap (ارتفاع: خودکار؛ حداقل ارتفاع: 100%؛) #main ( padding-bottom: 150px; ) /* باید همان ارتفاع پاورقی باشد */ #footer ( موقعیت: نسبی؛ حاشیه بالا: -150 پیکسل؛ /* مقدار منفی ارتفاع پاورقی */ ارتفاع: 150 پیکسل؛ واضح: هر دو؛) /* CLEAR FIX* / .clearfix:after (محتوا: "."؛ نمایش: بلوک؛ ارتفاع: 0؛ روشن: هر دو؛ مشاهده: پنهان؛) .clearfix (نمایش: inline-block;) /* از IE-mac پنهان می شود \*/ * html .clearfix (ارتفاع: 1%).
HTML:

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

بیایید با تئوری شروع کنیم

پیاده سازی معمول یک پاورقی میخکوبی متکی به ویژگی منحصر به فرد CSS2 است که عناصر فرزندان مستقیم آن هستند. بدن- حفظ درصد ارتفاع ( ارتفاع: 100%یا دیگری) نسبت به پنجره، اگر همه والدینشان درصد قد یکسانی داشته باشند، با شروع از برچسب HTML. قبلاً بدون doctypes، اما اکنون در حالت Quirks، درصد ارتفاع عناصر در هر سطحی پشتیبانی می‌شود، و در doctypes مدرن - فقط در درصد عناصر داده شده. بنابراین، اگر یک بلوک محتوا ایجاد کنیم (بیایید آن را صدا کنیم #چیدمان) با داشتن 100% ارتفاع، طوری حرکت می کند که انگار یک پنجره است. تمام مطالب (استریمینگ) در آن قرار می گیرد، به جز پاورقی و شاید هدر.

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

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

زیرا پایین بلوک #چیدمان- این یک جیب است، برای فوتر باید خالی باشد، اشیاء صفحه نمایش داده نشود. و در اینجا با محدودیت دیگری روبرو می شویم - ما نمی توانیم یک جیب خالی در هزینه ایجاد کنیم لایه گذاری V #چیدمان، زیرا در این صورت بیش از 100٪ می شود. این شما را نیز نجات نخواهد داد لبه- خالی بودن باید با استفاده از ویژگی های عناصر تو در تو ایجاد شود. به علاوه، لازم است اطمینان حاصل شود که عناصر شناور زیر مرز بلوک نمی خزند، که برای مثال توسط بلوک انجام می شود.

، جایی که .clear (روشن: هر دو). مهم است که یا این " ارتفاع"تثبیت شد، یا در همان واحدهای نسبی، یا آن را در طول تغییرات صفحه محاسبه می کنیم. تراز کردن این بلوک تراز و تنظیم آن در ارتفاع مورد نظر معمولاً راحت است.

بیایید به ساختار صفحات موضوع آزمون خود نگاه کنیم. ساده ترین راه برای انجام این کار، باز کردن پنجره Firebug یا پنجره مشابه (ابزارهای توسعه دهنده (Ctrl-F12)) در کروم است.

... بلوک تبلیغاتی برتر ...

بیایید به یک مثال کاری برویم

کدام را می بینیم؟ نقص های چیدماناز نظر اجرای افکت پاورقی میخکوب شده؟ ما آن را می بینیم
1) فوتر سایت داخل بلوکی با id=layout قرار دارد که درصد ارتفاع ندارد. طبق تئوری، او، والدین و محتوای block.content-left باید ارتفاع را روی 100% تنظیم کنند. مشکلات با دومی ایجاد می شود - برای این مناسب نیست. در نتیجه، یک بلوک بین لایه ای وجود ندارد یا پاورقی در سطح مناسبی قرار ندارد. بعلاوه،
2) ارتفاع پاورقی متغیر است (بسته به تعداد عناصر موجود در لیست و اندازه فونت، این را می توان نه از HTML، بلکه از CSS مشاهده کرد). و
3) در بالا #چیدمانیک بلوک تبلیغاتی با ارتفاع ثابت 90 پیکسل وجود دارد.
4) هیچ بلوک تراز یا در فوتر یا (به طور کلی) در بلوک وجود ندارد #چیدمان(بله، اما بالای بلوک rotated_posts; با این حال، شاید باید به عنوان پاورقی طبقه بندی شود).

نکته 4 - باید آن را با یک اسکریپت بکشید.
به نظر می رسد با اضافه کردن #layout (margin-top:-90px;) با سومین نکته کنار بیایید، اما به یاد داشته باشید که این بلوک ممکن است وجود نداشته باشد - با برش بنر سرکوب می شود، یا تبلیغ کنندگان ناگهان تصمیم می گیرند آن را نشان ندهند. تعدادی صفحه در سایت وجود دارد که در آنها وجود ندارد. بنابراین وابستگی حاشیه بالااز جانب بلوک تبلیغاتی - ایده بد. خیلی بهتره داخلش قرار بدید #چیدمان- پس او در هیچ چیز دخالت نخواهد کرد.

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

از آنجایی که نمی‌توانیم قوی‌تر از آخرین طراح صفحه‌آرایی وب‌سایت باشیم که پاورقی را وارد محتوا کرده است، این ایده را کنار می‌گذاریم. قرار دادن صحیحپاورقی به وب‌سایت آینده شما (که بنابراین «باحال‌تر» از Habr خواهد بود. (بیایید بی درنگ بگوییم که این طراح چیدمان یا سوئیچمن نیست که مقصر است، بلکه نوع سایت، البته، تعیین کننده است. تصمیم استراتژیکمدیریت پروژه.) به این ترتیب به ایده آل نخواهیم رسید، زیرا در یکی دو ثانیه اول در طول فرآیند بارگذاری صفحه صفحه بندی نادرستی خواهد داشت. اما آنچه برای ما مهم است مفهوم و فرصت پیشی گرفتن از نظر کیفیت از محبوب ترین وب سایت در دنیای فناوری اطلاعات است.

بنابراین، در جای مناسب در اسکریپت (اوایل بارگذاری صفحه)، انتقال بلوک های تبلیغاتی DOM و فوتر را به مکان های مناسب. (بیایید برای این واقعیت آماده باشیم که به دلیل اسکریپت های کاربر، راه حل پیچیده تر از یک راه حل خالص خواهد بود.)
var dQ = function(q)(return document.querySelector(q);) //برای کوتاه کردن var topL = dQ("#topline"), lay = dQ("#layout"), foot = dQ("#footer" ) if(topL && lay) //banner - داخل بلوک محتوا lay.insertBefore(topL, lay.firstChild); if(lay && foot && lay.nextSibling) //Moving the footer lay.parentNode.insertBefore(footer, lay.nextSibling);
ما بلوک ها را در جای خود قرار داده ایم - اکنون تنها چیزی که باقی می ماند اختصاص دادن ویژگی های لازم به عناصر است. ارتفاع پاورقی باید دقیقاً تنظیم شود، فقط به این دلیل که ما در زمان فعال شدن اسکریپت کاربر (پایان بارگذاری صفحه) آن را می‌دانیم. با توجه به نقطه ماشه کاربر اسکریپت، همانطور که در بالا ذکر شد، جهش در نمایش فوتر در صفحه اجتناب ناپذیر است. می توانید سعی کنید انجام دهید صورت زیبا"، اما با "بازی بد"؟ برای چی؟ " بازی بد"سایت به شما امکان می دهد بدون تلاش اضافی یک مفهوم ایجاد کنید، که برای ارزیابی کیفیت کافی است و برای آن نیازی نیست" بازی مناسب"در پروژه شما.
if(foot)( //block-aligner

در فوتر h.apnd_el((clss:"clear", appendTo: footer)); var footH = foot.offsetHeight; //...و اندازه گیری ارتفاع پاورقی ) if(topL && lay && footer && lay.nextSibling)( //بلوک همترازی ارتفاع مورد نیاز در محتوا ("layout") h.apnd_el((clss:" clear", css:( height: (footH ||0) +"px"), appendTo: lay)); lay.style.minHeight = "100%"; h.addRules ("#layout(margin-bottom:- "+ footH +"px !important)html، بدن (ارتفاع:100%)")؛ )
در اینجا به خودمان اجازه دادیم که از یک تابع خودنویس استفاده کنیم h.apnd_el، که تقریباً همان کار را در jQuery انجام می دهد -
$("
").css((ارتفاع: footH ||0)).appendTo($(footer))
و سپس - یکی دیگر از عملکردهای پیاده سازی معمولی قوانین CSS - h.addRules. اینجا نمی توانید بدون آن کار کنید، زیرا باید یک قانون را با " اعلام کنید !مهم"- دقیقاً به دلیل ویژگی های اولویت های سبک ها از اسکریپت کاربر.

با این تکه‌های کد، می‌توانیم پاورقی میخ‌شده را در اسکریپت کاربر ببینیم (پس از پرش به پایین) و به طور کامل نحوه ساخت طرح‌بندی صفحه را درک کنیم. استفاده از طرح پرش به صورت روزانه ناخوشایند است، بنابراین توصیه می شود این کار را صرفاً برای نمایش و آزمایش انجام دهید. در اسکریپت کاربر HabrAjax، من یک اسکریپت مشابه را نصب کردم و آن را با تنظیمات "underFooter" می بستم (کادر موجود در لیست تنظیمات را قبل از "footer nailed to the bottom" علامت بزنید)، که با نسخه 0.883_2012-09-12 شروع می شود.

آیا میخ زدن پاورقی بر نیاز به به‌روزرسانی سبک‌های ZenComment در صورت نصب تأثیر می‌گذارد؟ بله، این کار را می کند.با توجه به زنجیره پیچیده اولویت‌های سبک، که در آن سبک‌های درج شده توسط اسکریپت کاربر کمترین اولویت را دارند، مجبور شدیم سبک‌های کاربری را کمی تنظیم کنیم. ممکن هاکار با فوتر میخ دار اگر سبک های کاربری خود را (به 2.66_2012-09-12 +) به روز نکنید، فوتر به درستی کار نخواهد کرد.

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

نکته دوم (از لیست کاستی‌های طرح‌بندی) صرفاً برای Habr است (در مورد اسکریپت کاربر صدق نمی‌کند و تا حدی موارد قبلی را تکرار می‌کند).

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

نتیجه گیری: امکان طراحی کامل یک چیدمان بر روی Habré وجود دارد، اما برای این کار به یک طراح چیدمان نیاز دارید که به وضوح رفتار چیدمان را درک کند و بلوک ها را به ترتیب صحیح قرار دهد. (در حال حاضر پاورقی و بنر بالای صفحه "در جای اشتباه" قرار دارند و به گونه ای نیستند که بتوانید فقط به پاورقی شکل دهید.) اگر ارتفاع فوتر را در واحدهای نسبی تنظیم کنید، می توانید بدون JS این کار را انجام دهید. فضایی برای عدم قطعیت فونت

پیاده سازی

اگر HabrAjax 0.883+ را فعال کنید، ما شاهد کارکرد "پانویس میخکوب" خواهیم بود. با استفاده از اسکریپت ها ارتفاع را تطبیق می دهد. این به شما امکان می دهد تا ارزیابی کنید که صفحات با فوتر میخ شده در مقایسه با صفحات معمولی چقدر بهتر است. سبک های کاربر ZenComment با اسکریپت ها سازگار هستند، اما برای عملکرد مناسبفوتر میخکوب شده با آنها باید نسخه ZenComment 2.66_2012-09-12 + را نصب کنید.

حقایقی در مورد رفتار پیاده سازی

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

1) فایرفاکس - عدم پرش غیرمنتظره پاورقی. عجیب است که آنها آنجا نیستند - رندر پس از قرار دادن پاورقی در پایین رخ می دهد.

2) کروم - با "پیمایش سرگردان" من را شگفت زده کرد - فضاهای خالی در پایین با دوره زمانی یک بار در ثانیه به صفحه اضافه می شود - اشتباهی در محاسبه ارتفاع اتفاق می افتد. راه حل این است که html،body(height:100%) را به سبک کاربر بنویسید، اما هیچ تضمینی وجود ندارد که همیشه کار کند. قابل اعتمادتر است که بررسی کنید آیا سند از ارتفاع پنجره تجاوز نمی کند یا خیر، و اگر اینطور نیست، فوتر را حرکت دهید، در غیر این صورت - هیچ چیز. پریدن اشکالی ندارد، وجود دارد.

3) Opera - بدون پرش (نسخه 12.02) هنگامی که صفحه برای اولین بار بارگیری می شود، اما بارگذاری مجدد عجولانه ممکن است یک پرش پاورقی را نشان دهد. در غیر این صورت رفتار آن کمتر از Fx نیست.

خوب، شما باید به طور خاص به Chrome آموزش دهید که به درستی (با یک اسکریپت) رفتار کند و نسخه را در این فرم برای نمایش منتشر کنید. بنابراین، بخش در اسکریپت کاربر کمی پیچیده تر از قسمت ارائه شده در مقاله است.

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

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

این برای چه صفحاتی مفید است؟

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

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

آیا حمایت خواهد شد؟

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

در مرحله بعد، بیایید به جای مربع برای امتیاز دهی به "فلش ها" نگاه کنیم. آنها حدود 3 سال پیش در usersils ("Prettifier") ظاهر شدند و حدود 2 سال پیش در ZenComment پذیرفته شدند. حدود 2-3 ماه پیش در سایت ظاهر شدند. یکی شروع می کند به این باور که بعد از مدتی فلش ها با فاصله ای از یکدیگر فاصله می گیرند، همانطور که در ZenComment انجام می شود (یک فلش به سمت چپ عدد، دومی به سمت راست) به منظور از دست دادن کمتر.

  • سبک های کاربری
  • هابرآژاکس
  • افزودن برچسب
    • آموزش

    همه کسانی که به صفحات وب سایت کاملاً طراحی شده عادت دارند، ظاهر چیزی «میخکوب» (چسبنده) را به پایین پاورقی صفحه ترجیح می دهند. اما دو مشکل در اینترنت وجود دارد: فیلدهای ورودی که به سمت پایین رشد نمی کنند و فوترهایی که میخ نمی شوند (به پایین پنجره). به عنوان مثال، وقتی صفحات کوتاهی مانند habrahabr.ru/settings/social را باز می کنیم، فوراً به چشم می خورد که اطلاعات در نظر گرفته شده برای قرار گرفتن در پایین پنجره مشاهده به محتوا می چسبد و جایی در وسط یا حتی در بالای پنجره وقتی پایین خالی است.

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

    بیایید به اجرای یک نوع فوتر میخکوب شده که از شبکه گرفته شده است نگاه کنیم و سعی کنیم بفهمیم چه اتفاقی در حال رخ دادن است. css-tricks.com/snippets/css/sticky-footer
    CSS:
    * ( margin:0; padding:0; ) html, body, #wrap ( ارتفاع: 100%؛ ) body > #wrap (ارتفاع: خودکار؛ حداقل ارتفاع: 100%؛) #main ( padding-bottom: 150px; ) /* باید همان ارتفاع پاورقی باشد */ #footer ( موقعیت: نسبی؛ حاشیه بالا: -150 پیکسل؛ /* مقدار منفی ارتفاع پاورقی */ ارتفاع: 150 پیکسل؛ واضح: هر دو؛) /* CLEAR FIX* / .clearfix:after (محتوا: "."؛ نمایش: بلوک؛ ارتفاع: 0؛ روشن: هر دو؛ مشاهده: پنهان؛) .clearfix (نمایش: inline-block;) /* از IE-mac پنهان می شود \*/ * html .clearfix (ارتفاع: 1%).
    HTML:

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

    بیایید با تئوری شروع کنیم

    پیاده سازی معمول یک پاورقی میخکوبی متکی به ویژگی منحصر به فرد CSS2 است که عناصر فرزندان مستقیم آن هستند. بدن- حفظ درصد ارتفاع ( ارتفاع: 100%یا دیگری) نسبت به پنجره، اگر همه والدینشان درصد قد یکسانی داشته باشند، با شروع از برچسب HTML. قبلاً، بدون doctypes، اما اکنون در حالت Quirks، درصد ارتفاع عناصر در هر سطحی پشتیبانی می‌شود و در doctypes مدرن - فقط در عناصر درصد تعریف شده. بنابراین، اگر یک بلوک محتوا ایجاد کنیم (بیایید آن را صدا کنیم #چیدمان) با داشتن 100% ارتفاع، طوری حرکت می کند که انگار یک پنجره است. تمام مطالب (استریمینگ) در آن قرار می گیرد، به جز پاورقی و شاید هدر.

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

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

    زیرا پایین بلوک #چیدمان- این یک جیب است، برای فوتر باید خالی باشد، اشیاء صفحه نمایش داده نشود. و در اینجا با محدودیت دیگری روبرو می شویم - ما نمی توانیم یک جیب خالی در هزینه ایجاد کنیم لایه گذاری V #چیدمان، زیرا در این صورت بیش از 100٪ می شود. این شما را نیز نجات نخواهد داد لبه- خالی بودن باید با استفاده از ویژگی های عناصر تو در تو ایجاد شود. به علاوه، لازم است اطمینان حاصل شود که عناصر شناور زیر مرز بلوک نمی خزند، که برای مثال توسط بلوک انجام می شود.

    ، جایی که .clear (روشن: هر دو). مهم است که یا این " ارتفاع" ثابت شد، یا در واحدهای نسبی یکسان، یا آن را در طول تغییرات صفحه محاسبه می‌کردیم. معمولاً ترکیب این بلوک تراز با تنظیم آن در ارتفاع مورد نیاز راحت است.

    بیایید به ساختار صفحات موضوع آزمون خود نگاه کنیم. ساده ترین راه برای انجام این کار، باز کردن پنجره Firebug یا پنجره مشابه (ابزارهای توسعه دهنده (Ctrl-F12)) در کروم است.

    ... بلوک تبلیغاتی برتر ...

    بیایید به یک مثال کاری برویم

    کدام را می بینیم؟ نقص های چیدماناز نظر اجرای افکت پاورقی میخکوب شده؟ ما آن را می بینیم
    1) فوتر سایت داخل بلوکی با id=layout قرار دارد که درصد ارتفاع ندارد. طبق تئوری، او، والدین و محتوای block.content-left باید ارتفاع را روی 100% تنظیم کنند. مشکلات با دومی ایجاد می شود - برای این مناسب نیست. در نتیجه، یک بلوک بین لایه ای وجود ندارد یا پاورقی در سطح مناسبی قرار ندارد. بعلاوه،
    2) ارتفاع پاورقی متغیر است (بسته به تعداد عناصر موجود در لیست و اندازه فونت، این را می توان نه از HTML، بلکه از CSS مشاهده کرد). و
    3) در بالا #چیدمانیک بلوک تبلیغاتی با ارتفاع ثابت 90 پیکسل وجود دارد.
    4) هیچ بلوک تراز یا در فوتر یا (به طور کلی) در بلوک وجود ندارد #چیدمان(بله، اما بالای بلوک rotated_posts; با این حال، شاید باید به عنوان پاورقی طبقه بندی شود).

    نکته 4 - باید آن را با یک اسکریپت بکشید.
    به نظر می رسد با اضافه کردن #layout (margin-top:-90px;) با سومین نکته کنار بیایید، اما به یاد داشته باشید که این بلوک ممکن است وجود نداشته باشد - با برش بنر سرکوب می شود، یا تبلیغ کنندگان ناگهان تصمیم می گیرند آن را نشان ندهند. تعدادی صفحه در سایت وجود دارد که در آنها وجود ندارد. بنابراین وابستگی حاشیه بالااز یک بلوک تبلیغاتی ایده بدی است. خیلی بهتره داخلش قرار بدید #چیدمان- پس او در هیچ چیز دخالت نخواهد کرد.

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

    از آنجایی که نمی‌توانیم قوی‌تر از آخرین طراح صفحه‌آرایی وب‌سایت باشیم که پاورقی را در داخل محتوا «سیلی زده»، ایده قرار دادن درست پاورقی را در وب‌سایت آینده خود کنار می‌گذاریم (که در نتیجه «سردتر» خواهد بود. از Habr!)، و ما Habr را با جاوا اسکریپت (userscript) تا یک شرط صحیح تشریح می کنیم. (بیایید بلافاصله بگوییم که مقصر طراح چیدمان یا سوئیچر نیست، بلکه نوع سایت است که البته تصمیم استراتژیک مدیریت پروژه را تعیین می کند.) به این ترتیب به ایده آل نخواهیم رسید، زیرا در یکی دو ثانیه اول در طول فرآیند بارگذاری صفحه صفحه بندی نادرستی خواهد داشت. اما آنچه برای ما مهم است مفهوم و فرصت پیشی گرفتن از نظر کیفیت از محبوب ترین وب سایت در دنیای فناوری اطلاعات است.

    بنابراین، در جای مناسب در اسکریپت (اوایل، در پایان بارگذاری صفحه)، انتقال بلوک های تبلیغاتی DOM و فوتر را به مکان های مناسب می نویسیم. (بیایید برای این واقعیت آماده باشیم که به دلیل اسکریپت های کاربر، راه حل پیچیده تر از یک راه حل خالص خواهد بود.)
    var dQ = function(q)(return document.querySelector(q);) //برای کوتاه کردن var topL = dQ("#topline"), lay = dQ("#layout"), foot = dQ("#footer" ) if(topL && lay) //banner - داخل بلوک محتوا lay.insertBefore(topL, lay.firstChild); if(lay && foot && lay.nextSibling) //Moving the footer lay.parentNode.insertBefore(footer, lay.nextSibling);
    ما بلوک ها را در جای خود قرار داده ایم - اکنون تنها چیزی که باقی می ماند اختصاص دادن ویژگی های لازم به عناصر است. ارتفاع پاورقی باید دقیقاً تنظیم شود، فقط به این دلیل که ما در زمان فعال شدن اسکریپت کاربر (پایان بارگذاری صفحه) آن را می‌دانیم. با توجه به نقطه ماشه کاربر اسکریپت، همانطور که در بالا ذکر شد، جهش در نمایش فوتر در صفحه اجتناب ناپذیر است. آیا می توانید سعی کنید "چهره خوب" را به نمایش بگذارید، اما با یک "بازی بد"؟ برای چی؟ "بازی بد" سایت به شما امکان می دهد بدون تلاش اضافی یک مفهوم ایجاد کنید که برای ارزیابی کیفیت کافی است و برای "بازی صحیح" در پروژه شما مورد نیاز نخواهد بود.
    if(foot)( //block-aligner

    در فوتر h.apnd_el((clss:"clear", appendTo: footer)); var footH = foot.offsetHeight; //...و اندازه گیری ارتفاع پاورقی ) if(topL && lay && footer && lay.nextSibling)( //بلوک همترازی ارتفاع مورد نیاز در محتوا ("layout") h.apnd_el((clss:" clear", css:( height: (footH ||0) +"px"), appendTo: lay)); lay.style.minHeight = "100%"; h.addRules ("#layout(margin-bottom:- "+ footH +"px !important)html، بدن (ارتفاع:100%)")؛ )
    در اینجا به خودمان اجازه دادیم که از یک تابع خودنویس استفاده کنیم h.apnd_el، که تقریباً همان کار را در jQuery انجام می دهد -
    $("
    ").css((ارتفاع: footH ||0)).appendTo($(footer))
    و سپس - یکی دیگر از عملکردهای معمولی اجرای قوانین CSS - h.addRules. اینجا نمی توانید بدون آن کار کنید، زیرا باید یک قانون را با " اعلام کنید !مهم"- دقیقاً به دلیل ویژگی های اولویت های سبک ها از اسکریپت کاربر.

    با این تکه‌های کد، می‌توانیم پاورقی میخ‌شده را در اسکریپت کاربر ببینیم (پس از پرش به پایین) و به طور کامل نحوه ساخت طرح‌بندی صفحه را درک کنیم. استفاده از طرح پرش به صورت روزانه ناخوشایند است، بنابراین توصیه می شود این کار را صرفاً برای نمایش و آزمایش انجام دهید. در اسکریپت کاربر HabrAjax، من یک اسکریپت مشابه را نصب کردم و آن را با تنظیمات "underFooter" می بستم (کادر موجود در لیست تنظیمات را قبل از "footer nailed to the bottom" علامت بزنید)، که با نسخه 0.883_2012-09-12 شروع می شود.

    آیا میخ زدن پاورقی بر نیاز به به‌روزرسانی سبک‌های ZenComment در صورت نصب تأثیر می‌گذارد؟ بله، این کار را می کند.با توجه به زنجیره پیچیده اولویت‌های سبک، که در آن سبک‌های درج شده توسط اسکریپت کاربر کمترین اولویت را دارند، مجبور شدیم سبک‌های کاربری را کمی تنظیم کنیم. ممکن هاکار با فوتر میخ دار اگر سبک های کاربری خود را (به 2.66_2012-09-12 +) به روز نکنید، فوتر به درستی کار نخواهد کرد.

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

    نکته دوم (از لیست کاستی‌های طرح‌بندی) صرفاً برای Habr است (در مورد اسکریپت کاربر صدق نمی‌کند و تا حدی موارد قبلی را تکرار می‌کند).

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

    نتیجه گیری: امکان طراحی کامل یک چیدمان بر روی Habré وجود دارد، اما برای این کار به یک طراح چیدمان نیاز دارید که به وضوح رفتار چیدمان را درک کند و بلوک ها را به ترتیب صحیح قرار دهد. (در حال حاضر پاورقی و بنر بالای صفحه "در جای اشتباه" قرار دارند و به گونه ای نیستند که بتوانید فقط به پاورقی شکل دهید.) اگر ارتفاع فوتر را در واحدهای نسبی تنظیم کنید، می توانید بدون JS این کار را انجام دهید. فضایی برای عدم قطعیت فونت

    پیاده سازی

    اگر HabrAjax 0.883+ را فعال کنید، ما شاهد کارکرد "پانویس میخکوب" خواهیم بود. با استفاده از اسکریپت ها ارتفاع را تطبیق می دهد. این به شما امکان می دهد تا ارزیابی کنید که صفحات با فوتر میخ شده در مقایسه با صفحات معمولی چقدر بهتر است. سبک‌های کاربر ZenComment با اسکریپت‌ها سازگار هستند، اما برای اینکه فوتر میخ‌شده به درستی با آنها کار کند، باید ZenComment نسخه 2.66_2012-09-12 + را نصب کنید.

    حقایقی در مورد رفتار پیاده سازی

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

    1) فایرفاکس - عدم پرش غیرمنتظره پاورقی. عجیب است که آنها آنجا نیستند - رندر پس از قرار دادن پاورقی در پایین رخ می دهد.

    2) کروم - با "پیمایش سرگردان" من را شگفت زده کرد - فضاهای خالی در پایین با دوره زمانی یک بار در ثانیه به صفحه اضافه می شود - اشتباهی در محاسبه ارتفاع اتفاق می افتد. راه حل این است که html،body(height:100%) را به سبک کاربر بنویسید، اما هیچ تضمینی وجود ندارد که همیشه کار کند. قابل اعتمادتر است که بررسی کنید آیا سند از ارتفاع پنجره تجاوز نمی کند یا خیر، و اگر اینطور نیست، فوتر را حرکت دهید، در غیر این صورت - هیچ چیز. پریدن اشکالی ندارد، وجود دارد.

    3) Opera - بدون پرش (نسخه 12.02) هنگامی که صفحه برای اولین بار بارگیری می شود، اما بارگذاری مجدد عجولانه ممکن است یک پرش پاورقی را نشان دهد. در غیر این صورت رفتار آن کمتر از Fx نیست.

    خوب، شما باید به طور خاص به Chrome آموزش دهید که به درستی (با یک اسکریپت) رفتار کند و نسخه را در این فرم برای نمایش منتشر کنید. بنابراین، بخش در اسکریپت کاربر کمی پیچیده تر از قسمت ارائه شده در مقاله است.

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

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

    این برای چه صفحاتی مفید است؟

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

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

    آیا حمایت خواهد شد؟

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

    در مرحله بعد، بیایید به جای مربع برای امتیاز دهی به "فلش ها" نگاه کنیم. آنها 3 سال پیش در نام های کاربری almalexa ("Prettifier") ظاهر شدند و 2 سال پیش در ZenComment پذیرفته شدند. حدود 2-3 ماه پیش در سایت ظاهر شدند. یکی شروع می کند به این باور که بعد از مدتی فلش ها با فاصله ای از یکدیگر فاصله می گیرند، همانطور که در ZenComment انجام می شود (یک فلش به سمت چپ عدد، دومی به سمت راست) به منظور از دست دادن کمتر. افزودن برچسب

    ولاد مرژویچ

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

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

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

    زیرزمین ثابت

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

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

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

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

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

    مثال 2: کد با در نظر گرفتن IE6

    XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

    زیرزمین ثابت

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

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

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

    پاورقی را به پایین صفحه فشار دهید. الزامات:

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

    تئوری

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

    راه حل

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

    مرحله 1

    ما 2 بلوک می سازیم: اصلی (اصلی) و زیرزمین (پایین). محفظه اصلی را به تمام ارتفاع صفحه مرورگر کش می دهیم () و ارتفاع پاورقی () را به طور محکم مشخص می کنیم.

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

    گام 2

    یادداشت: هنگام استفاده از طرح بندی بلوک و بلوک های اصلی شناور (ستون ها) برای hFooter، باید : هر دو را اضافه کنید تا پاورقی زیر ستون ها قرار گیرد.:

    HFooter ( واضح: هر دو؛ ارتفاع: 40 پیکسل؛ )

    تست شده در:

    یادداشت 1:اگر قبلاً کمی به CSS تسلط داشته باشید، ممکن است این سوال پیش بیاید: "چرا اگر می توانید از یک عنصر اضافی استفاده کنید؟". پاسخ این است که شما نمی توانید فقط از آن در اینجا استفاده کنید، زیرا ... اندازه یک بلوک برابر است با عرض و ارتفاع آن + مجموع لایه گذاری+ مجموع ضخامت های حاشیه. لینک: 100% و ارتفاع سایت را بیشتر از ارتفاع صفحه نمایش می دهد. در نتیجه، حتی اگر اصلاً محتوا وجود نداشته باشد، پاورقی خارج از "صفحه اول" خواهد بود. برای چگونگی دور زدن این موضوع به زیر مراجعه کنید.

    تبصره 2.که در نسخه های اپرا 9.5 و بالاتر، هنگام اضافه کردن doctype، این مثال کار نخواهد کرد. گزینه های راه حل:

    • حداقل یک بلوک شناور به تگ کانتینر اصلی اضافه کنید:

      این بلوک اصلی است

    • دو ویژگی برای html، body اضافه کنید:

      Html، بدنه (ارتفاع: 100%؛ شناور: سمت چپ؛ عرض: 100%؛ )

    • استایل ها را در یک فایل CSS جداگانه قرار دهید:

    به روز رسانی 8.12.09 - معایب این تکنیک

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

    به روز رسانی 12/28/09 - مشکلات با لایه های z

    در تکنیکی که در بالا توضیح داده شد، پاورقی با یک فرورفتگی منفی به سمت بالا بالا آمده است. این یک مشکل بالقوه با لایه های z ایجاد می کند. به عنوان مثال، ما باید یک پنجره بازشو نشان دهیم (بگذارید div class="popup") باشد که نسبت به ظرف اصلی قرار می گیرد.

    [...]

    اصلی ( موقعیت: نسبی؛ /* به عناصر کودکموقعیت نسبت به این بلوک */ z-index: 1; /* z-index کمتر از پاورقی برای قابل مشاهده کردن آن */ .popup ( موقعیت: مطلق؛ z-index: 100; [...] ) .footer (ارتفاع: 50 پیکسل؛ حاشیه بالا: -50 پیکسل؛ موقعیت: نسبی؛ /* به طوری که می توانید z-index */ z-index: 2؛ /* بزرگتر از اصلی را تنظیم کنید تا قابل مشاهده باشد */ )

    همه چیز خوب است تا زمانی که پنجره پاپ آپ و زیرزمین تقاطع پیدا کنند (و این وضعیت اغلب اتفاق می افتد) - اینجاست که مشکلات شروع می شود. علیرغم این واقعیت که پنجره پاپ آپ دارای بالاترین z-index است، با فوتر همپوشانی خواهد داشت، زیرا پنجره والد دارای z-index کمتر از پاورقی است:

    گزینه 1 - به دنبال فرصتی باشید تا پنجره را نه نسبت به اصلی، بلکه نسبت به عنصر فرزند دیگری که در اصلی قرار دارد، قرار دهید. بنابراین، از تعیین z-index برای main و footer خلاص خواهیم شد. اما این گزینه همیشه امکان پذیر نیست، بنابراین بیایید گزینه دوم فشار دادن فوتر را در نظر بگیریم.

    راه حل 2 - موقعیت یابی مطلق

    ایده مشابه راه حل 1 است:

    1. بلوک اصلی را تا تمام ارتفاع صفحه بکشید
    2. فضای ذخیره شده برای زیرزمین
    3. نسبت به بلوک اصلی، زیرزمین را در پایین قرار دهید موقعیت یابی مطلق

    [...]

    Html، بدنه ( ارتفاع: 100%؛ ) .main (min-ارتفاع: 100%؛ موقعیت: نسبی؛ /* به طوری که عناصر فرزند نسبت به این بلوک قرار گیرند */) .footer (ارتفاع: 50 پیکسل؛ موقعیت: مطلق; چپ: 0 ؛ پایین: 0؛ عرض: 100%؛ ) * html .footer ( bottomy:expression(parentNode.offsetHeight % 2 ? style.bottom="-1px" : style.bottom="0px"); /* هک برای e6، که دارای یک جاب با افست 1px */) است.

    این روش مشکل پنجره های پاپ آپ را حل می کند، زیرا ... هم فوتر و هم پاپ آپ یک والد مشترک خواهند داشت، به این معنی که هیچ شگفتی با لایه های z وجود نخواهد داشت.

    بهترین مقالات در این زمینه