473,769 Members | 6,697 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 60820
wolfgang abbas
2 New Member
@JKing
That is right. My client wants it that way.
Jul 29 '10 #21
JKing
1,206 Recognized Expert Top Contributor
Okay, well I suggest starting a new thread about your topic, posting the code you are working with, explaining whats not working and explaining how it should work/look.

I have experience with HTML emails, and getting them to render in the majority of clients. You don't want to use divs at all. Infact you want to code your html emails like it is the 1990s using tables. Inline styles are also the way to go.
Jul 29 '10 #22
JIM LU
1 New Member
thanks JKing . thanks,you let me know that using your knowledge flexibly and don't stuck in your mind-set! So,I use the table to solve it.But,i'll
think the solution of the question about the "max-" and "table-cell" !Thanks,i 'll warn myself don't stuck in my past!
Jan 17 '14 #23

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
9589
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
9423
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
1
9999
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,...
0
9866
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8876
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
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...
1
3967
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3570
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

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.