Posiciones de DIV: Cómo mover la PUBLICIDAD debajo de BUSCAR en HTML y CSS

  • Autor Autor Kratz
  • Fecha de inicio Fecha de inicio
K

Kratz

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
¡Feliz cumpleaños!
Hola compañeros, espero estén muy bien.. He estado aprendiendo HTML y CSS últimamente, aunque me falta mucho por aprender.. me puse a practicar lo poco que sé pero me topé con un problema. Así que quisiera saber de que forma puedo subir el DIV que dice PUBLICIDAD y quede debajo del otro llamado BUSCAR.
Screenshot_1.webp
Aquí está el codigo que he estado haciendo, si tienen alguna recomendación con gusto la recibiré.
HTML:
<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8">
	<title>turove</title>
	<link rel="stylesheet" type="text/css" href="\estilo.css">
</head>
<body>
	<div class="contenedor">
	<header><img src="\logo.png"" alt="Tu Respuesto Online Venezuela C.A"/></header>
		<ul id="menu">
			<li><a href="#">INICIO</a></li>
			<li><a href="#">SERVICIOS</a></li>
			<li><a href="#">NOSOTROS</a></li>
			<li><a href="#">COTIZAR</a></li>
			<li><a href="#">LOGIN</a></li>
		</ul></div>
		<div class="cuerpo">
	<div id="slider">
		<h1>OFERTAS</h1>
	</div>
	<div id="search">
		<h1>BUSCAR REPUESTOS</h1>
	</div>
	<div id="marcas">
		<h1>MARCAS CON LAS QUE TRABAJAMOS</h1>
	</div>
	<div id="publicidad">
		<h1>PUBLICIDAD</h1>
	</div>
	<footer></footer>
</div>
</body>
</html>
HTML:
body {
	background: #CBD6DE;
}
.contenedor {
	width: 85%;
	background-color: white;
	margin:auto;
	border-radius: 8px 8px 0px 0px;
	max-width: 1200px;
	vertical-align: top;
}

.cuerpo {
	width: 85%;
	background-color: white;
	margin:auto;
	max-width: 1200px;
	padding-bottom: 20px;
	overflow: auto;
	
}

.cuerpo h1 {
	transform: translateY(-180%);
	font-family: courier, monospace;
	text-align: center;
	color: white;
	font-size: 20px;
}

#menu {
	background: rgb(93, 105, 115);
	padding-top: 20px;
	border-radius: 5px 5px 0px 0px;
	text-align: center;
}

#menu li {
	display: inline-block;
	position: relative;
	top:40%;
	right: 0%;
	transform: translateY(-40%);
	}
#menu a {
	font-size: 20px;
	font-family: courier, monospace;
	text-decoration: none;
	color: white;
	padding:0px 10px 0px 10px;
}

#menu a:hover {
	color: #2F9CEB;
}

#slider {
	width: 65%;
	height: 200px;
	background-color: #F4F6F5;  
	float: left;
	margin-left: 8px;
	margin-top: 10px;
	border-top: 40px solid;
	border-color:#1CED58;
	border-radius: 4px 4px 0px 0px;
	box-shadow: 0px 1px 1px #848484;
	

}

#search {
	width: 30%;
	height:60px;
	background-color: #F4F6F5;
	float: right;
	margin-right: 8px;
	margin-top: 10px;
	border-top: 40px solid;
	border-color:#1CED58;
	border-radius: 4px 4px 0px 0px;
	box-shadow: 0px 1px 1px #848484;
}

#marcas {
	width: 65%;
	height: 150px;
	background-color: #F4F6F5;  
	float: left;
	margin-left: 8px;
	margin-top: 10px;
	border-top: 40px solid;
	border-color:#1CED58;
	border-radius: 4px 4px 0px 0px;
	box-shadow: 0px 1px 1px #848484;
}

#publicidad {
	width: 30%;
	height:150px;
	background-color: #F4F6F5;
	float: right;
	margin-right: 8px;
	margin-top: 10px;
	border-top: 40px solid;
	border-color:#1CED58;
	border-radius: 4px 4px 0px 0px;
	box-shadow: 0px 1px 1px #848484;
}
footer {
	padding-bottom: 30px;
}
Estaría agradecido de que me ayudaran. Saludos
 
Podrias usar valores negativos para el margen de arriba de la caja con el id publicidad.
Seria asi:

#publicidad
{
margin-top: -130px;
}
 
Lo primero y mas sencillo (si es posible) es modificar el html para que al cambiar las posiciones de los divs, estos cambien directamente.

Si eso no es posible, te recomiendo que uses valores absolutos.

Mirate este articulo, te lo dejará claro.

Es lo primero que se me ha venido a la cabeza, hay mas opciones, pero estoy desde el movil da pereza buscar...

Cualquier duda dime, un saludo beta.


Edit:
Se me olvido el enlace 5.5. Posicionamiento absoluto (Introducción a CSS)

Edit 2: estoy apijotao, crei que lo que querias era alternar el orden de ambos, en vez de simplemente subirlo, en ese caso es mejor y mas rapido lo que el compañeo de arriba comentó, margen negativo.
 
Última edición:
Amigo espero que esto te funcione,

#publicidad {
width: 30%;
height:150px;
background-color: #F4F6F5;
float: right;
margin-right: 8px;
margin-top: -125px;
border-top: 40px solid;
border-color:#1CED58;
border-radius: 4px 4px 0px 0px;
box-shadow: 0px 1px 1px #848484;

solo le cambie el margin-top: a -125px; espero que te ayude

- - - Actualizado - - -

Podrias usar valores negativos para el margen de arriba de la caja con el id publicidad.
Seria asi:

#publicidad
{
margin-top: -130px;
}

Bueno acá esta la solución respondi más abajo no me habia fijado de tu respuesta amigo.
 
Gracias a todos, ya está solucionado.:encouragement:
 
Hola.
bueno amigo cualquier cosas postealo a ver en que se te puede ayudar, ese tipo de cambios con los div lo puedes ver rapidamente con el inspector del navegador asi colocas los div ordenados sin tener que modificar muchos los margenes.
 
Muy mal muchachos, muy mal, ese es el problema de css y html, son tan fáciles de "usar" que optamos por lo más fácil: parchar la estructura con lo primero que se nos ocurre.

Para empezar, ¿Que tal si decide implementar más cajas a su estructura? si eso sucede, siempre va depender de márgenes negativos, los cuales va tener que sobreescribir, uno por uno, cuando haga la versión para pantallas pequeñas.

Segundo, haces bien en usar las etiquetas header y footer, pero luego todo se viene abajo con tanto div, sigue usando etiquetas semánticas: sections, articles, sidebars! Cuando tengas en mente cual es la importancia de cada contenido en tu sitio web, vas a poder estructurarla de forma correcta, por ejemplo ese buscador quedaría perfecto en un sidebar, entonces podrías separar el contenido de tu página en dos secciones, y el flujo de las cajas en cada sección sería fluido, sin problemas de espacios como el que tienes ahora.

Luego, hay un exceso de etiquetas h1, están en todos lados, menos en donde debería estar.

Mejora esos detalles y vas a ver que todo mejora.
 
Muy mal muchachos, muy mal, ese es el problema de css y html, son tan fáciles de "usar" que optamos por lo más fácil: parchar la estructura con lo primero que se nos ocurre.

Para empezar, ¿Que tal si decide implementar más cajas a su estructura? si eso sucede, siempre va depender de márgenes negativos, los cuales va tener que sobreescribir, uno por uno, cuando haga la versión para pantallas pequeñas.

Segundo, haces bien en usar las etiquetas header y footer, pero luego todo se viene abajo con tanto div, sigue usando etiquetas semánticas: sections, articles, sidebars! Cuando tengas en mente cual es la importancia de cada contenido en tu sitio web, vas a poder estructurarla de forma correcta, por ejemplo ese buscador quedaría perfecto en un sidebar, entonces podrías separar el contenido de tu página en dos secciones, y el flujo de las cajas en cada sección sería fluido, sin problemas de espacios como el que tienes ahora.

Luego, hay un exceso de etiquetas h1, están en todos lados, menos en donde debería estar.

Mejora esos detalles y vas a ver que todo mejora.

Todo muy bonito y te doy la razon pero no le has resuelto la duda al chaval jajajaja


Sent from my iPhone using Tapatalk
 
Bueno en realidad el amigo denzel tiene razón hay otras formas de solucionarlo y más optimo por asi decirlo yo pienso que usando la etiqueta Display con proriedad de inline si mal no recuerdo.
 
Todo muy bonito y te doy la razon pero no le has resuelto la duda al chaval jajajaja

Tienes razón, no he resuelto la duda del chaval, mis motivos son los siguientes: cualquier solución para corregir la posición de ese div tiene sus "side effects" cuando quiera agregar más código, aún usando flexbox con un grid de columnas estilo masonry, así que pensando a futuro lo mejor es modificar la estructura, crear dos bloques y maquetar de arriba hacia abajo o replantear el diseño para que todas las cajas tengan un mismo tamaño.

Al hacer código siempre hay que tener como prioridad la organización y escalabilidad del proyecto, eso es fundamental para cualquier desarrollador.
 
Gracias por tu gentileza y ayuda amigo.

- - - Actualizado - - -

Muchas gracias por tomarte el tiempo en responderme, entiendo tus recomendaciones y no lo había visto de esa forma porque apenas comienzo, con esa pagina estoy comenzando a practicar. :encouragement:
 
Atrás
Arriba