Archive

Posts Tagged ‘css’

避免在 HTML 開頭使用註解

五月 2nd, 2009

前幾天學弟問我一個問題,說他 CSS 排版的網頁在大部分瀏覽器都正常,唯獨 IE 怪怪的,網頁中的 DIV 元素怎麼樣都無法置中,困擾了他許久,他的原始碼內容大致長這樣:


<!-- Head area -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test Page</title>
<style type="text/css">
<!--
#content {
	margin: 0 auto;
	width: 500px;
}
-->
</style>
</head>

<body>
<!-- Content Begin -->
<div id="content">Content</div>
<!-- Content End -->
</body>
</html>

嗯,看起來不應該會有什麼問題的,那是什麼原因讓 IE 無法將區塊置中勒?
我突然注意到他網頁開頭的那一行註解,因為自己寫網頁到現在從未在開頭使用過註解…

果然,拿掉以後就一切正常了。IE,還真是搞不懂你啊!
(註:全系列 IE 都有此現象)

網頁設計 , ,

利用 CSS 為相片加框

三月 8th, 2009

相片如果搭配了合適的邊框,可以讓相片看起來更有味道及特色,而一般相片加框都是使用軟體來達成的,所以電腦裡可能會有這些檔案:

  1. 原始相片檔
  2. 裁切、後製的檔案
  3. 縮圖無加框的檔案
  4. 縮圖有加框的檔案

但是為了應付各種需求,總不可能所有檔案都上傳到相簿吧?所以我只作前兩項,然後將想要保留的相片上傳到 Flickr,因為 Flickr 支援原始檔下載(升級Pro) 可以當作多一份備份,又會自動產生五種大小的縮圖,而且品質都不錯,所以要在 Blog 或別的地方展示時,只需選擇想要的大小再搭配 CSS 加框即可。

CSS 加框的部份找了很久,最後找到 CSS Decorative Gallery 這篇,他所 Demo 的是簡單也最多樣化的,給大家參考看看。

好書好站, 網頁設計 , , , , ,

[CSS]滑鼠移過表格列變色及附加連結效果

三月 8th, 2008

老實說這個標題不知道要怎麼下比較好理解。我想要滑鼠移過表格某一列時會變色,而且不只超連結的文字可以點,而是整列都有連結效果....囧...先直接看 Demo 吧!
要達到這種效果,很多教學都是使用 JavaScript 裡的 onmouseover、onmouseout 及 onclick 事件來達成,不過現在有純 CSS 的解法,並且通用多數瀏覽器,這個技巧其實在很多國外網站看過,不過昨天向艾德請教之後才真正學起來^^


#tb td a {
    display: block;
    height: 35px;
    line-height: 35px;
    background: #FFF9E0;
}
#tb td a:hover {
    background: #E2D9B2;
}

關鍵就是使用 display: block 將 a 顯示為區塊元素,然後依照需求設個高度或寬度給它即可,line-height 給予相同高度可以確保文字垂直置中,這樣比使用 JavaScript 方便多囉。

網頁設計 , , , ,

[CSS] 使多欄式版面高度等高

五月 7th, 2007

解決了上一篇的高度不能自動延伸的問題之後,馬上會遇到另一個問題。#container 和 #content 延伸了,旁邊兩個區塊卻仍然維持原本的高度,如果要指定背景就很麻煩了。

01.png

解決方法:
加入以下 CSS:


#container {
	overflow: hidden;
}
#left, #right {
	padding-bottom: 1000px;
	margin-bottom: -1000px;
}

利用 padding-bottom 設一個足夠容納所有內容的值
再用 margin-bottom 設相同的負值,將版面拉回來
這樣超過的版面就會被 overflow: hidden 隱藏,達到我們想要的效果。

參考文章

網頁設計 , , ,

[CSS] 重直多欄式版面自動延伸高度

五月 7th, 2007

最近製作網頁開始試著用純 CSS 來排版了,習慣之後發現真的比表格排版更方便,不過當中也會遇到一些問題,其中一個就是這篇要講的。
現在有個三欄式版面,如圖:

01.png


#container {
	margin:0 auto;
	width: 780px;
	height: 100px;
	background: #ffc;
	border: 1px solid #000;
}
#left {
	float: left;
	width: 260px;
	background: #9cf;
}
#content {
	float: left;
	width: 260px;;
	background: #fcf;
}
#right {
	float: right;
	width: 260px;
	background: #9cf;
}

原本預期當任何區塊內容過多時,外層 container 要能夠自動延伸,包住裡面的子區塊,但實做之後會發現變成這樣:
02.png
解決方法:
#container 裡不要指定高度,也就是維持預設的 height:auto; 同時加入 overflow: hidden; 即可。


#container {
	margin:0 auto;
	width: 780px;
	background: #ffc;
	border: 1px solid #000;
    overflow: hidden;
}

記得不能指定高度,否則溢出的內容會被隱藏。

解決這個問題之後通常會遇到下一個問題...

網頁設計 , , ,