как сделать кнопку?...

12
flenj
На сайте с 21.07.2010
Offline
59
1293

Здравствуйте!

Есть сайт, сверстанный на div'ах, полностью состоящий из порезанных картинок, которые я сделал фоном, код выглядит вот так:

html:

<div class="main">

</div>

css:

.main {

background: url(img/main.jpg) no-repeat;
display: block;
float: left;
width: 79px;
height: 32px;
}

Вопрос такой (см. картинку):

Эту картинку теперь надо сделать как-то линком, будьте добры, кодом помогите ))

И как правильней будет или лучше тег img в css или в html написать, какой оптимальный вариант?

Спасибо за советы.

jpg main.jpg
Порфолиё /ru/forum/526650 (/ru/forum/526650)
T.R.O.N
На сайте с 18.05.2004
Offline
314
#1
flenj:
И как правильней будет или лучше тег img в css или в html написать, какой оптимальный вариант?

правильно - не насиловать мозг

flenj:
Эту картинку теперь надо сделать как-то линком, будьте добры, кодом помогите ))

<a href="......"><img src="img/main.jpg" border="0"></a> - и никаких дивов и стилей

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
flenj
На сайте с 21.07.2010
Offline
59
#2

кнопка заработала при таких условаиях:

html

<div class="main">
<a href="index.php"><img src="img/main.jpg" border="0"></a>
</div>

css

.main {
background: url(img/main.jpg);
background-repeat: no-repeat;
display: block;
float: left;
width: 126px;
height: 32px;
}

Теперь не могу сделать так, чтобы при наведении мышки на кнопку, картинка менялась на другую...

Как можно это сделать?

Пишу следующее:

.main a:hover {

background-image: url(img/main_col.jpg);
background-repeat: no-repeat;
}

и ничего не происходит..

скажите, что не правильно?

4arger
На сайте с 17.12.2008
Offline
95
#3

flenj, сделай так:


a {
display:block;
width: 126px;
height: 32px;
background:url('img/main.jpg');
}
a:hover {
background:url('img/main_col.jpg');
}

думаю, смысл понятен.

flenj
На сайте с 21.07.2010
Offline
59
#4

4arger, сделал, не получается все равно, ничего не происходит, а если убираю float: left;

то кнопка вообще убегает, уже пробовал по разному включать и отключать поочередно в css всё, что можно..

Руслан Исмаилов
На сайте с 30.03.2007
Offline
198
#5
правильно - не насиловать мозг

:D +100000

и ничего не происходит..

Потому как у вас для тега a размеры и высота неуказаны.

Да и в любом случае перекрывает ваша картинка.

Как я вам предлагаю это сделать html:

<div class="menu">
<ul>
<li><a hef="#" title="Link text" class="link-name-01"></a></li>
<li><a hef="#" title="Link text" class="link-name-02"></a></li>
<li><a hef="#" title="Link text" class="link-name-03"></a></li>
<li><a hef="#" title="Link text" class="link-name-04"></a></li>
<li><a hef="#" title="Link text" class="link-name-05"></a></li>
</ul>
</div>

css:

.menu {
overflow:hidden;
height:32px;
}
.menu li {
float:left;
}
.menu li a.link-name-01 {
float:left;
width:126px;
height:32px;
background:url(../img/main.jpg) no-repeat;
}
.menu li a.link-name-01:hover {
float:left;
width:126px;
height:32px;
background:url(../img/main_col.jpg) no-repeat;
}

По поводу замены картинки я вам предлагаю сделать это через CSS-спрайты так как при таком использовании картинка будет подружатся мгновенно, А не заставлять пользователя ждать. Ну и в конце концов все по феншую:D

p.s. да и скорее это ссылкой называется, но не кнопкой.

flenj
На сайте с 21.07.2010
Offline
59
#6

musulman, это называется кнопкой ; ) на изображении слово "ГЛАВНАЯ" и фон - есть единая картинка. Поэтому список здесь не поможет..

кстати, указал размер для тега а - тоже самое - ничего ))

За спрайты спасибо - буду экспериментировать с ними!

Руслан Исмаилов
На сайте с 30.03.2007
Offline
198
#7

Да ну как это списком неполучится?

А вот как тут?:)

flenj
На сайте с 21.07.2010
Offline
59
#8

да не прав ))

musulman, подскажи пожалуйста как сделать меню на спрайтах из этой картинки.

Снизу положение a:hover, сверху обычный вид.

Здесь не могу понять как это сделать при разной длине рисунка..

размеры такие: 79, 94, 126 - длина соответственно.

32 - ширина видимой области.

PS. или выход только один? - делить на три спрайта..

jpg menutop.jpg
Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#9

Вижу два варианта.

1. Почитать наконец про html (например тут)

2. "не насиловать мозг" (с) T.R.O.N и дать денег верстальщику (например musulman)

Руслан Исмаилов
На сайте с 30.03.2007
Offline
198
#10

Алексей Барыкин, спасибо:)

Ну тут все просто я думаю вы обратили внимание что я для каждой ссылочки дал свой класс!?

Поэтому вы спокойно можете задать ширину и высоту.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий