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

HTML+CSS+JavaScript

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

 

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

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

тема: Помогите разобраться со стилями в верхнем меню!!!
 
 автор: andriano   (17.10.2008 в 21:28)   письмо автору
111.9 Кб
 
 

Помогите разобраться со стилями в верхнем меню!!!
Как то по дурацки отображается список по вертикали
Угробил пол дня и не смог понять причину по которой если в списке ul li появляется не ссылка а просто текст то все последующие li отображаются с новой строки :(((

Прикрепляю файл

  Ответить  
 
 автор: Nytrogen   (17.10.2008 в 21:48)   письмо автору
 
   для: andriano   (17.10.2008 в 21:28)
 

Если Вам главное, чтоб работало, то в CSS строку
#menu A {
замените на
#menu * {
. А так, у Вас там вообще много чего лишнего и некорректного. В частности, несколько тегов имеют одинаковый ID - надо не ID повторять, а CLASS.

  Ответить  
 
 автор: andriano   (19.10.2008 в 11:59)   письмо автору
1.5 Кб
 
   для: Nytrogen   (17.10.2008 в 21:48)
 

Большое спасибо за ответ! Частично решил проблемму. Но появилась теперь другая - дублируются разделительные линии между пунктами меню.
Повторю вопрос: Как добиться нормального отображения меню и где ошибка в CSS:
Вот CSS код

#header {
    width: 987px;
    height: 20px;
    margin: 0 0;
    padding: 0 0;
    background: #CCCCCC url(/images/site__05.gif) repeat-x;

}

/* Menu */

#menu {

    padding: 0 0 0 0;
    list-style: none;
    margin: 0;
    text-transform: uppercase;
    font-size: 14px;
    font-weight: bold;
    font-family: Arial, Helvetica, sans-serif;
    
        background: url(/images/site__04.gif) no-repeat;
}

#menu li {
    color: #FFFFFF;
    display: inline;
  }

#menu * {
    margin: 0;
    float: left;
    display: block;
    padding: 0px 9px 0px 12px;
    text-decoration: none;
    border-right-color: #000000;
    border-right-width: 1px;
    border-right-style: outset;

 /*    padding: 3px 9px 0px 12px; */
    color: #000000;

}
#menu a:hover {
    background: #009900 url(/images/site__07.gif) repeat-x;    
    color: #00CC00;
}
#menu #current a{
    background: #009900 url(/images/site__07.gif) repeat-x;    
    color: #FFFFFF;
}
#menu a:active {
    background: #009900 url(/images/site__07.gif) repeat-x;
    color: #FFFFFF;
}

#menu #right a{
    display: block;
    background: #009900 url(/images/site__09.gif) repeat-x;    
    color: #00CC00;
    float: right;
    border-right-width: 0px;
}
#menu #right a:hover{
    color: #00FF00;
}
/*#menu .active a {
    background: #009900 url(images/greenbuttion.gif) repeat-x;
    color: #FFFFFF;
}



А вот html


<html>

<head>
  <title>CMS Ortus :: лицензия</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <META NAME='keywords' CONTENT='keywords '><META NAME='description' CONTENT='description '><link href="css/common.css" rel="stylesheet" type="text/css">
</head>

<body>
<div  id="header">
<ul id="menu">
<li><a href='index.php?ortupg=9'>о системе</a></li><li>лицензия</li><li><a href='index.php?ortupg=12'>документация</a></li><li><a href='index.php?ortupg=20'>статьи</a></li><li><a href='index.php?ortupg=22'>обо мне</a></li><li><a href='index.php?adm=main'>админка</a></li>    
</ul> 
<ul id="menu">
    <li id="right"><a href=index.php?rev=contacts><img src="images/flag_ru.gif" width="21" height="16" /></a></li>
        <li id="right"><a href=index.php?rev=contacts><img src="images/flag_en.gif" width="21" height="16" /></a></li>
    <li id="right"><a href=index.php?rev=contacts>MEMBER AREA </a></li>
  </ul>
 </div>
</body>
</html>



И прикрепляю набор фоновых картинок для кнопок

Возможно есть более рациональное решение такого же меню, с благодарностью выслушаю любые советы!!
Заранее спасибо!!

  Ответить  
 
 автор: Nytrogen   (19.10.2008 в 23:05)   письмо автору
 
   для: andriano   (19.10.2008 в 11:59)
 

>дублируются разделительные линии между пунктами меню.

Тут вот какое дело: когда вы используете в CSS универсальный селектор *, то объявления применяются ко всем вложенным тегам. Таким образом, объявления
    border-right-color: #000000;
    border-right-width: 1px;
    border-right-style: outset; 

применяются ко всем тегам, находящимся внутри контейнера <ul id="menu"> : как к <A></A>, так и к <LI></LI>, что является причиной для создания двойной границы.
Лучшим решением данной проблемы, на мой взгляд, является смена неоправданной структуры списка (по сути теги <LI> и <UL> применяются только при необходимости, т.е. когда нужен вертикальный список с bullet'ами): заменяем <UL> на <DIV>, а от <LI> избавляемся вовсе, оставляя только контейнеры ссылок. Лишняя вложенность ни к чему, если опять-таки это не оправдано контекстом или теми или иными особенностями стилей.

  Ответить  
 
 автор: andriano   (20.10.2008 в 01:19)   письмо автору
 
   для: Nytrogen   (19.10.2008 в 23:05)
 

Еще раз благодарю за ответ.
Наверно я по пояс деревянный, но до сих пор не получается сделать все как надо
Нужно что бы были названия кнопок с с разделительными вертикальными линиями и при наведении на кнопку-ссылку подсвечивался весь бэкграунд между двумя соседними линиями а не только текст кнопки-ссылки. Потому попытался каждую кнопку запихать в свой div. В диве текст с вертикальной линией в конце
Теперь при наведении мышкой на кнопку подсвечивается не все пустое пространство между вертикальными линиями а только текст. Как можно это исправить?
P/S. Никогда бы не подумал что на это горе меню у меня уйдет столько времени

ВОт код

    <div  id="header">
    
        <div id="menu" > <a href=index.php?rev=about>Main</a> </div>
        <div id="menu" ><a href=index.php?rev=product>About us</a></div>
        <div id="menu" ><a href=index.php?rev=bussines>Services</a></div>
        <div id="menu" ><a href=index.php?rev=materials>Portfolio</a></div>
</div>       


в css вот что:

#menu {
    text-decoration: none;
      float: left;
      display:inline;
    list-style: none;
    text-transform: uppercase;
    font-size: 14px;
    font-weight: bold;
    font-family: Arial, Helvetica, sans-serif;
    border-right-color: #000000;
    border-right-width: 1px;
    border-right-style: outset;
    color: #000000;
padding: 3px 9px 0px 12px;
    

}

#menu li {
    color: #FFFFFF;
    display:inline-block;
    border-right-color: #000000;
    border-right-width: 1px;
    border-right-style: outset;
  }

#menu * {
   
    float: left;

    text-decoration: none;
    
 /*    padding: 3px 9px 0px 12px; */
    color: #000000;

}
#menu a:hover {
    background: #009900 ;    
    color: #00CC00;
}
#menu #current a{
    background: #009900 url(/images/site__07.gif) repeat-x;    
    color: #FFFFFF;
}
#menu a:active {
    background: #009900 url(/images/site__07.gif) repeat-x;
    color: #FFFFFF;
}

#menu #right a{
    display: block;
    background: #009900 url(/images/site__09.gif) repeat-x;    
    color: #00CC00;
    float: right;
    border-right-width: 0px;
}
#menu #right a:hover{
    color: #00FF00;
}


  Ответить  
 
 автор: Nytrogen   (20.10.2008 в 17:28)   письмо автору
 
   для: andriano   (20.10.2008 в 01:19)
 

Ваша ошибка в том, что у св-ва background не может быть значения #цвет. Используя background-color, можно обойтись без DIV'ов.
К сожалению, нет времени редактировать Ваш код, поэтому приведу аналогичный:
<html>

<head>
  <style>
a {
  border-right: 2px solid red;
  padding: 0px 15px;
}

a:hover {
  background-color: yellow;
}

  </style>
</head>

<body>
  <div id=menu>
    <a href=#>Main</a><a 
       href=#>About Us</a><a 
       href=#>Portfolio</a><a 
       href=#>Useful</a><a 
       href=#>Contacts</a>
  </div>
</body>

</html>


P.S. НЕ ИСПОЛЬЗУЙТЕ повторяющиеся ID!!! Пишите CLASS = MENU, а в CSS вместо #MENU пишите .MENU.

  Ответить  
 
 автор: andriano   (22.10.2008 в 22:12)   письмо автору
 
   для: Nytrogen   (20.10.2008 в 17:28)
 

спасибо за помошь!!!

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

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