Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 8219
  • Last Modified:

How to override overflow:hidden without changing parent style

I have a column on my blog that looks something like this:

<div class="column" style="overflow:hidden;">
  <div>My expandable banner</div>
</div>

The div with the overflow:hidden cannot be changed (for many reasons - please accept in this situation it cannot be changed). Is there a style or hack or something I can add to the child div to make it pop out of the parent's overflow:hidden style?

For context - this is an expandable banner - when the size expands... if it is inside the overflow:hidden parent div, the banner is cropped. I need to get it out somehow.

Ideas? :)
0
systemride
Asked:
systemride
1 Solution
 
scrathcyboyCommented:
If you cannot style the tag in line, using javascript after the page is loaded (you need a tag ID to do this), then no, you cannot do it.  Why use overflow:hidden anyway.  Should you not be using overflow:visible?  Remember that these work opposite of what they appear to do.  Are you trying to crop the overflow or not?
0
 
systemrideAuthor Commented:
Because it will  published across many blogs - where I have no control over how people build their sites. And to alter the column, might break their site layout as many people use overflow:hidden as a hack for IE bugs.

That is why I'm looking for a hack for this, if there isn't one, then I guess we're all screwed and the world will soon be bountiful with plagues and disease. We will all rot and die.

Please... for god's sake. Help.
0
 
David S.Commented:
What you want is simply not possible.  An element can not overflow an ancestor that has overflow:hidden.
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
scrathcyboyCommented:
Please... for god's sake. Help.

Simply edit the page TEMPLATE and CSS for the blog and get rid of overflow hidden.  If you are running the blog, you should be able to edit the template, surely?  If not, tell the person owning it to edit it.
0
 
James RodgersWeb Applications DeveloperCommented:
can you post the column class css please
0
 
systemrideAuthor Commented:
There isn't a way to do this unfortunately.

@scrathcyboy - seriously dude? You think I didn't think of that? As I mentioned, this was going across various blogs which makes it impossible to just simply "change". Please read all messages before you post something so lame.
0
 
MRothstein1Commented:
Here is a roundabout way of doing something similar to what you want.

Positioning the element absolutely will release it from the overflow constraint, but not in IE. This may also cause some issues with your banner being placed in other blogs where you do not know the position of the div relative to the page. Floating the elements inside did not help.

The screenshots show how the code renders in IE7 and Firefox 3.

In the example code, there are two overflow: hidden styled divs because making the floats and the positioned elements play nice in one div would have required needlessly complicated css.

I hope that this helps in some way.
<html>
<head>
    <title>overflow: hidden style test</title>
    
	<style type="text/css">
		div { margin-bottom: 20px; }
	
		.no-overflow-div { border: 2px purple solid; height: 300px; width: 300px; overflow: hidden; }		
		
		.abs-pos-elem { position: absolute; width: 500px; height: 100px;  background-color: #EEE; }
		.rel-pos-elem { position: relative; width: 500px; height: 100px;  background-color: #EEE; }
		.float-elem { width: 500px; height: 100px; background-color: #EEE;}
		.left { float: left; }
		.right { float: right; width: }
		
		.red { border: 3px red solid; }
		.blue { border: 3px blue solid; }
		.green { border: 3px green solid; }
		.darkgrey { border: 3px #333 solid; }
		
	</style>
</head>
 
<body>
 
	<div id="no-floats" class="no-overflow-div"> 
        <div class="rel-pos-elem darkgrey"> position: relative </div>
        <div class="abs-pos-elem red"> position: absolute </div>
    </div>
    <div id="floats" class="no-overflow-div">         
        <div class="float-elem left blue"> float: left </div>
        <div class="float-elem right green" style="text-align: right"> float: right </div>
    </div>
    
</body>
</html>

Open in new window

overflow-hidden-ie7.gif
overflow-hidden-ff.gif
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now