Прозрачность: 0 имеет тот же эффект, что и видимость: скрытый

Если да, эффективно ли он обесценивает свойство visibility?

(Я понимаю, что Internet Explorer еще не поддерживает это свойство CSS2.)
Сравнение механизмов компоновки

См. также: В чем разница между видимостью: скрытой и отображаемой: none

Ответ 1

Вот компиляция проверенной информации из различных ответов.

Каждый из этих свойств CSS фактически уникален. В дополнение к тому, что элемент невидим, они имеют следующие дополнительные эффекты:

  • Сбрасывает пространство, которое элемент обычно занимает
  • Отвечает на события (например, нажмите, нажмите)
  • Участвует в taborder
                     collapse events taborder
opacity: 0              No     Yes     Yes
visibility: hidden      No     No      No
visibility: collapse    *      No      No
display: none          Yes     No      No

* Yes inside a table element, otherwise No.

Ответ 2

Нет.

Элементы с непрозрачностью создают новый контекст стекирования.

Кроме того, спецификация CSS не определяет это, но элементы с opacity:0 являются кликабельными, а элементы с visibility:hidden не являются.

Ответ 3

Нет, нет. Существует большая разница. Они похожи, потому что вы можете видеть через элемент, если видимость скрыта или непрозрачность равна 0, однако

непрозрачность: 0: вы не можете нажать на элементах, расположенных за ним.

видимость: скрытая: вы можете нажать на элементах, расположенных за ней.

Ответ 4

Я не уверен полностью, но вот как я просматриваю прозрачность браузера:

opacity: 0.6;
-moz-opacity: 0.6;
filter: alpha(opacity=60);

объекты с видимостью: скрытые все еще имеют форму, они просто arent видны. opacity zero elements все еще можно щелкнуть и отреагировать на другие события.

Ответ 5

Я не совсем уверен в этом, но я думаю, что читатели с экрана не читают то, что скрыто для видимости, но они могут читать вещи независимо от их непрозрачности.

Это единственное различие, о котором я могу думать.

Ответ 6

При создании пользовательского стиля, который влияет на элементы в contenteditable, я заметил, что если вы установите что-то в visibility: hidden, то входная каретка действительно не хочет взаимодействовать с ним. Например, если у вас

<div contenteditable><span style='visibility: hidden;'></span></div>

... тогда кажется, что если вы фокусируете этот div/span, вы не можете на самом деле вводить его. Принимая во внимание, что с opacity: 0, похоже, вы можете. Я не тестировал это широко, но решил, что стоит упомянуть об этом здесь, поскольку никто на этой странице не говорил о влиянии на ввод текста. Вероятно, это связано с тем, что упоминалось выше в событиях.

Ответ 7

То, что говорит Фил, верно.

IE поддерживает непрозрачность, хотя:

filter:alpha(opacity=0);

Ответ 8

Свойства имеют разные смысловые значения. В то время как семантический CSS звучит так, как будто это может быть глупо, как говорят другие пользователи, это влияет на такие устройства, как устройства чтения с экрана, где семантика влияет на доступность страницы.