HTML CSS шпаргалка Рецепты, статьи, советы, приемы html css

Фотогалерея с помощью CSS, без использования java script

Посмотрим, как можно сделать простенькую фотогалерею только при помощи CSS, без использования java script.

Пример того, что мы будем делать смотрите тут: пример галереи на css. Итак, начнем.

CSS галерея, переключение картинок на hover

Посмотрим сразу код, и начнем разбирать его:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!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>Фотогалерея с помощью CSS</title>
<style type="text/css">
body{
	margin:0;
	padding:50px;
	text-align:center;
	font-family:Arial, Helvetica, sans-serif;
	color:#FFF;
	background:#000;
}
a img{border:none;}
 
#gallery1{
	width:663px;
	height:400px;
	overflow:hidden;
	position:relative;
	z-index:1;
	margin:0 auto 100px auto;
}
#tabs1{
	list-style:none;
	padding:0;
	margin:0;
	width:130px;
	height:400px;
	float:left;
}
#tabs1 li{
	padding:0;
	margin:0;
	float:left;
}
#tabs1 li a img{
	display:block;
	width:120px;
	height:90px;
}
#tabs1 li a{
	display:block;
	border:5px solid #999;
	width:120px;
	height:90px;
}
#tabs1 li a:hover{border:5px solid #fff;}
#tabs1 li a img.fullPic, #gallery1 div{
	position:absolute;
	z-index:1;
	left:130px;
	top:0;
	width:533px;
	height:400px;
}
#tabs1 li a:hover img.fullPic{z-index:3;}
#gallery1 div{
	z-index:2;
	background:#242424;
}
</style>
</head>
<body>
<h1>Галерея №1. Переключение картинок на hover.<br /> Почему-то не работает в ие6 =(</h1>
<div id="gallery1">
	<ul id="tabs1">
		<li><a href="#"><img src="images/pic1s.jpg" alt="" /><img src="images/pic1.jpg" class="fullPic" alt="" /></a></li>
		<li><a href="#"><img src="images/pic2s.jpg" alt="" /><img src="images/pic2.jpg" class="fullPic" alt="" /></a></li>
		<li><a href="#"><img src="images/pic3s.jpg" alt="" /><img src="images/pic3.jpg" class="fullPic" alt="" /></a></li>
		<li><a href="#"><img src="images/pic4s.jpg" alt="" /><img src="images/pic4.jpg" class="fullPic" alt="" /></a></li>
	</ul>
	<div></div>
</div>
</body>
</html>

Как видим, создаем блок галереи и список мелких картинок. Рядом с каждой картинкой стоит ее большая картинка. Важно, чтобы обе картинки были в теге a. Сама идея галереи на hover состоит в том, что все большие картинки, позиционируются абсолютно в одном месте, и при наведении на мелкую картинку, т.е. на a:hover, у большой картинки меняется z-index на бОльший, и тем самым она «всплывает» над остальными. И в итоге, получается переключение картинок при наведении на мелких. Пустой див внизу нужен для перекрытия всех больших картинок, чтобы в самом начале не было видно ни одной большой картинки.

Вроде бы ничего сложного, но почему-то в моем эмуляторе ие6 данный пример заработать не захотел. Ну и хрен с ним =)

CSS галерея, переключение картинок на click

Теперь более интересный способ. Посмотрим, как переключать картинки на click. Даю код, и начнем разбирать его:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<!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>Фотогалерея с помощью CSS</title>
<style type="text/css">
body{
	margin:0;
	padding:50px;
	text-align:center;
	font-family:Arial, Helvetica, sans-serif;
	color:#FFF;
	background:#000;
}
a img{border:none;}
 
#gallery2{
	width:663px;
	height:400px;
	overflow:hidden;
	position:relative;
	z-index:1;
	margin:0 auto 100px auto;
}
#tabs2{
	list-style:none;
	padding:0;
	margin:0;
	width:130px;
	height:400px;
	float:left;
}
#tabs2 li{
	padding:0;
	margin:0;
	float:left;
}
#tabs2 li a img{
	display:block;
	width:120px;
	height:90px;
}
#tabs2 li a{
	display:block;
	border:5px solid #fff;
	width:120px;
	height:90px;
}
#fullPicBlock{
	width:533px;
	height:400px;
	overflow:hidden;
	float:left;
	background:#242424;
}
 
</style>
</head>
<body>
<h1>Галерея №2. Переключение картинок на click.</h1>
<div id="gallery2">
	<ul id="tabs2">
		<li><a href="#pic1"><img src="images/pic1s.jpg" alt="" /></a></li>
		<li><a href="#pic2"><img src="images/pic2s.jpg" alt="" /></a></li>
		<li><a href="#pic3"><img src="images/pic3s.jpg" alt="" /></a></li>
		<li><a href="#pic4"><img src="images/pic4s.jpg" alt="" /></a></li>
	</ul>
	<div id="fullPicBlock">
		<div><a name="pic1"></a><img src="images/pic1.jpg" alt="" /></div>
		<div><a name="pic2"></a><img src="images/pic2.jpg" alt="" /></div>
		<div><a name="pic3"></a><img src="images/pic3.jpg" alt="" /></div>
		<div><a name="pic4"></a><img src="images/pic4.jpg" alt="" /></div>
	</div>
</div>
</body>
</html>

Собственно что делаем. А делаем 2 блока для мелких картинок и для больших картинок. Блок больших картинок делаем шириной и высотой равной большим фоткам, и задаем ему overflow:hidden. Внутри него ставим большие картинки с ссылками-якорями. И на мелких картинках ставим ссылки на их соответствующие якори. В итоге, при клике на мелкую картинку, в большом блоке всплывает его соответствующая большая картинка. Обертывание якорных ссылок и больших картинок в div, позволяет избежать некоторых глюков при переключении картинок в ИЕ.

А вот этот способ в ие6 работает =)

Вот и всё. Еще раз посмотреть пример.

P.S. Из минусов, стоит отметить, что в итоге грузятся все картинки сразу, что не есть хорошо. Но способ интересный, можно взять на заметку.

Метки: ,


Fatal error: Call to undefined function wp_related_posts() in /home/k/kazanets/htmlcssinfo/public_html/wp-content/themes/htmlcsstheme/single.php on line 70