Как я могу заставить работать box-shadow с добавленными полями?

0

Когда я добавляю маржу, он добавляет 5px вправо, как я ожидаю, но это создает проблемы с моей тенью. Я хочу, чтобы ящик-тень мог покрывать это пространство (пустое пространство), созданное полями. Есть ли для этого работа? Очевидно, если у вас нет полей, то коробка-тень выглядит фантастически.

Вот мой CSS

    #horizontalNav{
        margin: 0;
        padding: 0;
    }

    #horizontalNav ul{
        margin: 0;
        padding: 0;
        box-shadow: 5px 5px 10px #888888;


    }

    #horizontalNav ul li{
        margin-right: 5px;  /* Make this margin a 0 to see what it looks like without margin added */
        padding: 0;
        list-style: none;
        position: relative;
        float: left;

        background: linear-gradient(to bottom right, rgba(181,147,38,0.1), rgba(181,125,22,1));

    }

    #horizontalNav ul li a{
        text-align: center;
        width: 150px;
        height: 30px;
        display: block;
        color: white;
        border: 1px solid black;
        text-decoration: none;
        text-shadow: 1px 1px 1px black;
    }

    #horizontalNav ul ul{
        position: absolute;
        visibility: hidden;
        top: 32px;
    }

    #horizontalNav ul li:hover ul{
        visibility: visible;
    }

    #horizontalNav ul li:hover{

        background: linear-gradient(to bottom right, rgba(167,120,38,0.1), rgba(167,136,42,1));  
    }

    #horizontalNav ul li:hover ul li a:hover{
        background: linear-gradient(to bottom right, rgba(180,105,45,0.1), rgba(180,135,15,1));
    }

    #horizontalNav ul li a:hover{
        color: black;
    }

    #horizontalNav ul li ul li a:hover{
        color: #120801;
    }

Вот мой HTML

<div id="wrapper">
       <div id="horizontalNav">
         <ul>
            <li><a href="#">Home</a>
                <ul>
                    <li><a href="#">Home Sub 1</a></li>
                    <li><a href="#">Home Sub 1</a></li>
                    <li><a href="#">Home Sub 1</a></li>
                    <li><a href="#">Home Sub 1</a></li>
                    <li><a href="#">Home Sub 1</a></li>
                </ul>
            </li>
         </ul>
       </div> 
</div>
  • 0
    Какова цель этих 5px полей?
  • 0
    Цель добавления полей в 5px была бы, если бы я располагал свои пункты в списке меню. Чтобы понять, что я имею в виду, вы можете скопировать и вставить еще одну копию моего HTML-кода из первого тега ul в последний тег ul и вставить его перед первым закрывающим тегом div.
Показать ещё 2 комментария
Теги:

2 ответа

1
Лучший ответ

Если вы не хотите, чтобы тень ящика на ul, то попробуйте поместить тень на другой элемент. Фактическая ссылка, похоже, достигает того, чего вы хотите, но затем захватывает ссылку верхнего уровня, поэтому вам может потребоваться настроить еще более конкретную задачу.

#horizontalNav ul ul a {
    box-shadow: 5px 5px 10px #888888;
}

На самом деле... это не лучший элемент, чтобы добавить его тоже. Вот урезанная скрипка с полным ответом. Я также призываю вас видеть, как давать правильные классы элементов (кулак ul) делает вещи более читаемыми.

jsFiddle

  • 0
    Спасибо, странно, как иногда что-то простое, это то, что люди (я) упускают из виду.
  • 0
    Это путь CSS. хаха - эй, на самом деле, там есть тени, которых не должно быть. Я добавляю новую скрипку в ответ.
1

почему вы добавляете margin-right на 5px, это кажется бесполезным. Для пространства вы должны добавить padding-right на 5px;

  • 0
    ОП имеет несколько пунктов меню верхнего уровня, но просто не включает этот код. Поля имеют смысл.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню