I am trying to make my sticky navigation bar span the width of the page across all devices. It works on computer screens, but once the window shrinks enough it screws up majorly. The logo above it however, scales perfectly no matter the width of the viewing screen. I tried using the attributes from it, though it does not seem to change the output on the navigation bar.
I've also attempted using @media to force the width to 70% of the entire window. Instead, it affected the computer window only. I was using max-width and set it to 1200 pixels. It doesn't seem to do anything actually. I even tried adding overflow:hidden to prevent possible resizing if anything did escape the bounds.
The problem lies in the fact that once the window is small enough, it alters the text in the nav-bar to the point where it adds an extra line. Then soon after the centering stops working and it forces itself off screen.
Here's a JSFiddle to mess with: https://jsfiddle.net/Shadowfang/Lc5Ljaf4/
Update: L L has left me with some code that I used to alter my JSFiddle. It has solved the problem with the navigation bar disappearing off screen. It also resizes perfectly until you can't shrink the window any farther. However I still have some editing to do to fix the over-all appearance, and return the menu back to horizontal. Here is the new one: https://jsfiddle.net/Shadowfang/Lc5Ljaf4/13/
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<title>The Den</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" />
<link rel="stylesheet" media="screen, projection" href="style.css">
<script type ="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type ="text/javascript" src="script.js"></script>
</head>
<body>
<!-- It would be nice to know if tables are what's throwing off my entire website or not... but whatever. -->
<div class="status"></div>
<div class="logo"><!--I'll change the word "container" to Logo perhaps in the future here if I can get this example to work for once. Also let it be noted that I am in fact not using the "header" tag at any portion during this... which is bothersome. -->
<center><a href="http://www.wolvesofthedust.com/"><img src="http://i1288.photobucket.com/albums/b494/ShadowfangInnovia/WolvesoftheDustSiteHeader_zpsdddba823.png" height="auto" width="100%" border="0" alt=" photo WolvesoftheDustSiteHeader_zpsdddba823.png"/></a></center>
</div>
<div class ="navigation">
<!-- The navigation portion... dear God... here is where it all usually goes wrong. -->
<nav>
<ul class="clearfix"> <!-- Clearfix?! Really?! I'm ASSUREDLY changing that one. -->
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
<li><a href="#">Link 6</a></li>
<li><a href="#">Link 7</a></li>
<li><a href="#">Link 8</a></li>
<li><a href="#">Link 9</a></li>
</ul>
</nav><!-- End the hiddeously named section... and hopefully begin progress towards a complete page... -->
</div>
<div class ="logo2">
</div>
<div class ="content">
<br/><br/>
<center><h2>THIS WEBSITE IS UNDER CONSTRUCTION!!! TAKE NOTHING HERE YOU SEE SERIOUSLY FOR THE TIME BEING!!!</h2></center> <!-- This is where I will likely have the table located with nicely written dialogue... but if the table isn't needed above then I may as well continue this practice elsewhere. Did I learn all about tables and arranging code properly for nothing? -->
<br/>
<br/>
<p><!-- Interestingly enough it took me a while to realize that P stood for paragraph... considering people normally only wrote a single sentance per line with a "p" tag. Stupid examples and my insinuations based on them -->The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
<p>The lazy dog jumped over the quick brown fox. Yes I just did that. Deal with it. This is my website after all.</p>
</div>
CSS:
html {
padding: 0;
margin: 0;
background-color: #000;
}
body {
font-family: Helvetica, sans-serif;
font-size: 93%;
line-height: 1.5em;
padding: 40px 0;
margin: 0;
color: #7d0000;
}
a,
a:link,
a:visited {
color: blue;
}
h1, h2, h3, h4, h5, h6 {margin-top: 0;}
p {margin: 0 0 1em 0;}
.logo {
max-width: 940px;
margin: 0 auto;
padding: 0 20px;
}
.navigation {
max-width: 100%;
margin: 0 auto;
padding: 0 20px;
}
.logo2 {
max-width: 100%;
margin: 0 auto;
padding: 0 20px;
}
.content {
max-width: 100%;
margin: 0 auto;
padding: 0 20px;
}
h1 {
background-color: #305782;
color: #FFF;
padding: 60px 25px;
margin: 0;
}
nav {
z-index: 500;
background-color: #000;
}
.nav-placeholder {
margin: 0 0 40px 0;
}
.fixed {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: #000;
}
.fixed .nav-inner {
padding: 0 20px;
}
.fixed .nav-inner-most {
max-width: 100%;
margin: 0 auto;
background-color: #000;
}
nav ul {
display: table;
width: 100%;
list-style: none;
padding: 0;
margin: 0;
}
nav ul li {
display: table-cell;
text-align: center;
}
nav ul li a:link,
nav ul li a:visited {
display: block;
text-decoration: none;
padding: 10px 25px;
background-color: #000;
border: 2px solid #7d0000;
color: #7d0000;
font-size: 90%;
font-weight: bold;
}
nav ul li a:hover {
background-color: #28bfa1;
color: #FFF
}
@media (min-width: 1200px) {
.container{
max-width: 70%;
}
}
/* This seems to have an undesired effect, but may be necessary for later.
The border-right: none; attribute is especially annoying...
nav ul li:last-child a:link,
nav ul li:last-child a:visited {
border-right: none;
}
*/
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix { *zoom: 1; }
JS:
jQuery(document).ready(function() {
// define variables
var navOffset, scrollPos = 0;
// add utility wrapper elements for positioning
jQuery("nav").wrap('<div class="nav-placeholder"></div>');
jQuery("nav").wrapInner('<div class="nav-inner"></div>');
jQuery(".nav-inner").wrapInner('<div class="nav-inner-most"></div>');
// function to run on page load and window resize
function stickyUtility() {
// only update navOffset if it is not currently using fixed position
if (!jQuery("nav").hasClass("fixed")) {
navOffset = jQuery("nav").offset().top;
}
// apply matching height to nav wrapper div to avoid awkward content jumps
jQuery(".nav-placeholder").height(jQuery("nav").outerHeight());
} // end stickyUtility function
// run on page load
stickyUtility();
// run on window resize
jQuery(window).resize(function() {
stickyUtility();
});
// run on scroll event
jQuery(window).scroll(function() {
scrollPos = jQuery(window).scrollTop();
if (scrollPos >= navOffset) {
jQuery("nav").addClass("fixed");
} else {
jQuery("nav").removeClass("fixed");
}
});
});
Thank you in advance,
Shadowfang
As you mentioned in the comments of your fiddle, tables indeed are what is throwing off your website, or at least this part of the code:
nav ul li {
display: table-cell;
text-align: center;
}
You should change the display to inline-block for example. Immediately you will have much more responsive behaviour and nothing will fall off the screen. It will need some additional css changes to make it look good, like removing the padding for the a elements inside of the li elements of the menu. As the screen shrinks, the menu items that would go off screen will now jump into a new row. If you want to avoid that, you can set a fixed width in %. Looking at your code makes me think this should be enough to get you going, let me know if this helped.