Vlastnost display
je nejdůležitější vlastností CSS pro ovládání rozvržení.
Vlastnost display
určuje, zda/jak je prvek zobrazen.
Každý prvek HTML má výchozí hodnotu zobrazení v závislosti na typu prvku to je. Výchozí zobrazená hodnota pro většinu prvků je blok
nebo v řádku
.
Click to show panel
This panel contains a <div> element, which is hidden by default (display: none
).
It is styled with CSS, and we use JavaScript to show it (change it to (display: block
).
Prvek na úrovni bloku vždy začíná na novém řádku a zabírá celou dostupnou šířku (natáhne se doleva a doprava, jak jen to jde).
Příklady prvků na úrovni bloku:
<div> <h1> - <h6> <p> <form> <header> <footer> <section>
Vložený prvek nezačíná na novém řádku a zabírá pouze nezbytnou šířku.
Toto je vložený <span> prvek uvnitř odstavce.
Příklady vložených prvků:
<span> <a> <img>
Zobrazení: žádné;
display: none;
se běžně používá ke skrytí v JavaScriptu a zobrazovat prvky bez jejich mazání a opětovného vytváření. Podívejte se na naše poslední příklad na této stránce, pokud chcete vědět, jak toho lze dosáhnout.
Prvek <script>
používá display: none;
jako výchozí.
Jak již bylo zmíněno, každý prvek má výchozí zobrazovanou hodnotu. Nicméně můžete toto přepsat.
Změna vloženého prvku na prvek bloku nebo naopak může být užitečná aby stránka vypadala specifickým způsobem a stále dodržovala webové standardy.
Běžným příkladem je vytváření vložených prvků <li>
pro horizontální nabídky:
li {
display: inline;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
li {
display: inline;
}
</style>
</head>
<body>
<p>Display a list of links as a horizontal menu:</p>
<ul>
<li><a href="/html/default.asp" target="_blank">HTML</a></li>
<li><a href="/css/default.asp" target="_blank">CSS</a></li>
<li><a href="/js/default.asp" target="_blank">JavaScript</a></li>
</ul>
</body>
</html>
Poznámka: Nastavení vlastnosti zobrazení prvku změní pouze způsob zobrazení prvku, NE o jaký druh prvku se jedná. Vložený prvek s display: block;
tedy není povolen aby v něm byly další prvky bloku.
Následující příklad zobrazuje prvky <span> jako prvky bloku:
span {
display: block;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
span {
display: block;
}
</style>
</head>
<body>
<h1>Display span elements as block elements</h1>
<span>A display property with</span> <span>a value of "block" results in</span> <span>a line break between each span elements.</span>
</body>
</html>
Následující příklad zobrazuje prvky <a> jako prvky bloku:
a {
display: block;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
a {
display: block;
}
</style>
</head>
<body>
<h1>Display links as block elements</h1>
<a href="/html/default.asp" target="_blank">HTML</a>
<a href="/css/default.asp" target="_blank">CSS</a>
<a href="/js/default.asp" target="_blank">JavaScript</a>
</body>
</html>
style="wrap">display:none
visibility:hidden
Reset
Skrytí prvku lze provést nastavením vlastnosti display
na žádné
. Prvek bude skrytý a stránka se zobrazí, jako by nebyl tam:
h1.hidden {
display: none;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
h1.hidden {
display: none;
}
</style>
</head>
<body>
<h1>This is a visible heading</h1>
<h1 class="hidden">This is a hidden heading</h1>
<p>Notice that the h1 element with display: none; does not take up any space.</p>
</body>
</html>
visibility:hidden;
také skryje prvek.
Prvek však bude zabírat stále stejný prostor jako dříve. Prvek bude skrytý, ale stále ovlivní rozvržení:
h1.hidden {
visibility: hidden;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
h1.hidden {
visibility: hidden;
}
</style>
</head>
<body>
<h1>This is a visible heading</h1>
<h1 class="hidden">This is a hidden heading</h1>
<p>Notice that the hidden heading still takes up space.</p>
</body>
</html>
Tento příklad ukazuje display: none; versus viditelnost: skrytý;
Rozdíly mezi zobrazením: žádné; a viditelnost: skrytý;
<!DOCTYPE html>
<html>
<head>
<style>
.imgbox {
float: left;
text-align: center;
width: 120px;
border: 1px solid gray;
margin: 4px;
padding: 6px;
}
button {
width: 100%;
}
</style>
</head>
<body>
<h3>Difference between display:none and visiblity: hidden</h3>
<p><strong>visibility:hidden</strong> hides the element, but it still takes up space in the layout.</p>
<p><strong>display:none</strong> removes the element from the document. It does not take up any space.</p>
<div class="imgbox" id="imgbox1">Box 1<br>
<img src="img_5terre.jpg" alt="Italy" style="width:100%">
<button onclick="removeElement()">Remove</button>
</div>
<div class="imgbox" id="imgbox2">Box 2<br>
<img src="img_lights.jpg" alt="Lights" style="width:100%">
<button onclick="changeVisibility()">Hide</button>
</div>
<div class="imgbox">Box 3<br>
<img src="img_forest.jpg" alt="Forest" style="width:100%">
<button onclick="resetElement()">Reset All</button>
</div>
<script>
function removeElement() {
document.getElementById("imgbox1").style.display = "none";
}
function changeVisibility() {
document.getElementById("imgbox2").style.visibility = "hidden";
}
function resetElement() {
document.getElementById("imgbox1").style.display = "block";
document.getElementById("imgbox2").style.visibility = "visible";
}
</script>
</body>
</html>
Tento příklad ukazuje, jak používat CSS a JavaScript k zobrazení prvku klikněte.
Použití CSS společně s JavaScriptem k zobrazení obsahu
<!DOCTYPE html>
<html>
<head>
<style>
#panel, .flip {
font-size: 16px;
padding: 10px;
text-align: center;
background-color: #4CAF50;
color: white;
border: solid 1px #a6d8a8;
margin: auto;
}
#panel {
display: none;
}
</style>
</head>
<body>
<p class="flip" onclick="myFunction()">Click to show panel</p>
<div id="panel">
<p>This panel contains a div element, which is hidden by default (display: none).</p>
<p>It is styled with CSS and we use JavaScript to show it (display: block).</p>
<p>How it works: Notice that the p element with class="flip" has an onclick attribute attached to it. When the user clicks on the p element, a function called myFunction() is executed, which changes the style of the div with id="panel" from display:none (hidden) to display:block (visible).</p>
<p>You will learn more about JavaScript in our JavaScript Tutorial.</p>
</div>
<script>
function myFunction() {
document.getElementById("panel").style.display = "block";
}
</script>
</body>
</html>
Určuje, jak má být prvek zobrazen
Určuje, zda má být prvek viditelný nebo ne