O oposto de visibility: hidden
é visibility: visible
. Da mesma forma, existe algum oposto para display: none
?
Muitas pessoas ficam confusas ao descobrir como mostrar um elemento quando ele tem display: none
, pois não é tão claro quanto usar a visibility
propriedade.
Eu poderia apenas usar em visibility: hidden
vez de display: none
, mas não dá o mesmo efeito, por isso não vou com ele.
display
valores possíveis teria sido bom. (E isso é apenas a minha opinião é claro: talvez as pessoas realmente gostei que lista seja lá dentro.)Respostas:
display: none
não tem um literal oposto como ovisibility:hidden
faz.A
visibility
propriedade decide se um elemento é visível ou não. Portanto, possui dois estados (visible
ehidden
) opostos um ao outro.A
display
propriedade, no entanto, decide quais regras de layout um elemento seguirá. Existem vários tipos diferentes de regras de como elementos irá estabelecer-se fora em CSS, por isso existem vários valores diferentes (block
,inline
,inline-block
etc - veja a documentação para esses valores aqui ).display:none
remove completamente um elemento do layout da página, como se não estivesse lá.Todos os outros valores para
display
fazem com que o elemento faça parte da página; portanto, de certa forma, são todos opostosdisplay:none
.Mas não há um valor que seja o inverso direto
display:none
- assim como não há um penteado que seja o oposto de "careca".fonte
display: initial
na resposta automática excluída - para navegadores que implementam CSS2.1 é sinônimo dedisplay: inline
. Ele não redefinedisplay
o padrão do navegador para um determinado elemento - não é isso que "valor inicial" significa.display:none
" então você lê "assim como não há um estilo de cabelo que seja o oposto de careca " Uau mais 1, muito bem.Um verdadeiro oposto ao que
display: none
não existe (ainda).Mas
display: unset
é muito próximo e funciona na maioria dos casos.Do MDN (Mozilla Developer Network):
Observe também que
display: revert
está sendo desenvolvido atualmente. Veja MDN para detalhes.fonte
display: initial
?Ao alterar elemento de
display
em Javascript, em muitos casos, uma opção adequada para 'desfazer' o resultado deelement.style.display = "none"
éelement.style.display = ""
. Isso remove adisplay
declaração dostyle
atributo, revertendo o valor real dadisplay
propriedade para o valor definido na folha de estilo do documento (para o padrão do navegador, se não for redefinido em outro lugar). Mas a abordagem mais confiável é ter uma classe em CSS comoe adicionando / removendo esse nome de classe para / de
element.className
.fonte
.element { display: none }
(definido na CSS lib, por exemplo).element { display: '' !important }
, não funcionará. Você precisa usar.element { display: unset !important }
display:none
apenas em JavaScript. Obviamente, a string vazia não funcionará em CSS, pois é um valor inválido. No entanto,display: unset
você sugere que não restaurará, por exemplo, o padrãodisplay:block
para um<div>
ou o padrãodisplay:table-row
para um<tr>
, ele efetivamente transforma tudo emdisplay:inline
(assim comodisplay:initial
). Para restaurar o valor padrão do navegador para o elemento, existedisplay:revert
, mas não é bem suportado ( caniuse.com/#feat=css-revert-value ).você pode usar
Funciona normalmente .... É um pequeno hacking em css;)
fonte
display
propriedade, portanto é apenas ignorado e funciona como umaelement.style.display = ''
atribuição (veja minha resposta acima).display: chunk norris;
o mesmo efeito, com um pouco mais de chute..element { display: none }
(definido na CSS lib, por exemplo).element { display: normal !important }
, não funcionará. Você precisa usar.element { display: unset !important }
Eu uso
display:block;
funciona para mimfonte
block
, não é o que você deseja geralmente para uminline
elemento como,<span>
por exemplo.Como Paul explica, não há literalmente o oposto da exibição: nenhum em HTML, pois cada elemento tem uma exibição padrão diferente e você também pode alterar a exibição com uma classe ou estilo embutido etc.
No entanto, se você usar algo como jQuery, as funções show e hide se comportam como se houvesse o oposto do display none. Quando você oculta e mostra um elemento novamente, ele será exibido exatamente da mesma maneira que era antes de ser oculto. Eles fazem isso armazenando o valor antigo da propriedade display ao ocultar o elemento, para que, quando você o mostre novamente, ele seja exibido da mesma maneira que antes de ocultá-lo. https://github.com/jquery/jquery/blob/740e190223d19a114d5373758127285d14d6b71e/src/css.js#L180
Isso significa que, se você definir uma div, por exemplo, para exibir in-line ou bloco in-line e ocultá-la e mostrá-la novamente, será exibida novamente como exibição in-line ou bloco in-line, como era antes
roteiro:
Observe que a propriedade display da div permanecerá constante mesmo depois de ocultada (display: none) e mostrada novamente.
fonte
No caso de uma folha de estilo para impressão, eu uso o seguinte:
Usei isso quando precisei imprimir um formulário contendo valores e os campos de entrada eram difíceis de imprimir. Então, adicionei os valores envolvidos em uma tag span.print_only (div.print_only foi usado em outro lugar) e, em seguida, apliquei a classe .no_print aos campos de entrada. Então, na tela, você veria os campos de entrada e, quando impressos, apenas os valores. Se você quisesse ter uma ideia, poderia usar o JS para atualizar os valores nas tags span quando os campos foram atualizados, mas isso não foi necessário no meu caso. Talvez não seja a solução mais elegante, mas funcionou para mim!
fonte
Você pode usar display: block
Exemplo:
fonte
Eu enfrentei esse desafio ao criar um aplicativo em que queria uma tabela oculta para certos usuários, mas não para outros.
Inicialmente, eu o configurei como display: none, mas display: bloco em linha para os usuários que eu queria vê-lo, mas tive os problemas de formatação que você pode esperar (colunas em consolidação ou geralmente bagunçadas).
A maneira como trabalhei foi mostrar primeiro a tabela e depois exibir "none: none" para os usuários que eu não queria ver. Dessa forma, ele foi formatado normalmente, mas depois desapareceu conforme necessário.
Uma solução lateral, mas pode ajudar alguém!
fonte
O oposto de 'none' é 'flex' ao trabalhar com o reagir nativo.
fonte
visibilidade: oculto ocultará o elemento, mas o elemento é deles com DOM. E no caso de display: none, ele removerá o elemento do DOM.
Então você tem a opção para o elemento ocultar ou exibir. Mas uma vez que você o exclua (quero dizer, exibir nenhum), ele não terá um valor oposto claro. display possui vários valores como display: block, display: inline, display: inline-block e muitos outros. você pode conferir no W3C.
fonte
display
?A melhor resposta para
display: none
éou
fonte
display:normal
. Veja developer.mozilla.org/pt-BR/docs/Web/CSS/displayVocê pode usar isso
display:block;
e também adicionaroverflow:hidden;
fonte
display: block
não funciona bem em um<span>
ou um<td>
... e uma resposta anterior já foi mencionadadisplay: block
.overflow: hidden
. Por quê? Qual o sentido de acrescentar isso? Não tem nada a ver com desfazer adisplay: none
.O melhor "oposto" seria retorná-lo ao valor padrão, que é:
fonte