A propriedade CSS overflow
controla o que acontece com conteúdo que é grande demais para caber em uma área.
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
#overflowTest {
background: #4CAF50;
color: white;
padding: 15px;
width: 50%;
height: 100px;
overflow: scroll;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<h2>CSS Overflow</h2>
<p>The overflow property controls what happens to content that is too big to fit into an area.</p>
<div id="overflowTest">This text is really long and the height of its container is only 100 pixels. Therefore, a scrollbar is added to help the reader to scroll the content. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem.</div>
</body>
</html>
A propriedade overflow
especifica se deve recortar o conteúdo ou para adicionar barras de rolagem quando o conteúdo de um elemento é muito grande para caber no especificado área.
A propriedade overflow
possui os seguintes valores:
visible
- Padrão. O estouro não é cortado. O conteúdo é renderizado fora da caixa do elemento
hidden
- O estouro será cortado e o restante do conteúdo ficará invisível
scroll
- O overflow é cortado e uma barra de rolagem é adicionada para ver o resto do conteúdo
auto
- Semelhante ao scroll
, mas adiciona barras de rolagem somente quando necessário
Nota: A propriedade overflow
só funciona para elementos de bloco com uma altura especificada.
Nota: No OS X Lion (no Mac), as barras de rolagem ficam ocultas por padrão e são mostradas apenas quando usadas (mesmo que "overflow:scroll" esteja definido).
overflow: visível
Por padrão, o overflow é visível
, o que significa que não é cortado e é renderizado fora da caixa do elemento:
div {
width: 200px;
height:
65px;
background-color: coral;
overflow: visible;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
div {
background-color: coral;
width: 200px;
height: 65px;
border: 1px solid;
overflow: visible;
}
</style>
</head>
<body>
<h2>Overflow: visible</h2>
<p>By default, the overflow is visible, meaning that it is not clipped and it renders outside the element's box:</p>
<div>You can use the overflow property when you want to have better control of the layout. The overflow property specifies what happens if content overflows an element's box.</div>
</body>
</html>
overflow: oculto
Com o valor hidden
, o overflow é cortado e o restante do conteúdo fica oculto:
div {
overflow: hidden;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
div {
background-color: coral;
width: 200px;
height: 65px;
border: 1px solid black;
overflow: hidden;
}
</style>
</head>
<body>
<h2>Overflow: hidden</h2>
<p>With the hidden value, the overflow is clipped, and the rest of the content is hidden:</p>
<p>Try to remove the overflow property to understand how it works.</p>
<div>You can use the overflow property when you want to have better control of the layout. The overflow property specifies what happens if content overflows an element's box.</div>
</body>
</html>
overflow: scroll
Definindo o valor como scroll
, o overflow é cortado e uma barra de rolagem é adicionada para rolar dentro da caixa. Observe que isso adicionará uma barra de rolagem horizontal e verticalmente (mesmo que você não precise dela):
div {
overflow: scroll;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
div {
background-color: coral;
width: 200px;
height: 100px;
border: 1px solid black;
overflow: scroll;
}
</style>
</head>
<body>
<h2>Overflow: scroll</h2>
<p>Setting the overflow value to scroll, the overflow is clipped and a scrollbar is added to scroll inside the box. Note that this will add a scrollbar both horizontally and vertically (even if you do not need it):</p>
<div>You can use the overflow property when you want to have better control of the layout. The overflow property specifies what happens if content overflows an element's box.</div>
</body>
</html>
overflow: auto
O valor auto
é semelhante a scroll
, mas adiciona barras de rolagem somente quando necessário:
div {
overflow: auto;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
div {
background-color: coral;
width: 200px;
height: 65px;
border: 1px solid black;
overflow: auto;
}
</style>
</head>
<body>
<h2>Overflow: auto</h2>
<p>The auto value is similar to scroll, only it add scrollbars when necessary:</p>
<div>You can use the overflow property when you want to have better control of the layout. The overflow property specifies what happens if content overflows an element's box.</div>
</body>
</html>
overflow-x
e overflow-y
As propriedades overflow-x
e overflow-y
especificam se deve alterar o excesso de conteúdo apenas horizontalmente ou verticalmente (ou ambos):
overflow-x
especifica o que fazer com as bordas esquerda/direita do conteúdo.
overflow-y
especifica o que fazer com as bordas superior/inferior do contente.
div {
overflow-x: hidden; /* Hide horizontal scrollbar
*/
overflow-y: scroll; /* Add vertical scrollbar */
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
div {
background-color: coral;
width: 200px;
height: 65px;
border: 1px solid black;
overflow-x: hidden;
overflow-y: scroll;
}
</style>
</head>
<body>
<h2>Overflow-x and overflow-y</h2>
<p>You can also change the overflow of content horizontally or vertically.</p>
<p>overflow-x specifies what to do with the left/right edges of the content.</p>
<p>overflow-y specifies what to do with the top/bottom edges of the content.</p>
<div>You can use the overflow property when you want to have better control of the layout. The overflow property specifies what happens if content overflows an element's box.</div>
</body>
</html>
Especifica o que acontece se o conteúdo ultrapassar a caixa de um elemento
Especifica se o navegador pode ou não quebrar linhas com palavras longas, se eles transbordam seu recipiente
Especifica o que fazer com as bordas esquerda/direita do conteúdo se ele ultrapassar a área de conteúdo do elemento
Especifica o que fazer com as bordas superior/inferior do conteúdo se ele ultrapassar a área de conteúdo do elemento