How do you create a hidden div that doesn't create a line break or horizontal space?
I want to have a hidden checkbox that doesn't take up any space on the screen.
If I have this:
<div id="divCheckbox" style="visibility: hidden">
I don't see the checkbox, but it still creates a new line.
If I have this:
<div id="divCheckbox" style="visibility: hidden; display:inline;">
it no longer creates a new line, but it takes up horizontal space on the screen.
Is there a way to have a hidden div that takes up no room (vertical or horizontal?
Use display:none;
<div id="divCheckbox" style="display: none;">
visibility: hidden
hides the element, but it still takes up space in the layout.display: none
removes the element completely from the document, it doesn't take up any space.
Since the release of HTML5 one can now simply do:
<div hidden>This div is hidden</div>
Note: This is not supported by some old browsers, most notably IE < 11.
Hidden Attribute Documentation (MDN,W3C)
Use style="display: none;"
. Also, you probably don't need to have the DIV, just setting the style to display: none
on the checkbox would probably be sufficient.
Since you should focus on usability and generalities in CSS, rather than use an id to point to a specific layout element (which results in huge or multiple css files) you should probably instead use a true class in your linked .css file:
.hidden {
visibility: hidden;
display: none;
}
or for the minimalist:
.hidden {
display: none;
}
Now you can simply apply it via:
<div class="hidden"> content </div>