
Mastering CSS for Freelance Web Development Projects
CSS is key to delivering responsive, accessible, and visually appealing freelance projects. Here, I explore essential techniques and practices to master CSS.
Articles
This is a very broad category within my articles which encompasses any aspect of web development, from initial design and architecture to coding, testing, and deployment.
Below you will find a subset of articles from my blog specifically about Development. This is an area that I have worked with for many years, and have managed to write about quite a few times. There are three hundred thirty‑two collected together for you below.

CSS is key to delivering responsive, accessible, and visually appealing freelance projects. Here, I explore essential techniques and practices to master CSS.

CSS preprocessors like Sass and Less enhance standard CSS with features like variables and nesting. Here, I explore their benefits and why they're essential.

Object.freeze(), Object.seal(), and preventExtensions()`Object.freeze()`, `Object.seal()`, and `preventExtensions()` explained clearly, including what each allows, what they block, and why shallow locking matters.

visibility: Hiding Elements Without Affecting LayoutCSS `visibility` hides elements without altering layout. Here, I explain its use cases, differences from opacity, and how it maintains document flow.

opacityCSS `opacity` controls transparency, from fully opaque to invisible. Here, I explain how it works, its interaction with layout, with practical examples.

Optimise HTML markup for SEO and accessibility with semantic elements, heading structure, alt text, clean code, anchor text, and crawler‑friendly structure.

Number.isNaN(), Number.isFinite(), and Number.isInteger() in JavaScriptNumber.isNaN(), Number.isFinite(), and Number.isInteger() explained through strict numeric checks, coercion traps, parsing boundaries, and validation.

Browser and Node.js JavaScript compared through host APIs, globals, modules, async behaviour, DOM access, server APIs, and environment mix‑ups cleanly.

A fairly entry‑level overview of the basics of CSS positioning. Learn how to use `static`, `relative`, `absolute`, and `fixed` positioning with examples.

Function declarations vs. function expressions vs. arrow functions in JavaScript, including hoisting, `this`, readability, and when each style fits best.

String.startsWith(), endsWith(), and includes() in JavaScriptUse startsWith(), endsWith(), and includes() in JavaScript for clearer string checks, case‑sensitive matching, position arguments, and readable intent.

window.resize Events in iOSUnderstand phantom window.resize events in iOS Safari, including dynamic browser UI, viewport changes, orientation, user interaction, and mitigation patterns.

for...in vs. for...of in JavaScriptCompare for...in and for...of in JavaScript, including keys versus values, arrays, plain objects, iterables, inherited properties, and intent cleanly.

JSON.parse() and JSON.stringify() Explained for Beginners`JSON.parse()` and `JSON.stringify()` explained clearly, including when to convert data, common mistakes, localStorage use, and why functions disappear.

Array.from() and Array.of() in JavaScript`Array.from()` and `Array.of()` in JavaScript explained with NodeLists, array‑like objects, generated arrays, and why `new Array()` can still catch people out.

arguments Object vs. Rest Parameters in JavaScriptThe `arguments` object vs. rest parameters in JavaScript, including readability, array behaviour, arrow function differences, and modern best practices.

Understand why HTML form values are always strings in JavaScript, plus safe conversion for numbers, booleans, checkboxes, radio buttons, and FormData.

Use object property shorthand and computed property names in JavaScript for cleaner literals, derived keys, method shorthand, and overwrite cautions.