Установите непрозрачность в меню, но сохраните текст непрозрачным в CSS

StackOverflow https://stackoverflow.com/questions/3526865

Вопрос

Как я могу создать меню, которое прозрачна только его фон? Текст должен оставаться непрозрачным (непрозрачность: 1)

Если я настрою

li:hover {
    opacity: 0.5
}

Весь элемент списка становится прозрачным. Как мне это исправить?

Это было полезно?

Решение

В CSS3 есть новое значение, называемое «RGBA», которое позволяет вам использовать прозрачный цвет в качестве цвета фона. Например:

li:hover {
    background-color: rgba(255, 255, 255, 0.5);
}

Я совершенно уверен, что должен работать, хотя я только что написал код на месте, так что это не может. Это, однако, придаст вашему меню оттенок белого цвета. Если вы хотите прочитать больше о RGBA, идите сюда: http://css-tricks.com/rgba-browser-support/

Другие советы

Вам нужно использовать либо прозрачное изображение PNG, либо rgba Цвет значения, для <li>Фон, например:

li:hover {
    background-color: rgba(0, 0, 0, 0.5);
}

Или:

li:hover {
    background: url(a-nice-semi-transparent-png-image.png);

    /* Supplying just the image file here will make the browser repeat the image
    file vertically and horizontally, thus taking up all the space, just like a 
    colour would */
}

Я не думаю, что это возможно, попробуйте этот пример: http://jsfiddle.net/578sv/

Вы не можете. Уровень прозрачности передается всем элементам ребенка.

Ваши варианты:

  • Поместите еще один элемент на вершину li, возможно, используя position: absolute, это имеет нормальную настройку непрозрачности

  • Используйте файл PNG с Alpha Transparency, чтобы создать эффект непрозрачности (потребуются обходные пути для работы в IE6)

  • Используйте новый rgba Свойство цвета, как показано @hatkirby, если вы можете жить с неполной поддержкой браузера

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top