473,769 Members | 6,120 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

IE8 display: table-cell and max-width bug?

Atli
5,058 Recognized Expert Expert
Hi.

I'm setting up a small photo-album-type thing, where I use PHP to set up a list of images for visitors to click through.
That's all simple enough.

However, I'm having a weird bug in IE8.

Because the images can all be of different sizes (nothing I can do about that... outside my control), I use a CSS trick to get them all centered both vertically and horizontally, and scaled down to a proper size.

Basically, I put the image tag inside two div tags, the first one to align the divs horizontally, and the second to align the image both horizontally and vertically.
Then the image tag scales down images that are to large using the max-height and max-width styles.

That all looks like this:
(Added the borders to see the exact position of the divs)
Expand|Select|Wrap|Line Numbers
  1. #GalleryPreview {
  2.     width : 400px;
  3.     height : 290px;
  4.     margin : 0 auto;
  5.     border : 1px solid #0000ff; /* For debuging */
  6. }
  7. #GalleryPreview_VerticalFix {
  8.     width: 400px;
  9.     height : 290px;
  10.     display : table-cell;
  11.     vertical-align : middle;
  12.     text-align : center;
  13.     border : 1px solid #00ff00; /* For debuging */
  14. }
  15. #GalleryPreview img {
  16.     max-width : 400px;
  17.     max-height : 290px;
  18. }
Expand|Select|Wrap|Line Numbers
  1. <div id="GalleryPreview">
  2.     <div id="GalleryPreview_VerticalFix">
  3.         <img src="PHP Generated" alt="Image Preview" />
  4.     </div>
  5. </div>
This works in all the standard supporting browsers. Everything is scaled down and centered perfectly. IE7 fails to do the vertical alignment, but that's good enough for IE.

IE8, on the other hand, does something much worse.

For images that scale down to less then the set max-width, this works perfectly to. It centers them both vertically and horizontally.

But when images scale down to exactly the max-width, the table-cell appears to forget it was scaled down, expanding itself until it reaches the width of the original image size. But it still centers the image correctly... just way out of place.
(See the images I attached. One is from Firefox, the other IE8)

I'm thinking this must be a bug in IE (shocking, I know). I mean, the image is scaled, but it's original width is being used by it's parent, which is not the case with the height.
Either this was the intended behavior and the height is bugged, or it's not and the width is.
(Edit: I found this bug report. Seems to be it)

In any case, does anybody know a workaround, or another method to center the images?
I'll keep looking, hopefully find something before I just drop IE support altogether :)

Thanks,
- Atli
Jun 9 '09
22 60821
drhowarddrfine
7,435 Recognized Expert Expert
Will that be your first and last post here?
Apr 1 '10 #11
adinas
3 New Member
Is there a problem with the content of the reply?
Apr 1 '10 #12
drhowarddrfine
7,435 Recognized Expert Expert
Since that was your first post, I was curious whether we would hear from you again.

Tables should never be used for layout so your solution is a step backwards. The result is he already found a solution using CSS but the real problem is IE, as it almost always is. So crippling modern browsers just for IEs sake by using a table is just a bad idea.
Apr 1 '10 #13
adinas
3 New Member
Well, I think that saying tables should never be used is a bit harsh. I don't use tables to layout a page but if in your page you are showing tabular data. like a list of results with headings, wouldn't you use a table for that? And if one of those columns showed images then in order for it to work in IE (Which I would have to agree really sucks in this case) my solution would work. I went over the other solutions and thought that giving another option to choose from would be good. No?
Apr 2 '10 #14
drhowarddrfine
7,435 Recognized Expert Expert
Well, I think that saying tables should never be used is a bit harsh. I don't use tables to layout a page but if in your page you are showing tabular data.
That's why I did NOT say that.

if one of those columns showed images then in order for it to work in IE (Which I would have to agree really sucks in this case) my solution would work.
IE is the worst browser on the planet. Inept at best.

There is never any reason to use a table to fix a layout problem.
Apr 2 '10 #15
VoiceOfReason
1 New Member
There is never any reason to use a table to fix a layout problem.

Hmmm...how about the reason that CSS can be turned off?

Although I agree that tables are not the preferred method, they are reliable in certain situations. To state otherwise is just plain ignorant and not worthy of an 'Expert' tag.
Apr 22 '10 #16
Atli
5,058 Recognized Expert Expert
Hmmm...how about the reason that CSS can be turned off?
That is not a reason, it's an excuse.

Granted, if you are designing your websites for the original release of the Netscape Navigator browser... sure, tables might make sense. In reality, assuming browsers have managed to implement the 12 year old core web design technology used by virtually every modern website designed since the turn of the century, is an extremely fair assumption. (Even for IE... up to a point.)

And those who deliberately turn CSS of are either are aware of how it might affect them and willing to accept it, or deserving of having modern webpages fall apart on them. You don't turn off the technology used to style webpages and walk away from it without it affecting the rendering of websites. Abandoning modern practices and reverting to the early 90's to accommodate these sort of users is just silly.

Perhaps it is best to phrase it as:
There is never any VALID reason to use a table to fix a layout problem.

And note that using a table to fix an IE bug is NOT a valid reason. If IE is buggy let the fallout fall on the users of IE, not the web developers. - We aren't helping anybody by continually covering up how buggy IE actually is.
Apr 23 '10 #17
drhowarddrfine
7,435 Recognized Expert Expert
In addition, if CSS is turned off (and who would ever do that?), HTML pages should have been created to still work and be presented in a reasonable manner.
Apr 23 '10 #18
wolfgang abbas
2 New Member
I just signed in, because I was pretty annoyed by the tone of drhowarddrfine comments. Anyway, it tricked me in to become a member.

I figured out that MS changed the rendering engine for the latest MS Outlook from IE to MS Word. This leads to a lot of problems concerning image AND div resizing. I haven't found a way to max-width pictures, table-cells or divs. Tried all of them.

My quick solution: All images are resized via php via a parameter in the source-url (...&width=150) . If anybody knows a css solution, this would be appreciated!

Kind regards from Germany,
Wolf

PS: i use div's, so far...
Jul 28 '10 #19
JKing
1,206 Recognized Expert Top Contributor
@wolfgang abbas
Are you attempting to code html emails?
Jul 28 '10 #20

Sign in to post your reply or Sign up for a free account.

Similar topics

4
5632
by: Lachlan Hunt | last post by:
Hi, I was wondering if ::before and ::after pseudo-elements can apply to elements styled with the display: table-* properties. None of my tests worked in either Firefox or Opera, yet I could not find anywhere in either the CSS2.1, CSS3 Selectors or CSS3 Generated and Replaced Content Module specs that defines which elements these pseudo-elements actually apply to. Specifically, I was wondering if something like this were possible:
7
3623
by: Robert Blasius | last post by:
Hello, I've a problem displaying a header content in Internet Explorer. You can view the problem on www.robert-blasius.de The upperimage should be on the left of the middle "line" and the lower image should appear on the right. It works fine in Firefox, but not in IE 6.0. This is the css-code: div.titletable {
9
2636
by: wparrott | last post by:
I have a table called tblPayScales. It has 5 fields: numRecID - record ID txtCLASSCODE - a 1 or 2 letter text value (A, B, C, BD, L, LT, etc.) numPAYSTEP - a number value 0-49 numSALARY - a number value such as 36,246.00 numNEWSALARY - a number value derived from a user-defined percentage The table contains records for each CLASSCODE/PAYSTEP. Although there are 50 pay steps some have a value of 0 for numSALARY(no employee at that pay...
1
1529
letmeknow
by: letmeknow | last post by:
Do anybody know how to get the values from a display table
4
2046
letmeknow
by: letmeknow | last post by:
can we use hidden fields in display table
10
4617
by: removeps-groups | last post by:
How to display table and select next to each other? <html> <body> <table border=1 style="display:inline-table"> <tr><td>Hello1</td></tr> <tr><td>Hello2</td></tr> <tr><td>Hello3</td></tr> <tr><td>Hello4</td></tr> <tr><td>Hello5</td></tr>
1
2437
by: puT3 | last post by:
Hi, I'm trying to make a dynamic website using asp and javascript and access as my database. I'm wondering if the asp file able to display table from access where user can view and change the information in the table...
2
3551
by: KusoYumi | last post by:
Hi everyone, I have met a problem here regarding the display table. Let me explain my problem 1st. Assume that I want to display a list of data in a table, each page contains 10 records. So when I clicked on page no.2, it will showing records from 11 to 20. At this moment, I have click submit button to save the changes I did in page 2. So now my question is, after saved, it should be remain the page 2, but now it show "1, 2, 3, 4 " page 1 is...
2
1805
by: LuciaG | last post by:
Hello, I was trying to display table in vba form (excel 2003), but I was't successful. How can it be done? Thank you,
0
9590
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10051
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10000
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
1
7413
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6675
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5310
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5448
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3571
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2815
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.