Tengo un div cuya posición se descarta porque contiene el posicionamiento relativo de div. Si bien eliminar el posicionamiento relativo de los padres soluciona el problema, preferimos no implementar esto como una solución, ya que podría romper otras cosas. ¿Hay alguna manera de obligar al niño a ignorar el posicionamiento de sus padres?¿Hay alguna manera para que un div en particular ignore su posicionamiento de div principal?
Respuesta
Desafortunadamente, no hay forma de hacer que un elemento "compense" dinámicamente el posicionamiento relativo de sus padres con CSS. A menos que replantear el diseño y desde position:fixed
no es lo que está después, sus opciones son:
- Manuallly compensar el posicionamiento de los padres. Proporcione el elemento hijo
position:relative
y compensa exactamente lo contrario de lo que tiene el padre (deberá volver a introducir los valores exactos). Mínimo alboroto, pero ahora debe recordar mantener sincronizados los dos pares de compensaciones (para padres e hijos) manualmente. Poner un comentario diciendo "si cambias esto también tienes que cambiar #THAT" te ayudará. - Mueva dinámicamente al niño con Javascript. Puede realizar algunos cálculos después de que finaliza el diseño y mover el elemento secundario nuevamente al lugar que desea que sea. No es una solución limpia en absoluto, podría dar como resultado un breve salto visual y no funcionará para personas con Javascript deshabilitado (dejando su sitio visualmente dañado). La única ventaja es que no necesita mantenimiento a menos que su diseño cambie radicalmente.
En general, recomendaría hacer # 1 sobre # 2, y solo si la mejor solución (cambiando el diseño) no está disponible para usted.
Bien, dijiste 2 con javascript. pero tal vez puedas recomendar alguna solución con javascript? jQuery por ejemplo. Gracias –
@ ПавелИванов: ¿Solución para hacer exactamente qué? Si tiene un problema específico en mente, ¿por qué no hace una pregunta por su cuenta? :-) – Jon
Si cambiar el "relativo" a "estático" no es una opción para usted ... Estoy de acuerdo con Jon, debe usar javascript para ubicar el div infantil, y aquí hay un código que usa javascript para realizar la opción 2 de su respuesta, cuando muevo el niño a un OSICIÓN reales teniendo en cuenta todo la posición relativa de los padres:
var div = document.getElementById("banner");
var parentDiv = document.getElementById("banner");
var posT = 0;
var posL = 0;
while(parentDiv = parentDiv.offsetParent){
posT += parentDiv.offsetTop;
posL += parentDiv.offsetLeft;
}
posT -= div.offsetTop;
posL -= div.offsetLeft;
div.style.top = (-1)*posT+"px";
div.style.left = (-1)*posL+"px";
\t .corpo{
\t
\t \t position:relative;
\t \t margin-left:100px;
\t \t margin_top:100px;
\t \t background-color:yellow;
border:#ccc 1px solid;
padding:10px;
\t
\t }
\t #banner{
\t
\t \t position:absolute;
top:250px; /* inicial value - goal position considering the document reference */
left:150px; /* inicial value - goal position considering the document reference */
\t width:50px;
\t \t height:50px;
\t \t background-color:blue;
font-size:9px;
color:white;
font-family:Arial;
\t }
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
asjdghasd<br>
<div class="corpo">
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
\t <div id="banner" >
<strong>Banner</strong><br/>
top: 250px<br/>
left:150px
</div>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>
</div>
- 1. Centrar verticalmente múltiples div en su div principal
- 2. ¿Hay alguna manera de agrupar palabras largas en un div?
- 3. Posicionamiento div flotante
- 4. div infantil que se amplía fuera del problema div principal
- 5. Expandir un div al fondo de su contenedor principal
- 6. ¿Hay alguna manera de establecer la barra de desplazamiento vertical para un div?
- 7. Div Scrollbar - ¿Alguna manera de darle estilo?
- 8. ¿Hay alguna manera de hacer que un DIV no sea seleccionable?
- 9. Divs anidados más grandes que div principal
- 10. ¿Hay alguna manera de hacer que un isótopo llene todo el espacio en blanco para un div de ancho fijo?
- 11. ¿Hay alguna manera de hacer un servidor div runat? ¿Entonces puedo convertirlo en un control?
- 12. Alinear div en la parte inferior de la div principal
- 13. imágenes Absolutamente de posicionamiento dentro de div en posición relativa
- 14. ¿Hay alguna manera para que el mouse ignore por completo un elemento html?
- 15. ¿Hay alguna manera en jQuery de llevar un div al frente?
- 16. Fix div cuando se desplaza de su navegador para que
- 17. jQuery: ¿Hay alguna manera de animar el ancho de un div sin ningún movimiento de texto?
- 18. Transparencia en el fondo div principal
- 19. cambiar el foco en particular div
- 20. ¿Hay alguna manera de desencadenar un stacktrace cada vez que se utiliza un registrador en particular?
- 21. ¿Hay alguna manera de forzar un estilo a un elemento div que ya tiene un atributo style = ""
- 22. ¿Cómo muevo div después de su siguiente div?
- 23. div magnético: div fijado en el interior absoluta div posicionado
- 24. Jquery: ¿hay alguna manera de resaltar el texto de una Div cuando haces clic en él?
- 25. ¿Hay alguna manera de evitar que Firebug trabaje en un sitio en particular?
- 26. jQuery e iframes y posicionamiento extraño: ¿hay alguna solución?
- 27. Cómo evitar que un div y su contenido se impriman
- 28. Posicionamiento una sugerencia en relación a otro div en jQuery
- 29. ¿Hay alguna manera de hacer que IE8 no ignore una regla CSS que solo entiende parcialmente?
- 30. Javascript: Comprobar si la página contiene un div en particular
Ignorar posicionamiento de los padres de qué manera? 'position: fixed' haría eso, pero podría no ser lo que buscas. – Jon
Creo que debería reconsiderar la ubicación de su div hijo – Ibu
@Jon a la derecha, porque el div infantil está confiando en su padre hasta cierto punto. Creo que lo que quiero decir más específicamente es ignorar lo que está cambiando en el posicionamiento relativo de los padres, para que el niño se comporte como si el padre tuviera un posicionamiento estático. – josh