Edit in JSFiddle


              
            
          
            
              
                
<div class="clearfix elem">
    <span class="label begin"> &lt;div class="clearfix"&gt; </span>
    <nav class="elem elem-red">
        <span class="label begin"> &lt;nav&gt;</span>
        <ul>
            <li>nav-item1</li>
            <li>nav-item2</li>
            <li>nav-item3</li>
            <li>nav-item4</li>
            <li>nav-item5</li>
            <li>nav-item6</li>       
        </ul>
         <span class="label end"> &lt;/nav&gt; </span>
    </nav>
   <section class="elem elem-orange">
         <span class="label begin"> &lt;section&gt;</span>
        <p>当布局很窄时, nav 就会被挤扁。更糟糕的是,你不能在 nav 上使用 min-width 来修复这个问题,因为右边的那列是不会遵守它的。</p>
         <span class="label end"> &lt;/section&gt; </span>
    </section>
    <section class="elem elem-orange">
         <span class="label begin"> &lt;section&gt;</span>
        <p>一些内容</p>
         <span class="label end"> &lt;/section&gt; </span>
    </section>
</div>
* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
.elem{
    border:solid #6AC5AC 3px;
    position:relative;
}
.elem-red {
    border: solid #D64078 3px;
}
.elem-orange {
    border: solid #FDC72F 3px;
}
.elem-green {
    border: solid #96C02E 3px;
}
.label{
    position:absolute;
    background-color:#6AC5AC;
    line-height:1em;
    padding:3px;
}
.elem-red > .label{
    background-color:#D64078;
}
.elem-orange > .label{
    background-color:#FDC72F;
}
.begin{
    left:0;
    top:0;
}
.end{
    right:0;
    bottom:0;
}
p{
    margin:2em 0;
    display:block;
}

nav {
  float: left;
  width: 25%;
}
section {
  margin-left: 25%;
}
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}