The primary reason your layout is not responsive is because you've set explicit height rules in your CSS. Take section#about
, for example—if you remove the explicit height: 980px;
you set in your stylesheet, the Pixel Perfect paragraph will no longer overlap with the Looking for the perfect template to use? title.
Second, you are improperly using the Bootstrap grid. I noticed that you have a .container
class for almost every section. Ideally, you should remove those and only have one .container
class which encapsulates the entire page (unless you want to use different container sizes on one page).
Here is an example:
<body>
<div class="container">
<section id="intro" class="row">
<div class="col-md-4">
</div><!-- end .col-md-4 -->
<div class="col-md-4">
</div><!-- end .col-md-4 -->
<div class="col-md-4">
</div><!-- end .col-md-4 -->
</section><!-- end #intro section -->
<section id="about" class="row">
<div class="col-md-6">
</div><!-- end .col-md-6 -->
<div class="col-md-6">
</div><!-- end .col-md-6 -->
</section><!-- end #about section -->
</div><!-- end .container -->
</body>
Note: There is an exception with the Navbar/Footer, in which case you can put separate containers inside those elements as you already
did with the Navbar.
Third, use more .row
classes as "blocks" for each vertical section on your page. You did this within your sections, but it might be a good idea to make the sections themselves individual rows as well by giving them the .row
class—after you've removed the containers from each section.
Next, you don't need to define rules for every screen size as kosmastsk suggested. If you like the way it looks with just defining breakpoints for col-sm
then that is up to you. It will look better, though, if you develop mobile first and work your way up to larger screen sizes.
Also consider using more CSS Media Queries to help you better customize your site if you must override heights, widths, etc.