За последние 24 часа нас посетил 16651 программист и 1650 роботов. Сейчас ищут 1804 программиста ...

Меню.

Тема в разделе "HTML и CSS", создана пользователем Tavadm, 1 май 2010.

  1. Tavadm

    Tavadm Активный пользователь

    С нами с:
    6 апр 2010
    Сообщения:
    3
    Симпатии:
    0
    ребят изучаю CSS столкнулся со следующей проблемой: Как сделать блок меню автоматически подгоняемого размера так, чтобы выводилось полное название ссылки. Я уже не знаю, что делать все попытки как то исправить приводят к печальным результатам ПОМОГИТЕ!!!!.
    Вот файлы
    HTML:
    HTML:
    1. <link rel="stylesheet" href="menu.css" type="text/css" media="screen">
    2. <script language="javascript" src="menu.js" type="text/javascript"></script>
    3.  
    4. <ul id="cssmenu">
    5.         <li><a href="#">Горизонтальное</a>
    6.                 <ul>
    7.                         <li><a href="#">Ссылка 1</a></li>
    8.                         <li><a href="#">Ссылка 2</a></li>
    9.                 </ul>
    10.         </li>
    11.         <li><a href="#">CSS</a>
    12.                 <ul>
    13.                         <li><a href="#">Рожденные солнцем</a></li>
    14.                         <li><a href="#">Праздник победы 9 мая празднуеться в Санкт-Петербурге</a></li>
    15.                         <li><a href="#">Трубопроводная Арматура</a></li>
    16.                         <li><a href="#">Шапокляк павнет хон и ебашит в старик уже 7 год</a></li>
    17.                         <li><a href="#">Ссылка 5</a></li>
    18.                         <li><a href="#">Ссылка 5</a></li>
    19.                         <li><a href="#">Ссылка 5</a></li>
    20.                         <li><a href="#">Ссылка 5</a></li>
    21.                         <li><a href="#">Ссылка 5</a></li>
    22.                </ul>
    23.         </li>
    24.         <li><a href="#">Меню</a>
    25.                 <ul>
    26.                         <li><a href="#">Ссылка 1</a></li>
    27.                         <li><a href="#">Ссылка 2</a></li>
    28.                 </ul>
    29.         </li>
    30. </ul>
    CSS:
    [css]/* CSS Document */
    ul#cssmenu {
    width:350px;
    margin: 0;
    border: 0 none;
    padding: 0;
    list-style: none;
    background: #003366;
    height: 30px;
    font: bold 14px/20px Verdana, Arial;
    border-left:#003366 1px solid;
    }

    ul#cssmenu li {
    margin: 0;
    border: 0 none;
    padding: 0;
    float: left;
    display: inline;
    list-style: none;
    position: relative;
    height: 30px;
    }

    ul#cssmenu ul {
    margin: 0;
    border: 0 none;
    padding: 0;
    width: 160px;
    list-style: none;
    display: none;
    position: absolute;
    top: 30px;
    left: 0;
    }

    ul#cssmenu ul:after {
    clear: both;
    display: block;
    font: 1px/0px serif;
    content: ".";
    height: 0;
    visibility: hidden;
    }

    ul#cssmenu ul li {
    width: 150px;
    float: left;
    display: block !important;
    display: inline;
    }

    /* Main Menu */
    ul#cssmenu a {
    border: 0px;
    padding: 0 1px;
    float: none !important;
    float: left;
    display: block;
    background: #003366;
    color: #FFFFFF;
    font: bold 12px/20px Verdana, Arial;
    text-decoration: none;
    height: auto !important;
    height: 1%;
    }

    /* Main Menu Hover */
    ul#cssmenu a:hover,
    ul#cssmenu li:hover a,
    ul#cssmenu li.iehover a {
    background: #FFFFFF;
    color:#003366;
    border-top:#003366 1px solid;
    }

    /* Second Menu */
    ul#cssmenu li:hover li a,
    ul#cssmenu li.iehover li a {
    border-top: 2px solid #FFFFFF;
    float: none;
    background: #003366;
    color: #FFFFFF;
    }

    /* Second Menu Hover */
    ul#cssmenu li:hover li a:hover,
    ul#cssmenu li:hover li:hover a,
    ul#cssmenu li.iehover li a:hover,
    ul#cssmenu li.iehover li.iehover a {
    border-top: 2px solid #FFFFFF;
    background: #FFFFFF;
    color:#003366;
    border:#003366 1px solid;
    }

    ul#cssmenu ul ul {
    display: none;
    position: absolute;
    top: 0;
    left: 170px;
    }

    ul#cssmenu li:hover ul ul,
    ul#cssmenu li.iehover ul ul {
    display: none;
    }

    ul#cssmenu li:hover ul,
    ul#cssmenu ul li:hover ul,
    ul#cssmenu li.iehover ul,
    ul#cssmenu ul li.iehover ul {
    display: block;[/css]

    B JS:

    [js]// JavaScript Document
    function cssmenuhover()
    {
    if(!document.getElementById("cssmenu"))
    return;
    var lis = document.getElementById("cssmenu").getElementsByTagName("LI");
    for (var i=0;i<lis.length;i++)
    {
    lis.onmouseover=function(){this.className+=" iehover";}
    lis.onmouseout=function() {this.className=this.className.replace(new RegExp(" iehover\\b"), "");}
    }
    }
    if (window.attachEvent)
    window.attachEvent("onload", cssmenuhover);[/js][/css]
     
  2. runet

    runet Активный пользователь

    С нами с:
    6 май 2010
    Сообщения:
    1
    Симпатии:
    0
    [css]
    ul#cssmenu li {
    margin: 0;
    border: 0 none;
    padding: 0;
    float: left;
    display: inline;
    list-style: none;
    position: relative;
    height: 30px;
    }
    [/css] поставь высоту 100%[/u]
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    &nbsp; вместо пробелов и width: auto; а в чем проблема?
     
  4. Yadfewm

    Yadfewm Активный пользователь

    С нами с:
    20 июл 2009
    Сообщения:
    223
    Симпатии:
    0
    Tavadm
    при помощи JS определяем ширину у всех тагов (=D) <a> li a white-space nowrap , находим максимальную, прибавляем всякие margin padding к этой ширине - получаем ширину необходимую для данного меню (ul)

    ну вот ты администратор сайта, добавишь новый пункт меню состоящий из 30 слов и получишь ширину в 2000px, вот что ты будешь с ней делать?