[CSS]CSS的Height設AUTO時的小異常

摘要:[CSS]CSS的Hight設AUTO時的小異常

今天公司的美術問了我一個問題,

因為他在設定CSS出了一個小小的異常,一直無法排解,HTML和CSS如下,

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST</title>
<style type="text/css">
<!--

dt {
    border: 8px solid #0000FF;
    width:93px;
    height:auto;  
    margin:0;
    padding:0;  
    display:block;
}
-->
</style>
</head>
<body>
    <dl> 
          <dt> 
              <img src="dog01.jpg"/>
          </dt>
    </dl>
</body>
</html>

 是非常簡單的HTML和CSS,他主要的目地是要在dt 外面做一個圖片的框,

寬度要固定,但是高度要設定成Auto,讓它自動隨著圖片改變,

 如圖所示,藍色的是dt的邊框,狗狗的圖片下面多了一個空白,

我同事怎麼想都想不通,到最後他只好把CSS下再圖片下才解決,

他說但是他怕寬度無法統一 (好吧,無法理解他的堅持),

後來我測試了一下,看到了一些小問題,當我用瀏覽器的偵錯工具來看時,

發現裡面會有一個異常的字元把dt 撐高,可是我看HTML的結夠挺完整,

後來我試著用<ul><li>或是<div>來寫,同樣也是這種問題,

我把圖片拿掉後發現,還是會有一個空白,

所以我猜測應該是height:auto 的特性,他應該會判斷是否要留空白,但是他判斷的條件是什麼?

我想到有些美術再設計樣板時很愛用PS直接把圖片割一割轉換成HTML給我來寫程式,

然後我們程式人員往往為了要方便閱讀會把標籤整理的有規律、整齊,

這時就常常會有一個問題,就是圖片裂開,我想說height:auto 是否是藉斷行來判斷是否要留空,

所以我試試看把所有標籤整理成一行,HTML如下,

<body>
    <dl><dt><img src="dog01.jpg"/></dt></dl>
</body>

 再看看畫面,果然問題解決了

END...