রায়ান ফাইটের স্টিকি ফুটারটি খুব সুন্দর, তবে আমি এটির বেসিক কাঠামোর অভাব বোধ করছি।
ফ্লেক্সবক্স সংস্করণ
আপনি যদি এতটা ভাগ্যবান যে আপনি পুরানো ব্রাউজারগুলিকে সমর্থন না করে ফ্লেক্সবক্স ব্যবহার করতে পারেন তবে স্টিকি ফুটারগুলি তুচ্ছ সহজ হয়ে যায় এবং গতিশীল আকারের পাদলেখকে সমর্থন করে।
প্লেয়ারগুলি ফ্লেক্সবক্সের সাথে নীচে আটকে থাকার কৌশলটি একই ধারকটিতে উল্লম্বভাবে অন্য উপাদান থাকা to এটি যা লাগে তা হ'ল একটি পূর্ণ উচ্চতার মোড়কের উপাদান display: flex
এবং এর flex
চেয়ে কম মূল্যের সাথে কমপক্ষে একটি সহোদর 0
:
সিএসএস:
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#main-wrapper {
display: flex;
flex-direction: column;
min-height: 100%;
}
article {
flex: 1;
}
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#main-wrapper {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
min-height: 100%;
}
article {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
header {
background-color: #F00;
}
nav {
background-color: #FF0;
}
article {
background-color: #0F0;
}
footer {
background-color: #00F;
}
<div id="main-wrapper">
<header>
here be header
</header>
<nav>
</nav>
<article>
here be content
</article>
<footer>
here be footer
</footer>
</div>
আপনি যদি ফ্লেক্সবক্স ব্যবহার করতে না পারেন, তবে আমার পছন্দের বেস কাঠামোটি হ'ল:
<div class="page">
<div class="page__inner">
<header class="header">
<div class="header__inner">
</div>
</header>
<nav class="nav">
<div class="nav__inner">
</div>
</nav>
<main class="wrapper">
<div class="wrapper__inner">
<div class="content">
<div class="content__inner">
</div>
</div>
<div class="sidebar">
<div class="sidebar__inner">
</div>
</div>
</div>
</main>
<footer class="footer">
<div class="footer__inner">
</div>
</footer>
</div>
</div>
যা এতদূর দূরে নয়:
<div id="main-wrapper">
<header>
</header>
<nav>
</nav>
<article>
</article>
<footer>
</footer>
</div>
পাদলেখকে আটকে রাখার কৌশলটি হ'ল পাদলেখগুলি এতে থাকা উপাদানটির নীচের প্যাডিংয়ে নোঙ্গর করা। এটির জন্য ফুটারের উচ্চতা স্থিতিশীল হওয়া প্রয়োজন তবে আমি দেখতে পেয়েছি যে ফুটারগুলি সাধারণত স্থির উচ্চতার হয়।
এইচটিএমএল:
<div id="main-wrapper">
...
<footer>
</footer>
</div>
সিএসএস:
#main-wrapper {
padding: 0 0 100px;
position: relative;
}
footer {
bottom: 0;
height: 100px;
left: 0;
position: absolute;
width: 100%;
}
#main-wrapper {
padding: 0 0 100px;
position: relative;
}
footer {
bottom: 0;
height: 100px;
left: 0;
position: absolute;
width: 100%;
}
header {
background-color: #F00;
}
nav {
background-color: #FF0;
}
article {
background-color: #0F0;
}
footer {
background-color: #00F;
}
<div id="main-wrapper">
<header>
here be header
</header>
<nav>
</nav>
<article>
here be content
</article>
<footer>
here be footer
</footer>
</div>
ফুটারটিতে নোঙ্গর করা থাকলে #main-wrapper
, এখন #main-wrapper
পৃষ্ঠার শিশুদের দীর্ঘ না হওয়াতে আপনার কমপক্ষে পৃষ্ঠার উচ্চতা হওয়া দরকার । এটি একটি দ্বারা তৈরি করে #main-wrapper
করা min-height
হয় 100%
। আপনাকে এটিও মনে রাখতে হবে যে এর বাবা-মা,html
এবং body
পৃষ্ঠার মতোই লম্বা হওয়া দরকার।
সিএসএস:
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#main-wrapper {
min-height: 100%;
padding: 0 0 100px;
position: relative;
}
footer {
bottom: 0;
height: 100px;
left: 0;
position: absolute;
width: 100%;
}
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#main-wrapper {
min-height: 100%;
padding: 0 0 100px;
position: relative;
}
footer {
bottom: 0;
height: 100px;
left: 0;
position: absolute;
width: 100%;
}
header {
background-color: #F00;
}
nav {
background-color: #FF0;
}
article {
background-color: #0F0;
}
footer {
background-color: #00F;
}
<div id="main-wrapper">
<header>
here be header
</header>
<nav>
</nav>
<article>
here be content
</article>
<footer>
here be footer
</footer>
</div>
অবশ্যই, আপনারা আমার রায় নিয়ে প্রশ্ন করা উচিত, কারণ এই কোডটি কোনও সামগ্রী না থাকা সত্ত্বেও পাদলেখ পৃষ্ঠার নীচে থেকে পড়তে বাধ্য করছে। গত কৌতুক দ্বারা ব্যবহৃত বক্স মডেল পরিবর্তন হয় #main-wrapper
, যাতে min-height
এর100%
অন্তর্ভুক্ত 100px
প্যাডিং।
সিএসএস:
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#main-wrapper {
box-sizing: border-box;
min-height: 100%;
padding: 0 0 100px;
position: relative;
}
footer {
bottom: 0;
height: 100px;
left: 0;
position: absolute;
width: 100%;
}
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#main-wrapper {
box-sizing: border-box;
min-height: 100%;
padding: 0 0 100px;
position: relative;
}
footer {
bottom: 0;
height: 100px;
left: 0;
position: absolute;
width: 100%;
}
header {
background-color: #F00;
}
nav {
background-color: #FF0;
}
article {
background-color: #0F0;
}
footer {
background-color: #00F;
}
<div id="main-wrapper">
<header>
here be header
</header>
<nav>
</nav>
<article>
here be content
</article>
<footer>
here be footer
</footer>
</div>
এবং সেখানে এটি আপনার মূল HTML কাঠামোর সাথে একটি স্টিকি ফুটার রয়েছে। কেবলমাত্র footer
'এর height
সমান #main-wrapper
' padding-bottom
এবং আপনার সেট করা উচিত তা নিশ্চিত করুন।
* আমি ফেইটের কাঠামোর সাথে দোষ খুঁজে পাওয়ার কারণটি হ'ল এটি একটি অপ্রয়োজনীয় উপাদান যুক্ত করার সময় বিভিন্ন শ্রেণিবদ্ধ স্তরের উপর .footer
এবং .header
উপাদানগুলি সেট করে .push
।