Is there an opposite to display:none?

后端 未结 15 1611
夕颜
夕颜 2020-12-22 19:47

The opposite of visibility: hidden is visibility: visible. Similarly, is there any opposite for display: none?

Many people be

相关标签:
15条回答
  • 2020-12-22 19:56

    Like Paul explains there is no literal opposite of display: none in HTML as each element has a different default display and you can also change the display with a class or inline style etc.

    However if you use something like jQuery, their show and hide functions behave as if there was an opposite of display none. When you hide, and then show an element again, it will display in exactly the same manner it did before it was hidden. They do this by storing the old value of the display property on hiding of the element so that when you show it again it will display in the same way it did before you hid it. https://github.com/jquery/jquery/blob/740e190223d19a114d5373758127285d14d6b71e/src/css.js#L180

    This means that if you set a div for example to display inline, or inline-block and you hide it and then show it again, it will once again show as display inline or inline-block same as it was before

    <div style="display:inline" >hello</div>
    <div style="display:inline-block">hello2</div>
    <div style="display:table-cell" >hello3</div>
    

    script:

      $('a').click(function(){
            $('div').toggle();
        });
    

    Notice that the display property of the div will remain constant even after it was hidden (display:none) and shown again.

    0 讨论(0)
  • 2020-12-22 19:57

    When changing element's display in Javascript, in many cases a suitable option to 'undo' the result of element.style.display = "none" is element.style.display = "". This removes the display declaration from the style attribute, reverting the actual value of display property to the value set in the stylesheet for the document (to the browser default if not redefined elsewhere). But the more reliable approach is to have a class in CSS like

    .invisible { display: none; }
    

    and adding/removing this class name to/from element.className.

    0 讨论(0)
  • 2020-12-22 19:57

    I ran into this challenge when building an app where I wanted a table hidden for certain users but not for others.

    Initially I set it up as display:none but then display:inline-block for those users who I wanted to see it but I experienced the formatting issues you might expect (columns consolidating or generally messy).

    The way I worked around it was to show the table first and then do "display:none" for those users who I didn't want to see it. This way, it formatted normally but then disappeared as needed.

    Bit of a lateral solution but might help someone!

    0 讨论(0)
  • 2020-12-22 19:59

    display: none doesn’t have a literal opposite like visibility:hidden does.

    The visibility property decides whether an element is visible or not. It therefore has two states (visible and hidden), which are opposite to each other.

    The display property, however, decides what layout rules an element will follow. There are several different kinds of rules for how elements will lay themselves out in CSS, so there are several different values (block, inline, inline-block etc — see the documentation for these values here ).

    display:none removes an element from the page layout entirely, as if it wasn’t there.

    All other values for display cause the element to be a part of the page, so in a sense they’re all opposite to display:none.

    But there isn’t one value that’s the direct converse of display:none - just like there's no one hair style that's the opposite of "bald".

    0 讨论(0)
  • 2020-12-22 19:59

    opposite of 'none' is 'flex' while working with react native.

    0 讨论(0)
  • 2020-12-22 20:01

    The best "opposite" would be to return it to the default value which is:

    display: inline
    
    0 讨论(0)
提交回复
热议问题