可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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?
回答1:
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.
回答2:
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)
回答3:
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.
回答4:
In addition to CMS´ answer you may want to consider putting the style in an external stylesheet and assign the style to the id, like this:
#divCheckbox {
display: none;
}
回答5:
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>
回答6:
Consider using <span>
to isolate small segments of markup to be styled without breaking up layout. This would seem to be more idiomatic than trying to force a <div>
not to display itself--if in fact the checkbox itself cannot be styled in the way you want.
回答7:
Show / hide by mouse click:
<script language="javascript">
function toggle() {
var ele = document.getElementById("toggleText");
var text = document.getElementById("displayText");
if (ele.style.display == "block") {
ele.style.display = "none";
text.innerHTML = "show";
}
else {
ele.style.display = "block";
text.innerHTML = "hide";
}
}
</script>
<a id="displayText" href="javascript:toggle();">show</a> <== click Here
<div id="toggleText" style="display: none"><h1>peek-a-boo</h1></div>
Source: Here
回答8:
To prevent the checkbox from taking up any space without actually removing it from the DOM, use hidden
.
<div hidden id="divCheckbox">
To prevent the checkbox from taking up any space and also removing it from the DOM, use display: none
.
<div id="divCheckbox" style="display:none">
回答9:
If you want to hide the element visually only, but keep it in the html, you can use:
<div style='visibility: hidden; overflow:hidden; height: 0; width: 0;'>
[content]
</div>
Or
<div style='visibility: hidden; overflow:hidden; position: absolute;'>
[content]
</div>
display: none
will remove the element completely from the html, so it may break some functionalities if you need to access something inside the hidden element.