@BLM21

Как выровнить содержимое выпадающих атрибутов li по центру относительного главного li?

Приветствую уважаемых знатоков .
Содержимое выпадающих атрибутов li расположено вертикально друг под другом, так и задумано.
Но выпадающие атрибуты li берут начало от левого края "главного li". Как расположить атрибуты li по центру, при этом ничего не сломав.

Мне удалась центровка, но с дефектом: вся выпадающая область атрибутов li отображается фоном "главного li" даже без наведения курсора на меню, то есть огромный пустой прямоугольник. Необходимо добиться результата без дефекта.

У кого есть желание поучаствовать на досуге над этим ребусом?

<div>
<ul id="main-menu" class="menumain">
	<li><a class="direct-link" href="HTTPS" target="_blank"> САМЫЙ ГЛАВНЫЙ ЛИ ГЛАВНЫЙ ЛИ ГЛАВНЫЙ ЛИ ГЛАВНЫЙ ЛИ САМЫЙ</a>
	<ul>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
		<li><a href="HTTPS" target="_blank">ВЫРОВНИТЬ ЭТО ПО ЦЕНТРУ ОТНОСИТЕЛЬНО ГЛАВНОГО ЛИ</a></li>
	</ul>
</ul>
</div>


/* =menumain
-------------------------------------------------------------- */

.menumain {
    display: table;
    list-style:none;
    text-align: center;
    margin-bottom:10px;
    white-space:nowrap;
    position:relative;
    margin: 0 auto;
    font-size:14px;
    z-index: 100;
    font-size: 13pt;

    color:#fff;
    background:#263238;
    background:rgba(38, 50, 56,0.25); /* Выглядит полупрозрачным */
}

.menumain li {
    float:left;
    position:relative;
    display:block;
    text-align: center;
}

.menumain li a {
    display:block;
    padding:5px;
    text-decoration:none;
    color: rgba(250, 235, 215);
    
    -moz-border-radius:2px;
    -webkit-border-radius:2px;
    border-radius:2px;
}
.menumain li a:hover {
    color:#fff;
    background:#00FF7F;
    background:rgba(0, 255, 127,0.75); /* Выглядит полупрозрачным */
}
 
/*--- ВЫПАДАЮЩИЕ ПУНКТЫ ---*/
.menumain ul {
    position: absolute;
    /* Убираю маркеры у списка*/
    list-style: none;
    /* Делаю элементы блочными. */
    display: block;
    /* Убираю отступы. */
    margin: 0;
    /* Убираю еще отступы! */
    padding:0px;
    left:-9999px; /* Скрываем за экраном, когда не нужно (данный метод лучше, чем display:none;) */
    opacity:0; /* Устанавливаем начальное состояние прозрачности */
    -webkit-transition:0.25s linear opacity; /* В Webkit выпадающие пункты будут проявляться */
}

.menumain ul li {
    padding-top:1px; /* Вводим отступ между li чтобы создать иллюзию разделенных пунктов меню */
    float:none;
    background:url(dot.gif);
}
.menumain ul a {
    white-space:nowrap; /* Останавливаем перенос текста и создаем многострочный выпадающий пункт */
    display:block;
}
.menumain li:hover ul { /* Выводим выпадающий пункт при наведении курсора */
    left:0; /* Приносим его обратно на экран, когда нужно */
    opacity:1; /* Делаем непрозрачным */
}
.menumain li:hover a { /* Устанавливаем стили для верхнего уровня, когда выводится выпадающий список */
    background:#00FF7F;
    border: 2px solid #FFFFFF;
    background:rgba(38, 50, 56,0.96); /* Выглядит полупрозрачным */
}
.menumain li:hover ul a { /* Изменяем некоторые стили верхнего уровня при выводе выпадающего пункта */
    text-decoration:none;
    -webkit-transition:-webkit-transform 0.075s linear;
}
.menumain li:hover ul li a:hover { /* Устанавливаем стили для выпадающих пунктов, когда курсор наводится на конкретный пункт */
    color: rgba(25, 25, 112);
    background:#00FF7F;
    background:rgba(0, 255, 127,0.96); /* Будет полупрозрачным */
    -moz-transform:scale(1.05);
    -webkit-transform:scale(1.05);
}

-------------------------------------------------------------- */
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
Pavel-ww
@Pavel-ww
Какой же это ребус? Один из многих способов:
Отсюда убрать left: 0;
.menumain li:hover ul {
    /* left: 0; */
    opacity: 1;
    height: auto;
    overflow: visible;
}

.menumain ul {
	left: 50%;
	transform: translateX(-50%);
	height: 0;
	overflow: hidden;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы