CSS Tips
Personally, I dislike CSS. I find it difficult to use because of the lacking documentation and the fact that different Browsers implement things subtly different. Unfortunately, it is something that one has to use today in order to create funtioning web sites, and things are getting better all the time.
Some things that I have learned over time:
Style editor
A feature of Firefox, let's me edit and try CSS styles on the fly. I find it very conventient.
To access it:
- Open the Firefox menu
- More tools
- Developer tools
- Click on the
Style Editor
tab.
In addition, Firefox comes with a "Responsive Design" mode that let's you simulate the form factor of different devices. Granted, you can do this by just resizing the window but this is very convenient.
Sending query string with PHP
Normally, web browsers would cache JS and CSS files for performance. For normal usage, this is the best approach. For developing, this is a bit inconveneint as you may be debugging problems that may have been fixed, but the web browser is still using buggy versions of resource files.
To get around this, you can code your URLs to include a query string so that you can change the query string every time you make changes to resources.
In PHP, what I do, is add to the resource URL, a query string containing the modification time of the file. That way, when I update a resource file, it the query string changes automatically, so the cache expires and renders the latest version.
Position sticky
Very often you would like to have a header part of the page to be always displayed. I create this effect with the following CSS:
css-selector {
position: sticky;
top: 0;
z-index: 100;
The important setting is the posistion: sticky
which makes that element stick
to the window. The top: 0
positions the element to the top of the page.
Finally, the z-index: 100
makes it so that it will be rendered above other elements
rather than being obscured by them.
Flexbox and Grid
These are layout managers that can be used for arranging the page. For navigation bars, I prefer to use flexbox. Whereas for table like layouts, Grid is usually a good option.
You should consider using grid layout when:
- You have a complex design to work with and want maintainable web pages
- You want to add gaps over the block elements
You should consider using flexbox when:
- You have a small design to work with a few rows and columns
- You need to align the element
- You don’t know how your content will look on the page, and you want everything to fit in.