- This topic is empty.
-
AuthorPosts
-
February 8, 2013 at 3:58 am #42565iamacatpersonParticipant
I understand that it’s supposed to be those one-off solutions using some arbitrary number to make the layout work.
But how about when you need to use “margin-top: -32px” (for example) for an element that needs to overflow outside the box? Think about a paperclip image that needs to be positioned with seemingly arbitrary numbers as a design element to a specific div box. Is this considered a “magic number” too?
Or let’s say you have a main-content block and for styling purposes, you like this to overlap the top section a bit so you add again “margin-top: -20px;”. Like in this image:
![Alt text](http://i48.tinypic.com/15x9xc8.png)
Is this also a magic number?
February 8, 2013 at 6:27 am #123785Paulie_DMemberNegative margin is a handy property.
However, there are a couple of ways of achieving the overlap you mentioned but they work in different ways.
Negative margin is one and Relative positioning is another. Which one you use will depend on your required layout.
I’ve created a small example to show the principal differences.
February 8, 2013 at 3:50 pm #123819Chris CoyierKeymasterThis is a great question. I’d say in the example case it’s not a magic number. It’s a specific design choice, like any other positioning or spacing. To me magic numbers are more related to “fixing” problems. They are also often related to fonts as well. Not just directly font-size or line-height or whatever specifically but anything that is affected by those things.
February 8, 2013 at 3:51 pm #123820Chris CoyierKeymasterIt would be sweet to start collecting examples of magic numbers for a blog post!
February 8, 2013 at 3:56 pm #123821zachstronautMemberOne magic number that comes to mind for CSS would be zero, as in:
-webkit-transform: translateZ(0);
This is the cause of and solution to a number of problems in Webkit based browsers, especially Mobile Safari.
If you transform any elements at all in your code, you may need to apply this transformation to the parent element(s), too in order to increase performance and reduce flicker.
It can also be a way to get better performance when animating opacity.
February 8, 2013 at 4:07 pm #123822Kitty GiraudelParticipantmargin-left: -13px
February 8, 2013 at 5:42 pm #123832petridiscParticipantletter-spacing: -.05em;
is good for tightening up most larger headlinesFebruary 9, 2013 at 9:59 am #123884Paulie_DMemberfont-size:0;
For the parent element when using **inline-block** to remove the whitespace.
February 9, 2013 at 10:38 am #123901iamacatpersonParticipant**chriscoyier:** Yes, a blog entry about magic numbers would be nice for discussion’s sake and clarity. ;)
But given some of the examples, I now have a clearer notion of what magic numbers are. As I understand it, magic numbers are used as a fix when there could have been a more proper way of achieving a specific layout.
In my example, it isn’t a magic number because that’s the only way it could have been achieved (whether using _margin-top_ or _top_) and the layout won’t necessarily break if I remove that number.
February 9, 2013 at 1:41 pm #123927KeithPickeringMemberWhat Chris said. Magic numbers are values that are used in response to a problem because they “just work”. If you KNOW that you want the element to be exactly 32px higher, that’s not a magic number; it’s a design choice.
It’s similar to !important…if you KNOW you never want something to be overridden, it’s fine to use. But if you use it to fix a specificity problem, things can get messy.
-
AuthorPosts
- The forum ‘CSS’ is closed to new topics and replies.