While working on Sombrero, I encountered a lot of things I did not know how to do properly. I hope they help someone.
Block elements normally fill up all the available width, except when you apply
float to them. I needed some element to take up the minimal width, without the side effects of floating or positioning.
display: table; is the solution I was looking for.
Full-width form fields
Another problem in my magic alignment layout where full-width form fields. Input elements do not take space like normal block elements, no matter the
width: 100%; works, but only as long as you have absolutely no borders, margin, or padding. To get around that, CSS 3 has a property to use the IE 5 box model, which includes padding and borders in the width:
I can’t imagine why I never noticed before, but it turns out CSS collapses margins on “regular” block elements. It’s complicated.
I never used it, but it seems like an interesting property. It makes things like headings appear inline with the content of the block below it.
Styling range input fields
Some modern browsers support input fields of
type="range", for imprecise number values. However, style on these elements is normally completely ignored.
-webkit-appearance: none;, which turns the slider track back into a normal box. Then apply the knob styling to the
::-webkit-slider-thumb pseudo element.
position all four corners
Another part in my alignment puzzle. Note that not all browsers support this. If you can’t do with 2 sides plus size, it is possible to specify all 4 and leave the sizing implicit.