I have made the cardinal mistake of not debugging on ALL browsers while designing my site. In Firefox (3.6.10) and IE8 the form elements show up fine but in chrome(10), only the position:absolute elements show up.
I have a form made from an unordered list. The list items are set up with position:relative. it contains a left floating label, right floating field and, potentially, an position:absolute widget.
HTML:
<form><ul>
<li>
<label>Name</label>
<input type="text" />
<a id="nameGenerator" class="widget"></a>
</li>
</ul></form>
CSS:
form ul li{
margin: 5px;
clear: both;
position:relative;
}
form label{
float:left;
margin-top: 0px;
margin-bottom: 0px;
}
form input{
float:right;
margin-top: 0px;
margin-bottom: 0px;
}
form .widget{
position: absolute;
top: 0;
right: 0;
z-index: 99;
}
I can "fix" this by removing the position:relative but that is unacceptable. Is there anything I can do to produce the desired results?
position: relative places an element relative to its current position without changing the layout around it, whereas position: absolute places an element relative to its parent's position and changing the layout around it.
Unfortunately, you can't use position: absolute .
This solution works by subtracting the element's current left and top position (relative to the body) so as to move the element to 0, 0. Placing the element wherever you want relative to the body is then as simple as adding a left and top offset value.
Add this to your css:
form ul li{
overflow:auto;
}
http://jsfiddle.net/cTTVs/1/
Just add overflow:hidden
to the form ul li
rules. This works better than overflow:auto
when clearing floats in many situations where scrollbars might appear in the element (possibly such as your 'widgets').
Update:
I had a thought that if your widget needs to show a list of things such as a suggestion box or date picker, you will be better NOT using overflow
values to clear your floats. An alternative is the old clearfix hack which may be more suitable. Check out this demo which has a faux widget showing the different solutions and how a tall widget might work with them.
Demo: jsfiddle.net/Marcel/ghaHz
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With