Solved

IE bug with position:absolute

Posted on 2007-04-05
7
3,251 Views
Last Modified: 2008-01-09
I do a lot of form building. My standard is to style labels in the left margin, right-justified, and entry fields in the body.  The technique that is getting me closest is to what I need is a left margin of 165px, and labels styled with "position:absolute; top:0; left:-165px; width:155px;".

That approach works passably in IE and Firefox until I want to put text embedded in <p></p> tags immediately after the label. Then, IE seems to stop respecting the position:absolute on the label, and positions the <p>paragraph text</p> lower than the label.

I have a comparable issue with checkboxes.  With checkboxes, I invert the layout, posititioning the checkbox absolutely in the right margin, and the label on the right.  If the label is styled as "display:block", IE seems to quit respecting the position:absolute on the checkbox and drops the label text underneath the label.  Reverting to "display:inline" for the label fixes the vertical position, but there are times that I need to be in display:block mode.

My question:  Which IE bug am I hitting?  I've been looking for documentation and articles on this for a couple hours now, but am not coming up with anything.  I'm trying to get my arms around the limitations of absolute positioning in this context as well as possible workarounds.

See a demo of what I'm describing here:

http://www.myorghost.net/temp/contact3.html

Thanks!

--Steve
0
Comment
Question by:opho
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
7 Comments
 
LVL 9

Expert Comment

by:fuzzboxer
ID: 18859203
Could have something to do with you using an unordered list.  Why are you using lists to layout a form?
0
 
LVL 4

Author Comment

by:opho
ID: 18859442
Hey fuzzboxer...

I use an unordered list because my forms are requests for lists of information.

The forms tend to degrade nicely for folks using adaptive technologies, or for those browsers ignore CSS.

If you've got specific experience with IE rendering absolutely positioned items differently inside an unordered list than it renders them inside other elements, I'd love to hear about it.

--Steve
0
 
LVL 30

Expert Comment

by:Steggs
ID: 18867787
Hi Steve,

Why are you using absolute positioning? Is it because you want the text before the checkbox when css is turned off?

Cheers
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 4

Author Comment

by:opho
ID: 18867995
Hey Steggs...

With text (or textarea) input fields, I just want the label text to appear first in the source, and be positioned visually on the left, and place additional instructions (when needed) and the input fields on the right.

With checkboxes, I want to reverse that, having the checkbox first, on the left, and its label on the right.

I'm open to suggestion as to how best to make that work.

--Steve
0
 
LVL 30

Accepted Solution

by:
Steggs earned 500 total points
ID: 18869509
I thought it might be a whitespace issue but no.

How about using floats instead?
0
 
LVL 4

Author Comment

by:opho
ID: 18871635
OK, so styling my label this way:

margin-left: -165px;
width:155px;
text-align:right;
float:left;

produced the same effect as my absolute positioning previously, but the problem remained that, in IE only, the text embedded in <p></p> was positioned lower than the label.  Applying this:

p {
float:left
}

fixed the vertical spacing problem, even though there was nothing it needed to float around.

My guess, after poking around a bit, is that I was seeing the IE list item white space bug.

Thanks, Steggs.... that was just the tip I needed!

0
 
LVL 30

Expert Comment

by:Steggs
ID: 18872143
Glad u got it fixed m8 :)
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
CSS is a visual language used to classify objects and define rules about how they should be displayed. CSS skills aren’t restricted to developers anymore, there is a big benefit to having a basic understanding of the language, regardless of your occ…
In this Micro Tutorial users will learn how to embed custom fonts into websites using @font-face in CSS Select a font: Ensure the EULA allows you to use @font-face: Download the font: Get the browser-compatible files you need: Edit your CSS       - Name …
In this tutorial viewers will learn how to define a gradient in CSS. Create a new HTML document with an internal stylesheet.: Create a div in CSS and name it Gradient. Define the background as "linear-gradient(to right, #ee3668, black)". Ensure you …

710 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