You cannot, unless you change your HTML layout and move that image out of the parent div. A little more context would help you find an acceptable solution.
overflow refers to the container not allowing oversized content to be displayed (when set to hidden). It's got nothing to do with inner elements that can have overflow:whatever, and still wont' be displayed.
Z-index doesnt seem to work, but here I have a workaround which worked fine for me, as I needed overflow only to be "visible" when hovering a child element:
The trick is to keep the overflow:hidden element with position:static and position the overflowing element relative to a higher parent (rather than the overflow:hidden parent). Like so:
I also want to note, a very common use case for the desire to have an element overflow its container in this way is when you want animate the height of a dropdown or container from X to 0, and therefore need to have overflow: hidden on the container. Usually you have something inside the container that you want to overflow regardless. Since these elements are only accessibly when the container is "open", you can take advantage and set the overflow back to visibleafter the container is fully open, and then set it back to hidden before trying to animate the container back to height: 0.
All the above is nice but nothing beats JAVASCRIPT.
(Using jquery).
So,
<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>
What I do is, get the original position of the element (relative to the page), optionally get the height or width, optionally append the element to the body, apply the new css rule position : fixed and finally apply the original position and optionally width and height.
There is currently no way I am aware of to make a parent node with overflow hidden have children visible outside it (with the exception of position:fixed children).
HOWEVER, it is possible to instead of using overflow, you can just use the outline property set to the color of the background combined with the z-index property to mask some elements while retaining others like so.
.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>
I've got a super-easy solution to this problem: Use the "pre" tag.
I know the pre tag is the equivalent of using "goto" in programming, but hey: it works!
<div style="overflow: hidden; width: 200px;">
<pre style="overflow: auto;">
super long text which just goes on and on and on and on and one, etc.
</pre>
</div>
In the above example all the elements inside the div with class of 'inner' will be affected by 'overflow:hidden'. Where as the images placed outside the inner div will be free to move out of boundaries.
This way we can make certain images pop out of the inner div.