Em caso afirmativo, depreciar efetivamente a visibility
propriedade?
(Percebo que o Internet Explorer ainda não suporta essa propriedade CSS2.)
Comparações de mecanismos de layout
Consulte também: Qual é a diferença entre visibilidade: oculto e exibição: nenhum
Respostas:
Aqui está uma compilação de informações verificadas das várias respostas.
Cada uma dessas propriedades CSS é exclusiva. Além de tornar um elemento não visível, eles têm os seguintes efeitos adicionais:
fonte
visibility:hidden
, será necessário usáopacity: 0
-lo para detectar o clique do mouse.opacity:0
oudisplay:none
, mas se você usar,visibility: hidden
pode tornar os filhos visíveis comvisibility: visible
Não.
Elementos com opacidade criam um novo contexto de empilhamento.
Além disso, a especificação CSS não define isso, mas os elementos com
opacity:0
são clicáveis e os elementos comvisibility:hidden
não.fonte
Não, não tem. Há uma grande diferença. Eles são semelhantes porque você pode ver através do elemento se a visibilidade está oculta ou a opacidade é 0, no entanto
opacidade: 0 : você não pode clicar nos elementos por trás dele.
visibilidade: oculto : você pode clicar nos elementos por trás dele.
fonte
Existem muitas diferenças entre
visibility
eopacity
. A maioria das respostas menciona algumas diferenças, mas aqui está uma lista completa.opacidade não herda, enquanto visibilidade não
a opacidade é animadora, enquanto a visibilidade não.
(Bem, tecnicamente é, mas simplesmente não há comportamento definido para, por exemplo, "37% colapsado e 63% oculto", portanto, você pode considerar isso como não-animador.)
Usando a opacidade, você não pode tornar um elemento filho mais opaco que seu pai. Por exemplo, se você tem um ap com cor: preto e opacidade: 0,5, você não pode deixar nenhum de seus filhos totalmente preto. Os valores válidos para a opacidade estão entre 0 e 1, e este exemplo exigiria 2!
Consequentemente, de acordo com o comentário de Martin , você pode ter um filho visível (com visibilidade: visível) em um pai invisível (com visibilidade: oculto). Isso é impossível com opacidade; se um pai tiver opacidade: 0; seus filhos são sempre invisíveis.
A resposta de Kornel menciona que valores de opacidade inferiores a 1 criam seu próprio contexto de empilhamento; nenhum valor para a visibilidade faz.
(Gostaria de poder pensar em uma maneira de demonstrar isso, mas não consigo pensar em nenhum meio de mostrar o contexto de empilhamento de uma visibilidade: elemento oculto.)
De acordo com a resposta de philnash , elementos com opacidade: 0 ainda são lidos pelos leitores de tela, enquanto visíveis: elementos ocultos não são.
De acordo com a resposta de Chris Noe , a visibilidade tem mais opções (como recolhimento) e os elementos que não são visíveis não respondem mais a cliques e não podem ser tabulados.
(Tornando este um wiki da comunidade, pois não seria justo pedir emprestado as respostas existentes.)
fonte
Não tenho muita certeza disso, mas acho que os leitores de tela não leem coisas que estão definidas com visibilidade oculta, mas podem ler as coisas independentemente de sua opacidade.
Essa é a única diferença que consigo pensar.
fonte
Não tenho muita certeza, mas é assim que eu cruzo a transparência do navegador:
objetos com Visibilidade: ocultos ainda têm forma, apenas não são visíveis. os elementos de opacidade zero ainda podem ser clicados e reagir a outros eventos.
fonte
Ao criar um estilo de usuário que afeta elementos em a
contenteditable
, notei que, se você definir algo paravisibility: hidden
, o cursor de entrada realmente não deseja interagir com ele. Por exemplo, se você tiver... então parece que se você focar esse div / span, não poderá digitar. Considerando que com
opacity: 0
isso parece que você pode. Eu não testei isso extensivamente, mas achei que valeria a pena mencionar isso aqui, já que ninguém mais nesta página falou sobre os efeitos na entrada de texto. Isso parece possivelmente relacionado ao material dos eventos mencionados acima.fonte
O que Phil diz é verdade.
O IE suporta a opacidade:
fonte
As propriedades têm significados semânticos diferentes . Embora o CSS semântico pareça tolo, como outros usuários mencionaram, isso afeta dispositivos como leitores de tela - onde a semântica afeta a acessibilidade de uma página.
fonte