css переход непрозрачности исчезает фон
спросил
Изменено 9 месяцев назад
Просмотрено 320 тысяч раз
Я делаю переход
, где он становится прозрачным белым, когда пользователь наводит курсор на изображение.
Моя проблема в том, что мне нужно изменить цвет, к которому он исчезает, на черный. Я пробовал просто добавить фон: черный;
в класс который содержит переход
, но он к сожалению не работает, все равно переходит в белый прозрачный.
Код CSS, который я использую:
.hover:hover { непрозрачность: 0,2; } .item-увядание { фон: черный; непрозрачность: 0,8; переход: непрозрачность 0,25 с; -moz-transition: непрозрачность 0,25 с; -webkit-transition: непрозрачность 0,25 с; }
Наведите изображение, непрозрачность белого должна быть черной:/
it/100x100" />
- css
- фон
- непрозрачность
- переход
Оберните изображение элементом span
с черным фоном.
.img-обертка { отображение: встроенный блок; фон: #000; } .item-увядание { вертикальное выравнивание: сверху; переход: непрозрачность 0,3 с; непрозрачность: 1; } .item-fade:наведите { непрозрачность: 0,2; }
<диапазон>
0
Не переходит в «черный прозрачный» или «белый прозрачный». Он просто показывает, какой цвет находится «за» изображением, то есть , а не цвета фона изображения — этот цвет полностью скрыт изображением.
Если вы хотите, чтобы изображение стало черным, вам понадобится черный контейнер вокруг изображения. Что-то вроде:
.ctr { маржа: 0; заполнение: 0; цвет фона: черный; отображение: встроенный блок; }
и
.. />
http://jsfiddle.net/6xJQq/13/
.container { отображение: встроенный блок; отступ: 5px; /*включено заполнение, чтобы увидеть фон, когда размер изображения равен 100%*/ цвет фона: черный; непрозрачность: 1; } .контейнер:наведите { цвет фона: красный; } картинка { непрозрачность: 1; } изображение: наведите { непрозрачность: 0,7; } .переход { переход: все .25 с облегченным входом-выходом; -moz-transition: все .25 легко входят-выходят; -webkit-transition: все .25 легко входят-выходят; }
Обратите внимание, проблема не в белый
цвет. Это потому, что он прозрачный.
Когда элемент делается прозрачным, непрозрачность всех его дочерних элементов; альфа-фильтр в IE 6 7 и т. д. изменяется на новое значение.
Так что нельзя сказать, что он белый!
Вы можете поместить над ним элемент и изменить прозрачность этого элемента на 1
, изменив прозрачность изображения на . 2
или на что угодно.
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Переход непрозрачности CSS часто используется для создания постепенного появления и исчезновение эффекты. Хотя это отлично работает на первом взгляд, это также может быть причиной некоторых трудно обнаруживаемых ошибок с событиями мыши. Основная идея состоит в том, чтобы уменьшить непрозрачность элементов .
от 1 (что означает полную непрозрачность) до 0 (что означает полную прозрачность) в
для того, чтобы затухать элемент. И действительно элемент
с Это иллюстрирует следующий первый пример.
Второй пример теперь показывает проблему с этой техникой: Здесь вы видите обычную ссылку, которая, однако, имеет ту проблему, что она не реагировать на нажатие. (Если вы думаете, что этот пример немного построен, есть более реалистичный, но и более сложный пример ниже.)
Проблема в том, что элемент
Более реалистичный пример: всплывающее менюНиже показан более реалистичный пример всплывающего меню. При наведении курсора мыши на кнопку меню появляется меню. Меню появляется и исчезает с использованием перехода непрозрачности. Вы заметите, что ссылка под кнопкой меню не работает. Это вызвано моим меню, которое есть (хотя и полностью прозрачное из-за opacity:0 и, следовательно, невидимый) и получает щелчки мыши, предназначенные для ссылки.
Обходной путь: сочетание непрозрачности и видимости перехода CSSИдея решения этой проблемы заключается в использовании обоих переходов на непрозрачность и свойство видимости . Переход непрозрачности для визуальный эффект постепенного появления и исчезновения, а также видимость для также скрытие элемента для щелчков мыши. Обратите внимание, однако, что пока работает визуальный эффект затухания, элемент меню должен быть виден, иначе эффект будет не быть видимым. Таким образом, при исчезновении элемент должен стать видимым. сразу во время затухания он должен стать видимым только после прекращения перехода непрозрачности. Именно такое поведение указывается с использованием transition:visibility 1s . Подробное описание видимости перехода css и как сочетать это с визуальными эффектами, такими как непрозрачность и другие видят видимость перехода CSS статья.
ЗаключениеИспользование перехода css только по непрозрачности для затухания элемента приводит к проблеме что ссылки на выцветший элемент остаются активными, в то время как ссылки на закрытые элементы выцветшим элементом не работают. Мы привели примеры такого поведения и обходной путь, использующий как непрозрачность перехода css, так и видимость перехода css.
WebGL™ является товарным знаком Khronos Group Inc. |