分類: CSS |
  • 1
預覽模式: 普通 | 列表
text-align:justify只能對多行中的非最後一行進行兩端對齊。對於單行自己沒辦法,IE有text-justify 可以解決問題,對了非IE的我的方式比較垃圾,因為只在特殊場合下才會用。

程序代碼 程序代碼
.justify{
height:1.1em;
overflow:hidden;

查看更多...

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 0 | 查看次數: 2431

line-height屬性的繼承問題

淘寶商城 的detail 頁面「產品詳情」部分是商家自定義區塊,曾出現這樣一個問題:
程序代碼 程序代碼
<style type="text/css">
p {
    line-height:17px;
}
</style>

<div class="mdse-detail">
    <p>
        <strong style="font-size:30px">
            品牌:XZX<br />
            市場價:145元<br />
            顏色:黑色<br />
            面料:棉<br />
            尺碼:S  M  L<br />
            衣長:S 89  M 90   L 91<br />
            肩寬:S 35  M 36   L 37<br />
            胸圍:S 88  M 92   L 96<br />
            下擺:S 104 M 108  L 112<br />
            袖長:S 17  M 17.5 L18<br />
            由於測量方法不同,誤差在2CM左右!
        </strong>
    </p>
</div>


你會發現上面例子的文字會重疊在一起!這是什麼原因呢?

由於.detail-content 中的 p 元素繼承了默認設置的全局樣式 line-height:17px,而自定義區塊又是由商家自定義,其內字體被設置為了 font-size:30px;(可能為任意值),根據 Inline formatting model,得知該文字的 line-box 高為 17px,多出的字體部分上下溢出,所以會出現字體重疊的現象。

那這個問題如何解決呢?

解決方案:我們給 .mdse-detail 下的 p 元素設定樣式屬性 line-height:1.4。

為什麼解決方案裡的 1.4 不帶單位?

元素的 line-height 屬性值會繼承父元素(或祖先元素)的 line-height 屬性值,如果屬性值有單位,則繼承的值是換算後具體的 px 值而非原始的值(比如:em、%),而如果屬性值沒有單位,則瀏覽器會繼承數值(無單位),然後根據該元素的 font-size 值重新解析得到新的 line-height 值。這個和 table 的 tr 設置 display 屬性有一點點類似(tr.style.display = 」;,IE 顯示 block,而 Firefox 等標準瀏覽器顯示 table-row)。

還有另外一個相對低效的方法,但也不失為一個快捷的解決方案:

程序代碼 程序代碼
.mdse-detail p * {
    line-height:140%;
}


參考閱讀:《Unitless line-heights》http://www.blueidea.com/tech/web/2008/6014.asp

個人會建議使用em這個單位來解決,例如:1.6em,另外關於繼承的問題,始於文字屬性的部份都是會繼承的,好比文字大小、字型、顏色、行距、字元間距等,這些都是會繼承的,其他屬性是不可以繼承的,好比寬度,一個DIV裡面又包了幾個DIV,外面DIV(父)設定寬度100PX,裡面(子)也繼承為100PX,這樣不就天下大亂了!

查看更多...

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 0 | 查看次數: 2655

CSS的十八般技巧

一.使用css縮寫 
使用縮寫可以幫助減少你CSS檔的大小,更加容易閱讀。css縮寫的主要規則請參看《常用css縮寫語法總結》,這裏就不展開描述。

二.明確定義單位,除非值為0 
忘記定義尺寸的單位是CSS新手普遍的錯誤。在HTML中你可以只寫width="100",但是在CSS中,你必須給一個準確的單位,比如:width:100px width:100em。只有兩個例外情況可以不定義單位:行高和0值。除此以外,其他值都必須緊跟單位,注意,不要在數值和單位之間加空格。

查看更多...

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 51 | 查看次數: 3957

用CSS在IE中顯示透明PNG圖像

PNG格式圖片優於GIF實在有太多地方
光是在透明度的表現上就能明顯看出
但是很可惜的至今的IE6.0還是無法呈現這PNG優秀的透明度視覺功能
但是瀏覽器雖不支援,我們還是可以使用CSS的的AlphaImageLoader和Alpha濾鏡,來完成透明的PNG在IE正常顯示的使命唷!

查看更多...

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 43 | 查看次數: 3457

如何正確實作出固定寬度且置中的版型

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 0 | 查看次數: 4919

CSS 的 ID 和 CLASS 有什麼不同?

class 指的是「同一類型的元素」,像是 Blog 首頁每篇文章,其內容樣式都要一樣,所以我們就可以指定 class="blogbody" 來表示這些內容是同類型的。

 

id 則是元素唯一的名稱,就像每個人的身份證號碼一樣不能有重覆 (雖然大多數瀏覽器允許) ,這樣我們才能透過標準的 JavaScript (ECMAScript) 及 DOM 來取得這個元素。例如:<div id="container"> ,意思就是整個頁面裡只會有一個名為 container 的主要 div 容器。

 

查看更多...

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 11 | 查看次數: 2150

CSS 排版觀念:Position

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 29 | 查看次數: 4531

CSS 排版觀念:Box Model

CSS 排版有一個很重要的觀念: Box Model 。它描述了元素之間的彼鄰關係,同時也左右了我們是否能夠成功透過 CSS ,完成整個頁面的呈現。


Box Model 的意思是說,每一個元素我們都可視它為一個 Box 。一個 Box 由以下屬性組成:margin 、 padding 、 border 、 content 。一個 Box 的實際寬度 (高度) 是由 padding + border + width (height) 所組成,如下圖 (取自 MSDN):

所以一般我們指定的 width 和 height 是 content 的寬和高,而沒有包含 border 和 padding 。換句話說,一個元素真正佔用的視覺空間,應該是 content + padding + border ,這是標準的 CSS 規範。

查看更多...

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 1 | 查看次數: 2645

CSS 排版觀念:Float

CSS 排版觀念:Float

如果說浮動 (float) 是 CSS 排版的重要技巧之一,實在一點也不為過;很多著名的 CSS 版型都會用到浮動技巧。本文就來介紹浮動所需要注意的地方,以及可能會碰到的問題。


浮動是設定元素的 float 屬性,我們能設定向左 (left) 或向右 (right) 浮動。浮動基本上會使得元素在有足夠的空間時,往父元素的左邊或右邊靠緊。接著原本跟在這個元素後面的其他元素,就會自動往上跑 (不過這裡會有部份要考量的地方,稍後再談)。當元素被設定浮動時,會自動變成區塊顯示元素 (display: block) ,這時候我們就可以設定元素的 width 和 height 了。

不過要注意一點:當我們把 position 設為 absolute 時,浮動會失效。

浮動會因為元素先後順序而有所影響,例如我們有 A 、 B 兩個區塊顯示元素如下圖,其中虛線部份的內部為父元素的內容區:

查看更多...

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 16 | 查看次數: 3434

word-break屬性,實現換行

語法:

word-break : normal | break-all | keep-all

參數:

查看更多...

分類:CSS | 固定鏈接 | 評論: 0 | 引用: 0 | 查看次數: 3564
  • 1