@BLM21

Как поправить код CSS для подменю?

Уважаемые знатоки, доброго дня. Уделите внимание на досуге, пожалуйста. Есть две просьбы:

1) Как поправить код таким образом, чтобы всплывающие подпункты были по центру на одном уровне с кнопкой "Ссылка 1" ? На данный момент они смещаются вправо. Химичу параметрами margin, но пока получается криво, и, наверное, при замене "ссылка2" на реальное название пункта всё просто съедет, и придётся заново мучаться с margin. А хочется статики, которая не будет зависеть от переименования заголовка.

2) Можно ли этот элемент "Id-nav" переименовать на drop-menu или ещё какое-нибудь menu, но чтобы весь функционал и внешний вид остался, как сейчас? Очень понравился элемент этот, но хотелось бы, чтобы поисковики видели его, как menu.

Знаю, профи любят отвечать коротко, мол, замени на "это и это", но если будет ретранслированный готовый код, вообще круто было бы.
Перерыл кучу сайтов с кнопками меню, но все они ломают сайт при добавлении кода. А этот элемент красивый и ничего не ломает, но такой вот нюанс есть.
Признателен заранее всем неравнодушным не прошедшим мимо.

Уважаемые знатоки, доброго дня. Уделите внимание на досуге, пожалуйста. Есть две просьбы:

1) Как поправить код таким образом, чтобы всплывающие подпункты были по центру на одном уровне с кнопкой  "Ссылка 1" ? На данный момент они смещаются вправо. Химичу параметрами margin, но пока получается криво, и, наверное, при замене  "ссылка2" на реальное название пункта всё просто съедет, и придётся заново мучаться с margin. А хочется статики, которая не будет зависеть от переименования заголовка.

2) Можно ли этот элемент "Id-nav" переименовать на drop-menu или ещё какое-нибудь menu, но чтобы весь функционал и внешний вид остался, как сейчас? Очень понравился элемент этот, но хотелось бы, чтобы поисковики видели его, как menu.

Знаю, профи любят отвечать коротко, мол, замени на "это и это", но если будет ретранслированный готовый код, вообще круто было бы.
Перерыл кучу сайтов с кнопками меню, но все они ломают сайт при добавлении кода. А этот элемент красивый и ничего не ломает, но такой вот нюанс есть.
Признателен заранее всем неравнодушным не прошедшим мимо.

<ul id="nav">
 <li>
 <a class="direct-link" href="/">Ссылка 1</a>
        <ul>
                 <li><a href="/">Ссылка1</a></li>
                 <li><a href="/">Ссылка2</a></li>
</ul>
</li>
</ul>

<style>

#nav{
    display: table;
    margin: 0 auto;
    list-style:none;
    margin-bottom:10px;
    white-space:nowrap;
    position:relative;
}
#nav li{
    float:left;
    margin-right:10px;
    position:relative;
    display:block;
}
#nav li a{
    display:block;
    padding:5px;
    text-decoration:none;
    
    -moz-border-radius:2px;
    -webkit-border-radius:2px;
    border-radius:2px;
}
#nav li a:hover{
    color:#fff;
    background:#6b0c36;
    background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
    text-decoration:underline;
}
 
/*--- ВЫПАДАЮЩИЕ ПУНКТЫ ---*/
#nav ul{
    float:left;
    list-style:none;
    margin-bottom:10px;
    white-space:nowrap;
    position:absolute;
    margin:0 auto;
    opacity:0; /* Устанавливаем начальное состояние прозрачности */
    -webkit-transition:0.25s linear opacity; /* В Webkit выпадающие пункты будут проявляться */
}
#nav ul li{
    padding-top:1px; /* Вводим отступ между li чтобы создать иллюзию разделенных пунктов меню */
    float:none;
    background:url(dot.gif);
}
#nav ul a{
    white-space:nowrap; /* Останавливаем перенос текста и создаем многострочный выпадающий пункт */
    display:block;
}
#nav li:hover ul{ /* Выводим выпадающий пункт при наведении курсора */
    left:0; /* Приносим его обратно на экран, когда нужно */
    opacity:1; /* Делаем непрозрачным */
}
#nav li:hover a{ /* Устанавливаем стили для верхнего уровня, когда выводится выпадающий список */
    background:#6b0c36;
    background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
    text-decoration:underline;
}
#nav li:hover ul a{ /* Изменяем некоторые стили верхнего уровня при выводе выпадающего пункта */
    text-decoration:none;
    -webkit-transition:-webkit-transform 0.075s linear;
}
#nav li:hover ul li a:hover{ /* Устанавливаем стили для выпадающих пунктов, когда курсор наводится на конкретный пункт */
    background:#333;
    background:rgba(51,51,51,0.75); /* Будет полупрозрачным */
    text-decoration:underline;
    -moz-transform:scale(1.05);
    -webkit-transform:scale(1.05);
}

</style>




  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
@BLM21 Автор вопроса
Сделал сам. Забирайте, пользуйтесь красивым готовым элементом, список которого можно увеличить запросто новыми ul ниже.
Теперь попробую переименовать в меню.

<ul id="nav">
 <li>
 <a class="direct-link" href="/">Ссылка 1</a>
        <ul>
                 <li><a href="/">Ссылка1</a></li>
                 <li><a href="/">Ссылка2</a></li>
        </ul>

 </li>
</ul>

<style>

#nav{
    display: table;
    margin: 0 auto;
    list-style:none;
    margin-bottom:10px;
    white-space:nowrap;
    position:relative;
}

#nav li{
    float:left;
    margin-right:10px;
    position:relative;
    display:block;
}
ul {
    /* Убираю маркеры у списка*/
    list-style: none;
    /* Делаю элементы блочными. */
    display: block;
    /* Убираю отступы. */
    margin: 0;
    /* Убираю еще отступы! */
    padding:0px;
}
ul:after {
    /* Делаю элементы блочными. */
    display: block;
    /* Убираю выравнивание. */
    float: none;
    content: ' ';
    clear: both;
}
#nav li a{
    display:block;
    padding:5px;
    text-decoration:none;
    
    -moz-border-radius:2px;
    -webkit-border-radius:2px;
    border-radius:2px;
}
#nav li a:hover{
    color:#fff;
    background:#6b0c36;
    background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
    text-decoration:underline;
}
 
/*--- ВЫПАДАЮЩИЕ ПУНКТЫ ---*/
#nav ul{
    list-style:none;
    position:absolute;
    left:-9999px; /* Скрываем за экраном, когда не нужно (данный метод лучше, чем display:none;) */
    opacity:0; /* Устанавливаем начальное состояние прозрачности */
    -webkit-transition:0.25s linear opacity; /* В Webkit выпадающие пункты будут проявляться */
}
#nav ul li{
    padding-top:1px; /* Вводим отступ между li чтобы создать иллюзию разделенных пунктов меню */
    float:none;
    background:url(dot.gif);
}
#nav ul a{
    white-space:nowrap; /* Останавливаем перенос текста и создаем многострочный выпадающий пункт */
    display:block;
}
#nav li:hover ul{ /* Выводим выпадающий пункт при наведении курсора */
    left:0; /* Приносим его обратно на экран, когда нужно */
    opacity:1; /* Делаем непрозрачным */
}
#nav li:hover a{ /* Устанавливаем стили для верхнего уровня, когда выводится выпадающий список */
    background:#6b0c36;
    background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
    text-decoration:underline;
}
#nav li:hover ul a{ /* Изменяем некоторые стили верхнего уровня при выводе выпадающего пункта */
    text-decoration:none;
    -webkit-transition:-webkit-transform 0.075s linear;
}
#nav li:hover ul li a:hover{ /* Устанавливаем стили для выпадающих пунктов, когда курсор наводится на конкретный пункт */
    background:#333;
    background:rgba(51,51,51,0.75); /* Будет полупрозрачным */
    text-decoration:underline;
    -moz-transform:scale(1.05);
    -webkit-transform:scale(1.05);
}

</style>


И вот над меню постарался , держите код красивого меню, в которое можете подставлять просто свои заголовки и ссылки .

<ul class="menu-main">
 <li>
 <a class="direct-link" href="/">Ссылка 1</a>
        <ul>
                 <li><a href="/">Ссылка1</a></li>
                 <li><a href="/">Ссылка2</a></li>
        </ul>

 </li>
</ul>

<style>

.menu-main {
    display: table;
    margin: 0 auto;
    list-style:none;
    margin-bottom:10px;
    white-space:nowrap;
    position:relative;
}

.menu-main li{
    float:left;
    margin-right:10px;
    position:relative;
    display:block;
}
ul {
    /* Убираю маркеры у списка*/
    list-style: none;
    /* Делаю элементы блочными. */
    display: block;
    /* Убираю отступы. */
    margin: 0;
    /* Убираю еще отступы! */
    padding:0px;
}
ul:after {
    /* Делаю элементы блочными. */
    display: block;
    /* Убираю выравнивание. */
    float: none;
    content: ' ';
    clear: both;
}
.menu-main li a{
    display:block;
    padding:5px;
    text-decoration:none;
    
    -moz-border-radius:2px;
    -webkit-border-radius:2px;
    border-radius:2px;
}
.menu-main li a:hover{
    color:#fff;
    background:#6b0c36;
    background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
    text-decoration:underline;
}
 
/*--- ВЫПАДАЮЩИЕ ПУНКТЫ ---*/
.menu-main ul{
    list-style:none;
    position:absolute;
    left:-9999px; /* Скрываем за экраном, когда не нужно (данный метод лучше, чем display:none;) */
    opacity:0; /* Устанавливаем начальное состояние прозрачности */
    -webkit-transition:0.25s linear opacity; /* В Webkit выпадающие пункты будут проявляться */
}
.menu-main ul li{
    padding-top:1px; /* Вводим отступ между li чтобы создать иллюзию разделенных пунктов меню */
    float:none;
    background:url(dot.gif);
}
.menu-main ul a{
    white-space:nowrap; /* Останавливаем перенос текста и создаем многострочный выпадающий пункт */
    display:block;
}
.menu-main li:hover ul{ /* Выводим выпадающий пункт при наведении курсора */
    left:0; /* Приносим его обратно на экран, когда нужно */
    opacity:1; /* Делаем непрозрачным */
}
.menu-main li:hover a{ /* Устанавливаем стили для верхнего уровня, когда выводится выпадающий список */
    background:#6b0c36;
    background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
    text-decoration:underline;
}
.menu-main li:hover ul a{ /* Изменяем некоторые стили верхнего уровня при выводе выпадающего пункта */
    text-decoration:none;
    -webkit-transition:-webkit-transform 0.075s linear;
}
.menu-main li:hover ul li a:hover{ /* Устанавливаем стили для выпадающих пунктов, когда курсор наводится на конкретный пункт */
    background:#333;
    background:rgba(51,51,51,0.75); /* Будет полупрозрачным */
    text-decoration:underline;
    -moz-transform:scale(1.05);
    -webkit-transform:scale(1.05);
}

</style>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы