Tengo un <div>
, eso es cierto height
y width
, y overflow:hidden
imágenes interiores de manera que se recortan specfic; sin embargo, quiero una imagen en el <div>
para salir del borde (es decir, para anular el overflow:hidden
), ¿cómo puedo hacer esto?Permita etiqueta específica para anular overflow: hidden
Respuesta
No puede, a menos que cambie su diseño HTML y mueva esa imagen fuera del div principal. Un poco más de contexto lo ayudaría a encontrar una solución aceptable.
desbordamiento se refiere al contenedor que no permite que se muestre contenido de gran tamaño (cuando se establece en oculto). No tiene nada que ver con los elementos internos que pueden tener desbordamiento: lo que sea, y aún no se mostrará.
índice Z no se parece a trabajar, pero aquí tengo una solución que funcionaba bien para mí, ya que necesitaba desbordamiento sólo para ser "visible" cuando se pasa un elemento secundario:
#parent {
overflow: hidden;
}
#parent:hover {
overflow: visible;
}
Esto no responde la pregunta ... en absoluto. –
Sé que esto es una publicación anterior, pero esto se puede hacer (al menos en Chrome). Me di cuenta de esto hace dos años y me salvó un par de veces.
Establezca el niño para tener la posición de fijo y use los márgenes en lugar de la parte superior e izquierda para colocarlo.
#wrapper {
width: 5px;
height: 5px;
border: 1px solid #000;
overflow: hidden;
}
#parent {
position: relative;
}
button {
position: fixed;
margin: 10px 0px 0px 30px;
}
Aquí se muestra un ejemplo: http://jsfiddle.net/senica/Cupmb/
Oye, esto parece funcionar muy bien en Chrome, Firefox y Safari. Lo probaré en IE. Gracias por el truco. –
Desafortunadamente esto no funciona en IE (versión 10). Hubiera sido realmente limpio. –
bien, pero si configura la posición: fija, se solucionará: el botón permanecerá en el mismo lugar mientras se desplaza por la página ... – betatester07
Puede desbordarse un elemento de la inmersión envolviéndolo en otro div, a continuación, establecer la imagen como position: absolute; y compensarlo usando márgenes.
<div class="no-overflow">
<div>
<img class="escape" src="wherever.jpg" />
</div>
</div>
.no-overflow{
overflow:hidden;
width: 500px
height: 100px
}
.escape{
position: absolute;
margin-bottom: -150px;
}
Ejemplo (probado en Firefox + IE10) http://jsfiddle.net/Ps76J/
Todas las respuestas dadas donde no satisfactorio para mí. Todos son hackish en mi opinión y difíciles de implementar en diseños complejos.
Así que aquí es una solución simple:
vez que un padre tiene un cierto desbordamiento, no hay manera de dejar que sus hijos tienen prioridad sobre esto.
Si un niño necesita anular el desbordamiento principal, un niño puede tener un desbordamiento diferente al de los otros niños.
Así definen el desbordamiento en cada niñoen lugar de declarar que en el padre:
<div class="panel">
<div class="outer">
<div class="inner" style="background-color: red;">
<div>
title
</div>
<div>
some content
</div>
</div>
</div>
</div>
.outer {
position: relative;
overflow: hidden;
}
.outer:hover {
overflow: visible;
}
.inner:hover {
position: absolute;
}
Aquí es un violín:
funciona perfecto, grazie! – avalanche1
El truco es mantener el elemento overflow:hidden
w con position:static
y coloque el elemento desbordado relativo a un elemento superior superior (en lugar del elemento primario overflow:hidden
).De este modo:
.relative-wrap {
/*relative on second parent*/
position: relative;
}
.overflow-wrap {
height: 250px;
width: 250px;
overflow: hidden;
background: lightblue;
/*no relative on immediate parent*/
}
.respect-overflow {
position: relative;
top: 75px;
left: 225px;
height: 50px;
width: 50px;
background: green;
}
.no-overflow {
position: absolute;
top: 150px;
left: 225px;
height: 50px;
width: 50px;
background: red;
}
<div class="relative-wrap">
<div class="overflow-wrap">
<div class="respect-overflow">
</div>
<div class="no-overflow">
</div>
</div>
</div>
también quiero señalar, un caso de uso muy común que el deseo de tener un desbordamiento elemento de su contenedor de esta manera es cuando se quiere animar a la altura de una lista desplegable o contenedor de X a 0, y por lo tanto necesita tener overflow: hidden
en el contenedor. Normalmente tiene algo dentro de el contenedor que desea desbordar independientemente. Dado que estos elementos solo son accesibles cuando el contenedor está "abierto", puede aprovechar y establecer el desbordamiento de nuevo en visible
después de el contenedor está completamente abierto, y luego establecerlo de nuevo en hidden
antes de intentar animar el contenedor de nuevo a height: 0
.
Todo lo anterior es bueno, pero nada supera a JAVASCRIPT
. (usando jquery
). Así,
<script>
var element = $('#myID');
var pos = element.offset();
var height = element.height(); // optional
element.appendTo($('body')); // optional
element.css({
position : 'fixed'
}).offset(pos).height(height);
</script>
Lo que hago es, obtener la posición original del elemento (en relación a la página), opcionalmente obtener la altura o anchura, opcionalmente añadir el elemento al cuerpo, se aplica la nueva regla css position : fixed
y finalmente aplique la posición original y opcionalmente el ancho y alto.
Normalmente, no menosprecio a la gente, pero acabo de bajar mi voto. Este es un enfoque absolutamente terrible para la programación de páginas web. Los gurús de la codificación de Google y Mozilla pasan la eternidad perfeccionando los componentes internos de CSS impulsados por SIMID. Simplemente no puedes vencer simplemente dejando que el navegador haga el trabajo. En lugar de ir a todos los javascript, debe mover la mayor parte del procesamiento posible al CSS. Hacerlo es, debido a las razones enumeradas anteriormente, el mejor enfoque para la programación de páginas web. Además, no use JQuery. –
Sin resentimientos. Las opiniones son como narices. Todos tienen uno. En mi humilde opinión, es solo otra forma de resolver el problema. JQuery es solo eso. Otra forma de resolver problemas. Feliz año nuevo. –
Haré +1 porque es la solución a un problema que en algunas circunstancias no tiene solución. Obviamente, cuando los "gurús de la codificación" en Google y Mozilla nos den una solución de CSS, esta ya no será necesaria. (Dicho esto, evitaré usarlo). –
Envuelva su overflow: hidden
div
con otro div
que tiene una propiedad CSS de -
transform: translate(0, 0);
y en su etiqueta specefic que desea que se anula la - overflow: hidden
, ajustado con -
position: fixed;
continuará siendo la posición relativa a su padre
ie -
.section {
...
transform: translate(0, 0);
}
.not-hidden {
position: fixed;
...
}
Actualmente no existe una manera que soy consciente de hacer un nodo padre con rebosadero oculto tienen hijos visible fuera de ella (con la excepción de los niños position:fixed
).
SIN EMBARGO, es posible usar el contorno en conjunto con el color del fondo combinado con la propiedad z-index para enmascarar algunos elementos mientras se conservan otros.
.persuado-overflow-hidden {
/*gives the appearance of overflow:hidden*/
z-index: -100;
position: relative;
outline: 1000vw solid white;
overflow: visible;
}
.overridevisible {
/*takes the element out of the persuado overflow hidden*/
z-index: 1;
}
/*does the other styling to the text*/
.loremcontainer {
width: 60vw;
height: 60vh;
margin: 20vw;
border: 1px solid;
}
.loremtxt {
width: 100vw;
height: 100vh;
margin: -20vh;
z-index: -1;
}
.positionmessage {
z-index: 100;
position: absolute;
top: -12vh;
left: -5vw;
right: -5vw;
color: red;
}
<div class="persuado-overflow-hidden loremcontainer">
<div class="loremtxt">
<div class="overridevisible positionmessage">Then, theres this text outside the paragraphs inside the persuado overflow:hidden element</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce porta lorem lorem, eu dapibus libero laoreet et. Fusce finibus, felis ac condimentum commodo, mauris felis dictum sapien, pellentesque tincidunt dui dolor id nulla. Etiam vulputate turpis eu lectus ornare, in condimentum purus feugiat. Donec ultricies lacinia urna, sit amet ultrices magna accumsan ut. Suspendisse potenti. Maecenas nisl nibh, accumsan vel sodales in, rutrum at sem. Suspendisse elit urna, luctus vitae urna ut, convallis ultricies tellus. Ut aliquet auctor neque, nec ullamcorper tortor ullamcorper vitae. Fusce at pharetra ante. Aliquam sollicitudin id ante sit amet sagittis. Suspendisse id neque quis nisi mattis vulputate. Donec sollicitudin pharetra tempus. Integer congue leo mi, et fermentum massa malesuada nec.
</div>
</div>
Tengo una solución súper fácil a este problema: Utilice la etiqueta de "pre". Sé que la etiqueta previa es el equivalente a usar "goto" en la programación, pero hey: ¡funciona!
<div style="overflow: hidden;">
<pre>
super long text which just goes on and on and on and on and one, etc.
</pre>
</div>
- 1. "overflow-x: hidden" ¿solo por un lado?
- 2. IE 8 overflow: hidden y max-width
- 3. ¿Por qué "overflow: hidden" borra un flotador?
- 4. override overflow: hidden with z-index
- 5. imagen del centro dentro de overflow-hidden-parent
- 6. Firefox y CSS3: utilizando overflow: hidden y box-shadow
- 7. overflow: hidden no funciona dentro de una tabla
- 8. Cuál es la diferencia entre overflow: hidden y display: none
- 9. Overflow-x: hidden también oculta el contenido vertical también
- 10. Etiqueta autocompleta como Stack Overflow
- 11. overflow-y: visible no funciona cuando overflow-x: hidden está presente
- 12. elemento se cernió se desborde hacia fuera de un overflow: hidden css elemento
- 13. C++ -fvisibility = hidden -fvisibility-inlines-hidden
- 14. Dos barras de desplazamiento verticales en Firefox cuando se usa overflow-x: hidden
- 15. ¿Cómo puedo forzar overflow: hidden al no uso mi espacio padding-right
- 16. Cómo anular estilo global para la etiqueta img en css
- 17. Encontrar una etiqueta específica con BeautifulSoup
- 18. GIT extracción/recuperación de la etiqueta específica
- 19. Mejores prácticas para CSS Clear or Overflow
- 20. Hidden Markov Models
- 21. Haskell Prelude hidden, UNDO?
- 22. CSS overflow-y: visible, overflow-x: scroll
- 23. Jquery Hidden Field
- 24. Iniciando sesión en Stack Overflow con cURL
- 25. overflow-x: visible; no funciona con overflow-y: auto; cualquier solución?
- 26. text-overflow: puntos suspensivos en un enlace
- 27. Tortoise SVN hidden _svn folders
- 28. Datatables Width Overflow para muchas columnas
- 29. Override overflow for gwt DockLayoutPanel widgets
- 30. Inicializar var para anular
El hecho de que esto no se puede lograr es, creo, una limitación de la capacidad de representación HTML actual. – Lisa
Pregunta casi idéntica: http://stackoverflow.com/questions/8432883/overflow-a-list-inside-a-div-of-which-overflowhidden – Lisa
@Lisa Estoy de acuerdo, ojalá hubiera una manera de excluir un elemento de cualquier desbordamiento – webkit