Выравнивание не работает для всех пунктов подменю - PullRequest
1 голос
/ 10 апреля 2019

Элементы равномерно распределены, чтобы сгибать контейнеры во всех меню, кроме вкладки китайских календарей, я не понимаю, почему. Они были выровнены идеально, но когда я добавил ссылки на элементы подменю, они распределились случайным образом. Я почти уверен, что мне нужно добавить что-то в {}, чтобы исправить это, но я пробовал следующее, но не исправил:

  • Пробовал стирать ссылки. Без исправления.
  • Попытка копирования кода из подменю в {} в CSS, усугубляет проблему. enter image description here
* {
    font-family: arial, sans-serif; 
    box-sizing: border-box;}

html, body {
    margin: 0;
    padding: 0;
}

a {
    text-decoration: none;
    color: black;
}

.nav {
    position:fixed; 
    top:0; 
    left:0;
    background-color: rgba(255,255,255,.8);
    border-radius: 0px;
    border: none;
    width: 100%;
    margin: 0;
    padding: 25px 0;
    flex-direction: row;
    display: flex;
    align-items: center;
    justify-content: space-evenly;
}

.item {
    color: black;
    font-weight: bold;
    text-transform: uppercase;
}

.submenu {
    display: none;
    flex-wrap: wrap;
    align-items: center;
    align-text: center;
    position: absolute;
    padding-top: 107px;
    padding: 10px;
    left: 0;
    right: 0;
    text-transform: uppercase;
    z-index: 1;
    background-color: #2F4F4F;
    color: white;
    justify-content: space-evenly;
}

.submenu li {
    margin-left: 6%;
    width: 19%;
    padding: 5px;

}

.item.has-children:hover .submenu {
    display: flex;
    align-items: center;
    flex-direction: row;
    justify-content: space-evenly;
    flex-wrap: wrap;
    flex: 1 1 calc(25% - 80px);
    color: black;
    background-color: rgba(255,255,255,.8);
}

ul {
    list-style: none;
    padding: 0;
}
<nav>
    <ul class="nav">
        <li class="item">
            <a href="../index.html">
                <img src="../Images/Navigation/Intak Logo 25px High.png" alt="Home" />
            </a>
        </li>
        <li class="item has-children" style="color:#4D4D4D;">Printing
            <ul class="submenu">
                <li>Labels & Stickers</li>
                <li>Banners</li>
                <li>A-Frame</li>
                <li>Menu Boards</li>
                <li>Takeout Menus</li>
                <li>Business Cards</li>
                <li>Dine-In Menus</li>
                <li>Posters</li>
                <li>Envelopes</li>
                <li>Chinese Wedding Cards</li>
                <li>Flyers</li>
                <li>Letterheads</li>
                <li>Brochures</li>
                <li>Vinyl</li>
                <li>NCR Forms</li>
                <li>Catalogues</li>
            </ul>
        </li>
        <li class="item has-children">Graphic Design
            <ul class="submenu">
                <li>Logo Design</li>
                <li>Ads/Flyers/Promotions</li>
                <li style="text-align: center;">Menu Boards<br>
                    (Digital & Boards)</li>
                <li style="text-align: center;">Restaurant Menus<br>
                    (Takeout & Dine-In)</li>
            </ul>
        </li>
        <li class="item has-children">Chinese Calendars
            <ul class="submenu">
                <li><a href="Calendars/Cane Wallscroll Calendars.html">Cane Wallscroll Calendars</a></li>
                <li><a href="Calendars/Wall Calendars.html">Wall Calendars</a></li>
                <li><a href="Calendars/Mini Calendars.html">Mini Calendars</a></li>
                <li><a href="Calendars/Desk Calendars.html">Desk Calendars</a></li>
                <li><a href="Calendars/Special Desk Calendars.html">Special Desk Calendars</a></li>
                <li><a href="Calendars/Red Packet.html">Packet Calendars</a></li>
                <li><a href="Calendars/More.html">More Calendars</a></li>
            </ul>
        </li>
        <li class="item">FAQS</li>
        <li class="item">Contact Us</li>
    </ul>
</nav>

Ожидаемые результаты - все элементы подменю nav должны быть выровнены

1 Ответ

1 голос
/ 10 апреля 2019

Вы просто должны изменить justify-content: space-evenly; на justify-content: left; для стиля .item.has-children:hover .submenu.

Стиль подменю должен быть таким:

.item.has-children:hover .submenu {
    display: flex;
    align-items: center;
    flex-direction: row;
    justify-content: left;
    flex-wrap: wrap;
    flex: 1 1 calc(25% - 80px);
    color: black;
    background-color: rgba(255,255,255,.8);
}

Что касается подменю китайского календаря, то в нем только 7 элементов, в результате чего в первом ряду 4, а во втором - 3, поэтому они выглядят так, как будто они не выровнены, поскольку стиль space-evenly заставить их быть в центре с ровным пространством.

Не имеет отношения к ссылкам.

Если установить их влево, это предотвратит спутывание пробела слева с позицией 2-го ряда.

До и после (с красной рамкой, визуализирующей прямоугольники)

justify-content: space-evenly; before

justify-content: left; after

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...