float - CSS flotante con superposición
position float css (4)
Estoy tratando de configurar una estructura de pestañas horizontal simple para una página en la que estoy trabajando, y estoy teniendo problemas con los div flotantes combinados con z-index.
Ver el siguiente código en un navegador:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
#main { width: 500px; z-index: 1;}
.left { float: left; width: 96px; background-color: red; border: 2px solid orange; z-index: 2; margin-right: -2px }
.right { float: left; width: 396px; background-color: #09c; border: 2px solid green; z-index: 3; }
.clear { clear: both; }
</style>
</head>
<body>
<div id="main">
<div class="left">
LEFT
</div>
<div class="right">
RIGHT
<br />
RIGHT
</div>
<div class="clear"></div>
</div>
</body>
</html>
¿Por qué el borde anaranjado del div izquierdo no se superpone con el borde verde del div derecho?
margin-left
negativo margin-left
.right { float: left; width: 396px; background-color: #09c; border: 2px solid green; z-index: 3; margin-left: -5px;}
La propiedad z-index no se aplicará a los elementos posicionados estáticamente. Para usar el índice Z, CSS también debe incluir cualquier valor de posición que no sea estático (es decir, relativo, absoluto, fijo).
.left { float: left; width: 96px; background-color: red; border: 2px solid orange; z-index: 3; margin-right: -2px; position: relative; }
.right { float: left; width: 396px; background-color: #09c; border: 2px solid green; z-index: 2; position: relative; }
Te daré lo que quieras, creo. Agregué la posición: relativa; y cambió el índice Z de .left a 3 (de 2) y cambió el índice z de .right a 2 (de 3).
Use la propiedad de position
para el elemento superior. Agregar position:relative
a .left
.
z-index
no tiene ningún efecto sobre los elementos que no están posicionados (p. ej. position:absolute;
)