CSS圖文混排的幾種方案_CSS/HTML

來源:互聯網
上載者:User
百度新聞首頁的方案:
複製代碼 代碼如下:

<table>
 <tbody>
 <tr>
 <td class="topic-pic"><a href=""><img src=""></a></td>
 <td class="topic-txt">…</td>
 </tr>
 </tbody>
</table>

html結構醜陋,但css簡單。
新浪微博首頁的方案:
複製代碼 代碼如下:

<div class="twit_item MIB_linedot2">
<div class="twit_item_pic">
<a href="" target="_blank">
<img src="" ...>
</a>
</div>
<div class="twit_item_content">
....
</div>
</div>

CSS:
複製代碼 代碼如下:

.twit_list dd .twit_item_pic{float:left;width:66px;padding-top:2px;} .twit_list dd .twit_item_content{float:left;width:316px;color:#666;line-height:18px;}

大部分應試者都是這個答案。用了浮動就必須定寬,結構就失去靈活性,同時必須解決浮動帶來的一系列問題。
網易首頁方案:
複製代碼 代碼如下:

<ul>
 <li class="list-figure"><a href=""><img src=""></a></li>
 <li><a href="">…</a></li>
 <li><a href="">…</a></li>
 <li><a href="">…</a></li>
</ul>

CSS:
複製代碼 代碼如下:

 .list-figure { float: left; _display: inline; width: 130px; margin-left: -140px; margin-top: 6px; }
 

這些寫法都是欠缺對css基本概念的理解。如果理解block formatting context(塊級格式化上下文)的概念, 就不會這麼寫了。觸發了BFC的區塊層級元素,它的邊緣不會和float box重疊。
推薦的方案:
複製代碼 代碼如下:

<div class="item">
<div class="pic">...</div>
<div class="content">...</div>
</div>

CSS:
複製代碼 代碼如下:

.item .pic { float:left;margin-right:10px; }
.item .content { overflow:hidden;zoom:1; } /* 或用display:table-cell */
 


我寫的一個執行個體
複製代碼 代碼如下:

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

        <meta name="viewport" content="width=device-width">
        <style type="text/css">
          body {
              margin: 0;
              padding: 1em 0;
              background-color: #f3f3f3;
              font:16px/1.7 Arial, Helvetica, sans-serif;
              color:#5a5a5a
          }
          a {
            color: #08c;
            text-decoration: none
          }
          header h1{
                text-align:center
            }
          ul{margin: 0;padding: 0}
          ul li{list-style: none;margin: 0;font-size: 13px;}
          h3{line-height: 1.7;margin: 0}
          .item .pic { float:left;margin-right:10px; }
          .item .content { overflow:hidden;zoom:1; } /* 或用display:table-cell */
        </style>
        <!--[if lt IE 9]>
            <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
    </head>
    <body>
    <header>左圖右內容的效果實現 </header>
    <div class="item">
      <div class="pic">

      </div>
      <div class="content">
        <h3><a href="">標題標題標題標題</a></h3>
        <ul>
          <li><a href="">內容內容內容內容1</a></li>
          <li><a href="">內容內容內容內容2</a></li>
          <li><a href="">內容內容內容內容3</a></li>
          <li><a href="">內容內容內容內容4</a></li>
        </ul>
      </div>
    </div>

    </body>
</html>
 

總結
用的不是技術,更多是技巧
由於在學校裡沒有系統的前端開發課程,導致對html/css/javascript基本概念的理解非常薄弱。大部分人的學習方式是:先看書,然後覺得書和實踐離得很遠就直接實踐,遇到問題就去網上搜,而搜到的基本都是“技巧”性的東西。或者是跟著學校裡的“牛人”學,摻著各種好的、壞的經驗全盤接受。比如實現一個左圖右內容的顯示效果,寫出html和css(見下圖)。這是我的一道筆試題,看起來很簡單吧。但是還沒有人答出最佳答案。如果去網上看,國內那些大網站們是怎麼實現的,就不能怪他們了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.