ul結(jié)合CSS制作網(wǎng)頁相冊滑動瀏覽效果
英文原文:Sliding Photograph Galleries
翻譯整理:西米CC-www.ximicc.com
效果:
<!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=gb2312" />
<title>別開生面純CSS實現(xiàn)相冊預(yù)覽 ximicc.com</title>
<style type="text/css">
body{
font-size:12px;
color: #CC0000;
}
p {
background-color: #F1FAFE;
}
#gallery {
width:495px;
height:240px;
border: 1px solid #888;
margin:0 auto;
padding:0;
list-style:none;
background:#fff url(/files/080628/1_133958.gif);
}
#gallery li {
float: left;
}
#gallery li a {
display: block;
width: 28px;
height: 240px;
border-right: #fff 1px solid;
overflow: hidden;
cursor: default;
}
#gallery li a img {
border:0;
}
#gallery li a:hover {
width: 320px;
}
#gallery2 {
margin:0 auto;
padding:0;
list-style-type:none;
overflow:hidden;
width:572px;
height:238px;
border:1px solid #000;
background:#fff url(/files/080628/1_134055.gif);
}
#gallery2 li {
float:left;
}
#gallery2 li a {
display:block;
height:30px;
width:572px;
float:left;
overflow: hidden;
text-decoration:none;
border-bottom:1px solid #000;
cursor:default;
}
#gallery2 li a img {
border:0;
}
#gallery2 li a:hover {
background:#eee;
height:144px;
}
#gallery2 li a:hover img {
height:144px;
}
-->
</style>
</head>
<body>
<ul id="gallery2">
<li><a href="http://jb51.net">
<img src="/files/080628/1_134205.jpg" alt="ximicc" title="ximicc" /></a></li>
<li><a href="http://jb51.net">
<img src="/files/080628/1_134245.jpg" alt="ximicc" title="ximicc" /></a></li>
<li><a href="http://jb51.net">
<img src="/files/080628/1_134317.jpg" alt="ximicc" title="ximicc" /></a></li>
<li><a href="http://jb51.net">
<img src="/files/080628/1_134352.jpg" alt="ximicc" title="ximicc" /></a></li>
</ul>
<div align="center">
<p><br />
<strong>原文地址:<a href="http://www.cssplay.co.uk/menu/gallery3l" target="_blank">Sliding Photograph Galleries</a></strong>
<br />
<br /><strong>翻譯整理:<a href="http://jb51.net" target="_blank">西米CC www.ximicc.com</a></strong> <br />
<br />
</p><br />
</div>
<ul id="gallery">
<li><a href="http://jb51.net"><img src="/files/080628/1_134517.jpg" /></a></li>
<li><a href="http://jb51.net"><img src="/files/080628/1_134549.jpg" /></a></li>
<li><a href="http://jb51.net"><img src="/files/080628/1_134618.jpg" /></a></li>
<li><a href="http://jb51.net"><img src="/files/080628/1_134651.jpg" /></a></li>
<li><a href="http://jb51.net"><img src="/files/080628/1_134720.jpg" /></a></li>
<li><a href="http://jb51.net"><img src="/files/080628/1_134752.jpg" /></a></li>
<li><a href="http://jb51.net"><img src="/files/080628/1_134821.jpg" /></a></li>
</ul>
</body>
</html>
這是一個很簡單的純CSS相冊滑動瀏覽效果,僅用一個無序列表ul結(jié)合簡單的CSS就可以實現(xiàn)。原文中介紹的縱向滑動相冊的實現(xiàn)方法,但是相比之下個人更喜歡橫向滑動的那個。兩者在縮略圖的實現(xiàn)上有所區(qū)別,前者是采用收縮原始圖片寬度的方法,會給人以很不自然的擠扁的感覺,而后者通過局部顯示原始圖片達到縮略的效果,雖然這種縮略圖不能讓我們概覽整張圖片,但我們可以通過提煉圖片重點特征或添加說明文字等方法,來提升瀏覽者對圖片的了解,最重要的是它在視覺協(xié)調(diào)性上更勝一籌。
首先來看一下XHTML部分,準(zhǔn)備好七張相冊圖片以及一張默認(rèn)的相冊背景圖win_backh.gif,把它們存儲在網(wǎng)站的windows目錄下,如前所述,七張圖片的縮略圖我們直接通過定義CSS來實現(xiàn),不需要另外制作。我們以一個ul作為容器把這幾張圖片添加到頁面中,并設(shè)置空鏈接,當(dāng)然你也可以在鏈接中設(shè)置具體的地址:
<ul id="gallery">
<li><a href="#"><img src="windows/b1.jpg" /></a></li>
<li><a href="#"><img src="windows/b2.jpg" /></a></li>
<li><a href="#"><img src="windows/b3.jpg" /></a></li>
<li><a href="#"><img src="windows/b4.jpg" /></a></li>
<li><a href="#"><img src="windows/b5.jpg" /></a></li>
<li><a href="#"><img src="windows/b6.jpg" /></a></li>
<li><a href="#"><img src="windows/b7.jpg" /></a></li>
</ul>
在ul中我們只應(yīng)用了一個名為gallery的樣式,接下來的CSS都將針對#gallery及其下級元素進行定義。本例中的相冊圖片都有相同的尺寸320×240,背景圖片的尺寸為495×240。注意這里背景圖的寬度是根據(jù)本例的需要精確定義的,至于如何計算會在例子結(jié)束的時候進行說明?,F(xiàn)在在瀏覽器中顯示的僅僅是七張帶圓點和默認(rèn)鏈接邊框的圖片,接下來看一下#gallery中針對ul的樣式設(shè)定:
#gallery {
width:495px;
height:240px;
border: 1px solid #888;
margin:0 auto;
padding:0;
list-style:none;
background:#fff url(windows/win_backh.gif);
}
ul元素的寬和高與背景圖的尺寸保持一致,并設(shè)置了1px的外邊框。本例中通過margin將整個相冊居中,消除內(nèi)填充以及默認(rèn)的列表圓點符號。原文中#gallery還有一條overflow:hidden;語句,我把它去掉之后,相冊效果在IE6和FF中依然正常,不知是不是在其它瀏覽器中會出現(xiàn)Bug,若你了解個中因由,希望告知本站以及時糾正。
接下來將列表項目設(shè)置為左浮動:
#gallery li {
float: left;
}
這個樣式現(xiàn)在不會對瀏覽器的解析效果產(chǎn)生任何影響,但它是必須的,它確保了分置在各個列表項中的圖片顯示在同一行,你可以在整體效果完成之后刪除這行代碼比較一下差別。接下來是一組很關(guān)鍵的CSS定義,針對li中的鏈接標(biāo)簽a:
#gallery li a {
display: block;
width: 28px;
height: 240px;
border-right: #fff 1px solid;
overflow: hidden;
cursor: default;
}
首先將鏈接對象轉(zhuǎn)換為塊級元素,以便為其設(shè)置寬和高,這里的寬度28px即縮略圖的截取區(qū)域,相冊中的圖片最好能進行一些預(yù)處理,除了之前提到的尺寸規(guī)格之外,還可以看看能否在這28×240的縮略區(qū)內(nèi)盡可能多的傳遞圖片信息。這里面最重要的一行代碼是overflow: hidden; ,它讓圖片的可視部分限制在a標(biāo)簽的寬高范圍之內(nèi)。另外樣式中還定義了鼠標(biāo)指針的外觀,并為每個鏈接區(qū)域設(shè)置了1px的白色右邊框,讓其中的圖片之間具有更明顯的視覺分隔。
添加了鏈接的圖片,在瀏覽器中往往會顯示出紫色的外邊框,我們通過下面的CSS來消除它:

#gallery li a img {
border:0;
}
最后是鼠標(biāo)滑過時顯示完整圖片的實現(xiàn),我們之所以在圖片上添加鏈接,很大一部分原因在于我們需要一個行為來觸發(fā)相冊瀏覽,而利用偽類a:hover來實現(xiàn)再適合不過了:
#gallery li a:hover {
width: 320px;
}
CSS中我們只要簡單的改變已經(jīng)轉(zhuǎn)換為塊級元素的a標(biāo)簽的寬度就可以了。
最后來說明一下ul的寬度為什么要設(shè)置為495px。結(jié)合縮略圖和大圖瀏覽的功能,相冊整體的寬度至少應(yīng)該是一張大圖加上六張小圖,即320 28×6=488px,而在設(shè)計的過程中,我們還未每個a標(biāo)簽添加了1px的右邊框,也就是每張圖片都有各自1px的右邊框,所以相冊的寬度在原來的基礎(chǔ)上再加7px,即最后的495px。
相關(guān)文章

CSS3打造的現(xiàn)代交互式登錄界面詳細(xì)實現(xiàn)過程
本文介紹CSS3和jQuery在登錄界面設(shè)計中的應(yīng)用,涵蓋動畫、選擇器、自定義字體及盒模型技術(shù),提升界面美觀與交互性,同時優(yōu)化性能和可訪問性,感興趣的朋友跟隨小編一起看看吧2025-06-20CSS普通流、浮動與定位網(wǎng)頁布局三大機制及最佳實踐
本文給大家講解CSS 的三種核心布局機制——普通流(Normal Flow)、浮動(Float)和定位(Positioning)對于創(chuàng)建靈活、響應(yīng)式的網(wǎng)頁至關(guān)重要,本文將深入探討這三種機制的工作原2025-06-19
css實現(xiàn)角標(biāo)效果并帶有文章或圖標(biāo)效果(完整代碼)
文章介紹如何用CSS實現(xiàn)角標(biāo)效果,通過.active類結(jié)合::after和::before偽元素,利用定位、邊框和旋轉(zhuǎn)創(chuàng)建紅色邊框與白色三角形的提示標(biāo)志,適用于按鈕或卡片元素的視覺增強設(shè)計2025-06-19CSS Anchor Positioning重新定義錨點定位的時代來臨(最新推薦)
CSS Anchor Positioning是一項仍在草案中的新特性,由 Chrome 125 開始提供原生支持需啟用實驗 flag,它允許你在 CSS 中通過錨點(anchor)來相對于任意 DOM 元素定位,本文2025-06-17CSS中的Static、Relative、Absolute、Fixed、Sticky的應(yīng)用與詳細(xì)對比
CSS 中的 position 屬性用于控制元素的定位方式,不同的定位方式會影響元素在頁面中的布局和層疊關(guān)系,以下是 static、relative、absolute、fixed、sticky 的詳細(xì)對比和應(yīng)用2025-06-17CSS place-items: center解析與用法詳解
place-items: center; 是一個強大的 CSS 簡寫屬性,用于同時控制 網(wǎng)格(Grid) 和 彈性盒(Flexbox) 布局中的對齊方式,本文給大家介紹CSS place-items: center; 詳解與用法2025-06-17
在日常開發(fā)中,我們經(jīng)常需要讓某個元素占據(jù)容器的剩余空間,本文將介紹5種不同的方法來實現(xiàn)這個需求,并分析各種方法的優(yōu)缺點,感興趣的朋友一起看看吧2025-06-17CSS中前端單位 px、vw、vh 等的區(qū)別與使用建議
CSS單位區(qū)別與使用場景總結(jié):px絕對、vw/vh響應(yīng)式,%繼承父尺寸,em/rem文字縮放,vmin/vmax適應(yīng)寬高變化,固定布局用px或%,響應(yīng)式布局用vw/vh/rem,文字用em或rem,本文給大家2025-06-16CSS 樣式表的四種應(yīng)用方式及css注釋的應(yīng)用小結(jié)
這篇文章主要介紹了CSS 樣式表的四種應(yīng)用方式及css注釋的應(yīng)用小結(jié),本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2025-05-21- 在CSS布局中,padding屬性是控制元素內(nèi)容與其邊框之間距離的關(guān)鍵工具,本文介紹CSS基礎(chǔ)中padding,通過本文的介紹,我們深入了解了padding的基本概念、簡寫方法以及它對元2025-05-16




