Introduction

This article explains how to use a sticky footer and how to use the sticky footer in an ASP.NET Master Page.
Step 1

Open your Visual Studio then select Add New Project then select Add Master Page >> Add ASPX Page.
Step 2

Now open your Master Page and add this script within the head tag.
  1. <head>
  2. <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
  3. <script type="text/javascript">
  4. $(window).bind("load", function () {
  5. var footer = $("#footer");
  6. var pos = footer.position();
  7. var height = $(window).height();
  8. height = height - pos.top;
  9. height = height - footer.height();
  10. if (height > 0) {
  11. footer.css({
  12. 'margin-top': height + 'px'
  13. });
  14. }
  15. });
  16. </script>
  17. </head>
Step 3

Then write the following div within your form:
  1. <form id="form1" runat="server">
  2. <div>
  3. <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
  4. </asp:ContentPlaceHolder>
  5. <div id="footer">
  6. Your Footer Content
  7. </div>
  8. </div>
  9. </form>
Step 4

Open your aspx page (for example default.aspx). Call your master page in your aspx page.
  1. <%@ Page Title="" Language="C#" MasterPageFile="Master.Master" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="StickyFooter.default" %>
Step 5

Remove all HTML elements from your default.aspx page. And add your content placeholder on your default.aspx page.
  1. <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
  2. Main Content (Header Content)
  3. </asp:Content>
Now you can view your footer text at the bottom.

Output

The mail content Header

your footer content

Full example
Master Page (C#)
  1. <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Master.master.cs" Inherits=StickyFooter.Master" %>
  2. !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <title></title>
  6. <asp:ContentPlaceHolder ID="head" runat="server">
  7. </asp:ContentPlaceHolder>
  8. <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
  9. <script type="text/javascript">
  10. $(window).bind("load", function () {
  11. var footer = $("#footer");
  12. var pos = footer.position();
  13. var height = $(window).height();
  14. height = height - pos.top;
  15. height = height - footer.height();
  16. if (height > 0) {
  17. footer.css({
  18. 'margin-top': height + 'px'
  19. });
  20. }
  21. });
  22. </script>
  23. </head>
  24. <body>
  25. <form id="form1" runat="server">
  26. <div>
  27. <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
  28. </asp:ContentPlaceHolder>
  29. <div id="footer"> Your footer content </div>
  30. </div>
  31. </form>
  32. </body>
  33. </html>
Default.aspx (C#)
  1. <%@ Page Title="" Language="C#" MasterPageFile="Master.Master" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="StickyFooter.default" %>
  2. <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
  3. </asp:Content>
  4. <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
  5. The main content (Header)
  6. </asp:Content>