2011-08-16 8 views
5

Tengo algo de HTML:¿Cómo presiono un encabezado junto a parte de un contenedor?

<div id="thing"> 
    <div id="contentheader"> 
    <h3>Header</h3> 
    </div> 
    <div id="contentcontainer"> 
    <div id="image"> 
     <img alt="balt" src="imagesrc"> 
    </div> 
    <div id="body"> 
     <p>hegl gegl</p> 
    </div> 
    </div> 
</div> 

tengo que empujar el H3 en 'contentheader' hacia abajo junto a la imagen en 'contentcontainer' mientras que el cuerpo del texto se sienta junto a él. Todo es de ancho variable guarda la imagen.

Tal vez una imagen demostrará mejor:

Is this possible with CSS?

Como se puede ver, se corresponde con grises 'cosa', verde con 'contentcontainer' y azules con '' contentheader.

Editar el HTML sería una gran molestia. Tampoco puedo hacer otra cosa que no sea la imagen de ancho fijo. ¿Es posible hacerlo solo con CSS? (Sería increíble poder hacerlo con flotadores y cosas pero no sé si es factible)

+0

Eso parece posible. ¿Puedes crear una [jsFiddle demo] (http://jsfiddle.net/) con tu HTML/CSS actual? – thirtydot

+0

Claro. http://jsfiddle.net/Zaktx/ – enthdegree

+0

Si cambió su marcado, esto sería mucho más fácil (por ejemplo: [JS Fiddle demo] (http://jsfiddle.net/davidThomas/Zaktx/4/)) . ¿Es eso posible? –

Respuesta

0

El usuario de Thirtydot en la sección de comentarios resolvió mi problema.

1

No creo que encuentres una solución perfecta con CSS. Podrías usar el posicionamiento, pero probablemente te toparías con problemas si tuvieras un título largo que corriera más de una línea.

Si está abierto a usar javascript, el siguiente fragmento de código no de red funcionaría.

// Add the header inside the container div just before the body 
containerDiv = document.getElementById('contentcontainer'); 
headerDiv = document.getElementById('contentheader'); 
bodyDiv = document.getElementById('body'); 
containerDiv.insertBefore(headerDiv, bodyDiv); 

Usted puede crear de nuevo el código como un más ordenado, de una sola línea usando jQuery u otro marco Javascript.

0

Claro, aquí está el CSS para una instalación rudimentaria:

http://jsfiddle.net/Nkapr/

preguntará si usted tiene alguna pregunta.

+2

Esto va a ser un problema si necesita más de una línea, como explicó Joe. – sg3s

0

El problema aquí es la estructura HTML, no es sido escrito realmente con su objetivo en mente (que es un rollo!)

Si todo lo que está después se empuja el contenedor H3 'contentheader' en línea con el resto de las cosas dentro de 'contentcontainer' puede establecer un margen superior negativo en 'contentcontainer' para tirarlo hacia arriba, y luego agregar un margen superior positivo a los elementos en 'contentcontainer' que deben bajar (en este caso ' imagen ') dando la impresión de que la sección h3 en realidad se encuentra con el resto del contenido. Es un truco, pero podría funcionar si no puedes alterar el HTML.

Cuestiones relacionadas