A good[ish] website
Web development blog, loads of UI and JavaScript topics
More fluid layout examples ahead. First I was like hmm... sure need js to that. But of course not!
I was working on a layout with a lot of narrow columns and a sidebar. First I did it like this.
Problems in that approach:
What we want:
See in the fiddle what I mean →
Here's what we're doing, check the comments in the code.
The HTML:
<!-- Wrapper in normal fashion -->
<div class="wrap">
  <!-- Normal header -->
  <header>
    <h1>Fixed width sidebar in a fluid layout</h1>
  </header>
  <!-- Apply the margin to this not the wrap -->
  <section>
    <!-- Give the columns a wrapper -->
    <div class="article-wrap">
      <article>
        <!-- Inner element to the columns -->
        <div class="inner-article">Some content here</div>
      </article>
      <article>
        <div class="inner-article">Some content here</div>
      </article>
      <article class="last">
        <div class="inner-article">Some content here</div>
      </article>
    </div>
    <aside>
      <!-- Inner element here also -->
      <div class="inner-sidebar">
        <h2>Sidebar</h2>
        <ul>
          <li>Some sort of a menu</li>
          <li>List item 2</li>
          <li>List item number three</li>
        </ul>
      </div>
    </aside>
  </section>
</div>
And the CSS:
.wrap {
  width: 100%;
}
/* Margin in the inner wrapper */
section {
  font: normal 13px/1.4 sans-serif;
  margin: 20px;
}
/* Right margin width of the sidebar */
.article-wrap {
  margin: 0 193px 0 0;
}
/* Float the columns and give width depending on how many you have them */
article {
  float: left;
  width: 33%;
}
/* Apply margins and paddings to the inner element */
.inner-article {
  background: LightGoldenRodYellow;
  margin: 0 20px 0 0;
  padding: 10px;
}
/* Position the sidebar absolutely */
aside {
  background: Aquamarine;
  height: 350px;
  position: absolute;
  top: 74px;
  right: 20px;
  width: 200px;
}
/* Again paddings and margins in the inner element */
.inner-sidebar {
  padding: 15px;
}
/*Just to make is pretty*/
header {
  margin: 20px;
  width: 100%;
}
h1 {
  font: bold 25px/1.4 sans-serif;
}
h2 {
  font: bold 18px/1.4 sans-serif;
}
p {
  margin: 10px;
}
ul {
  list-style: disc;
  margin: 0 0 0 17px;
}The key here is to wrap elements. Check the full code in the fiddle.
Comments would go here, but the commenting system isn’t ready yet, sorry.