Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMichael Lee
11,797 PointsProblem centering display: inline-block
Hi, I'm using Firefox and I'm using the work around of display: inline-block; to get around the issue of the disappearing image when using display: block; in Firefox. However a 2nd issue is now occurring and it's completely puzzling me.
http://web.5vbs1az2zk.treehouse-app.com/about.html
As you can see the image is not being centered and seems to be ignoring the margin syntax.
The css code is listed below. It takes in everything but the margin.
.profile-photo { display: inline-block; max-width: 150px; margin: 0 auto 30px; border-radius: 20px; }
Please note, I get that the problem might be isolated to Firefox but as far as I know I need to be equipped to deal with these problems if I'm to keep a job in web development or at least find an alternative route that doesn't involve changing the display property.
I suppose turning off line wrapping on the line of the image could be one and keeping the display to the default. I thought I'd poke around and see if someone could tell me why the margin property was being ignored.
4 Answers
Jason Anello
Courses Plus Student 94,610 PointsHi Michael,
I see that you must have looked at the teacher's notes and cleared the float in .profile-photo
The image didn't actually disappear. If you take out the clear
you should have a horizontal scrollbar and if you scroll to the right you should see your image stuck at the right side of the header. It'll be in the top right corner of your page. This has to do with the floated header not being cleared.
Clearing the float in the profile image was the solution reached in an earlier post about this same issue.
A new problem has come up recently where people were getting gaps above their header. If the first element that you put in your section has a top margin then it will appear as a gap above the header. Try adding a short paragraph as the very first thing in your section element to see what I mean.
This is related to not clearing that float.
I recommend now that the float be cleared in the wrapper element since that's the first element after the header.
Add clear: both
to your existing wrapper rule:
#wrapper {
clear:both;
}
If you do this then you don't have to clear the float in your .profile-photo
.
To answer your question about margin auto -
Margin auto only works on block level elements. It doesn't work on inline or inline-block elements. To center those elements you can use text-align: center
on the parent element.
Derek Etnyre
20,822 PointsTry changing
display: inline-block;
to be
display: block;
and add: margin-left: auto; margin-right: auto;
to get image to center.
Michael Lee
11,797 PointsHi Derek, thanks for trying to help but I mentioned in my opening statement that display: block; causes the image to disappear in Firefox.
I was wondering what causes display: inline-block; to ignore the margin setting.
Michael Lee
11,797 PointsThanks Jason for that in-depth answer, your answer completely resolves the issue I had and I'm extremely grateful for your input :D.
Gabby Banowsky
1,804 PointsGabby Banowsky
1,804 PointsThanks so much Jason! Was having the exact same issue and it was driving me nuts!
Brian Peterson
Python Web Development Techdegree Student 13,634 PointsBrian Peterson
Python Web Development Techdegree Student 13,634 PointsWhy do IE and Firefox require the float to be cleared but Chrome does not?
Jason Anello
Courses Plus Student 94,610 PointsJason Anello
Courses Plus Student 94,610 PointsHi Brian,
The profile photo problem seems to be a firefox only issue and maybe some versions of IE. So it's possibly a bug in those browsers. Unless they're doing it right and chrome is getting it wrong.
The header gap problems I referred to happen in both firefox and chrome. So it's a general problem due to not clearing the floated header. So if you fix this general problem by having the wrapper clear the floated header then you end up not having the firefox problem with the profile photo.