Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с фоном для кнопок в FF и Опера
 
 автор: boozim   (16.09.2008 в 14:15)   письмо автору
 
 

Здравствуйте.
Столькнулся с одной проблемой. Есть меню определенной ширины (допустим 185 пикселей) с несколькими пунктами. Хотел при помощи CSS сделать так, чтобы на заднем плане каждой ссылки был фон в виде кнопочки1, при этом при наведении на ссылку фон (кнопочка1) заменялась на кнопочку2, а при нажатии на кнопочку3. Все рисунки (кнопочка1,2 и 3) одного размера (185 на 30).
HTML код следующий:


<div id="menu">

<div class="knopka">
<a href=#>Галерея</a>
</div>

<div class="knopka">
<a href=#>Гостевая книга</a>
</div>

</div>


CSS код следующий


#menu {
text-align: center;
width: 185px;
}

.knopka {
width: 185px;
height: 30px;
}

a {
background-repeat: no-repeat;
}

a:link{
background-image: url(knopka1.jpg);
}

a:visited{
background-image: url(knopka1.jpg);
}

a:hover{
background-image: url(knopka2.jpg);
}

a:active {
background-image: url(knopka3.jpg);
}


А дальше загвоздка в том, что в IE отображается как задумал, а в Опере и FF фон стоит только за буквами. Пробовал поставить в CSS для тега "а" ширину 185 и высоту 35 - не помогло.
Одно решение есть, подогнать отступы (padding) для каждого пункта меню, чтобы фон полностью растянулся, но во-первых это не удобно, а во-вторых бывают пользователи с MacOS, Unix. А у них, я думаю, другие шрифты и если чуть не совпадают по длине, то получается полная хрень.
Можно ли решить данную проблему с помощью monospace шрифтов. Меня интересует тут один вопрос: у всех ли monospace шрифтов отношение высоты к ширене одинаковое (т.е. если я поставлю размер шрифта 16, то будет ли ширина букв 9 пикселей (цифра из головы) для monospace шрифтов под MacOS, Unix и окошки, стандартизована эта величина или нет?)?
Длинный вопрос, но может кто знает более элегантные решения проблемы, чем у меня?

  Ответить  
 
 автор: Madman   (16.09.2008 в 14:31)   письмо автору
 
   для: boozim   (16.09.2008 в 14:15)
 

А что мешает сделать ссылку блочным элементом и указать ей теже размеры, что и родительский див. Или проще вообще заменить дивы на блочные ссылки и прописать фоны.

Если так не устраивает, то используйте display:inline-block, для ИЕ возвращайте на display:inline. Для Мозилы display:-moz-inline-box

  Ответить  
 
 автор: boozim   (16.09.2008 в 14:46)   письмо автору
 
   для: Madman   (16.09.2008 в 14:31)
 

Я вообще-то, признаться честно, CSS только начал осваивать, поэтому не понимаю что значит сделать ссылку блочным элементом. Имеете в виду поставить для ссылки a {width: 185px;
height: 30px;}. если так, то не помогло. Или нужен какой-то другой параметр поставить, чтоб сделать блочный элемент?
Пробовал заключить ссылку (после тега "а") в теги "p" и указать для них высоту и ширину, вообще фон пропал.

  Ответить  
 
 автор: Madman   (16.09.2008 в 15:38)   письмо автору
 
   для: boozim   (16.09.2008 в 14:46)
 

перепишите ваш код как:
<div id="menu">

<a href="#" class="knopka">Галерея</a>

<a href="#" class="knopka">Гостевая книга</a>

</div> 


CSS:
#menu {
text-align: center;
width: 185px;
}

.knopka {
width: 185px;
height: 30px;
display:block;
background: url(knopka1.jpg) no-repeat 0 0;
}

.knopka:hover{
background-image: url(knopka2.jpg);
}

.knopka:active {
background-image: url(knopka3.jpg);

  Ответить  
 
 автор: boozim   (16.09.2008 в 15:49)   письмо автору
 
   для: Madman   (16.09.2008 в 15:38)
 

Спасибо большое, жаль что пиво по интернету нельзя передать, а то бы налил.

  Ответить  
 
 автор: Madman   (16.09.2008 в 16:09)   письмо автору
 
   для: boozim   (16.09.2008 в 15:49)
 

Всегда рад ;)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования