发新话题
打印

网页布局实例分享:一道搜狐的WEB前端工程师面试题

网页布局实例分享:一道搜狐的WEB前端工程师面试题

本人是一名WEB前端的培训讲师,长期从事理论方面的研究和授课,以下是一个知名网络公司WEB前端工程师的一道面试题:
完成以下布局:
1.        三列布局, 自适应整个屏幕;
2.        其中左右固定宽度,中列自适应其余宽度;
3.        无论三列内容多少,三列高度等高;
如下图所示,请写出代码。

下面我跟大家一起来完成这道面试题:
1.        根据结构、表现和行为的顺序,我们先来完成结构部分——HTML代码,如下:
<body>
<div class="wrap">
  <div class="left">
          <h3>左侧边栏</h3>
    <ul>
            <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
      <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
      <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
    </ul>
  </div>
  <div class="right">
          <h3>右侧边栏</h3>
    <ul>
            <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
    </ul>
  </div>
  <div class="center">
          <h3>中间边栏</h3>
          <ul>
            <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
<li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
<li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
<li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
<li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
     <li><a href="http://www.5myworld.com/">www.5myworld.com</a></li>
    </ul>
   <span style="float:right; position:relative;"> </span> <!--for ie6-->
        </div>
</div>
</body>
2.        然后再完成表现部分——CSS样式代码:
<style type="text/css">
*{margin:0;padding:0;}
body{font-family:"微软雅黑";font-size:13px;padding:0 10px;}
a{color:#333; text-decoration:none;}
.wrap{overflow:hidden;}
.wrap ul{list-style:none;padding:0 0 0 25px;}
.left{width:240px;background:#F1f1f1;float:left; }
.left h3,.right h3,.center h3{line-height:35px;font-size:13px;padding-left:10px;}
.right{width:240px;background:#F1f1f1;float:right;}
.center{background:#e8e8e8;margin:0 10px;_float:left;/*ie6 hack*/overflow:hidden;}
.row{margin-bottom:-10000px;padding-bottom:10000px;}
</style>
完成以下步骤两部之后的效果如下:

3.        现在我们只要完成最后一个问题,就是三栏登高,其解决方法主要是采用“隐藏容器溢出”、“正内补丁”和“负外补丁”结合的方法实现的。
在样式表中添加此代码:.row{margin-bottom:-10000px;padding-bottom:10000px;},而后,将此选择器分别添加到left、right、center中,而后便完成了本题。

WEB前端技术交流群:51985527
资料来源参看:http://elearning.5myworld.com/lesson/2010/1021/lesson_33.html
附件: 您所在的用户组无法下载或查看附件
没人看么?
发新话题