Solved

How to override overflow:hidden without changing parent style

Posted on 2008-10-03
7
7,074 Views
Last Modified: 2013-11-19
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
Comment
Question by:systemride
7 Comments
 
LVL 44

Expert Comment

by:scrathcyboy
Comment Utility
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
 
LVL 2

Author Comment

by:systemride
Comment Utility
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
 
LVL 42

Accepted Solution

by:
David S. earned 125 total points
Comment Utility
What you want is simply not possible.  An element can not overflow an ancestor that has overflow:hidden.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 44

Expert Comment

by:scrathcyboy
Comment Utility
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
 
LVL 25

Expert Comment

by:James Rodgers
Comment Utility
can you post the column class css please
0
 
LVL 2

Author Comment

by:systemride
Comment Utility
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
 

Expert Comment

by:MRothstein1
Comment Utility
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

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

JavaScript has plenty of pieces of code people often just copy/paste from somewhere but never quite fully understand. Self-Executing functions are just one good example that I'll try to demystify here.
Why do we like using grid based layouts in website design? Let's look at the live examples of websites and compare them to grid based WordPress themes.
The purpose of this video is to demonstrate how to reset a WordPress password if you are locked out and cannot reset the password. A typical use would be if you cannot access the email to which WordPress would send the password recovery email to…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now