The Curious Engineer

All blogs / Frontend / CSS / browsers

Impressive Webs

impressivewebs.com

Articles and tutorials on CSS, JavaScript, tools, debugging, and other areas of front-end web development and coding.

Frontend / CSS / browsersJavaScript / TypeScript

Posts
363 from 25 May 2008 to 23 Apr 2026
Posting
now and then (1 in the last year)
Kind
personal blog
Feed
https://www.impressivewebs.com/feed/

2026 1

  1. Transforming Healthcare with VR: Virtual Surgery and Patient Simulation

2024 1

  1. YouTube’s Time-Based UX Problem for Live Sports

2023 1

  1. Don’t Let ChatGPT Write Your Code

2022 4

  1. CSS Rules vs. CSS Rulesets
  2. Filestack: A File Uploader and Powerful APIs to Deliver and Transform App Content
  3. How to Disable JavaScript in Almost Any Browser
  4. A Review of ipwhois.io for Reliable Geolocation Data

2021 2

  1. Detecting Specific Text Input with HTML and CSS
  2. Are These the Most Interesting Front-end Developer Tools for 2021?

2020 6

  1. Fading in a Page on Load with CSS & JavaScript
  2. Solutions and Tools for Dealing with Broken Links in Web Pages
  3. Accessible and Keyboard-Friendly Hamburger Menu + Slide Out Navigation
  4. Adding CSS to a Page via HTTP Headers
  5. Front-end RSS Feeds (2020 Edition)
  6. CSS4 is a Bad Idea

2019 4

  1. The Weird World of Infinity in JavaScript
  2. So You Really Want to Learn React? Well, So Do I.
  3. DOM Element Dimensions and CSS Transforms
  4. Using the adoptNode() Method with Embedded iframes

2018 7

  1. A Little-known Fact About JavaScript Hoisting
  2. Being Aware of Initial Values in Your CSS
  3. A Huge List of Summer Learning Resources for Front-end Devs
  4. A Deeper Look at Generic Font Names in CSS
  5. On Leading and Trailing Spaces in HTML Attribute Values
  6. HTML5’s Global `hidden` Attribute
  7. Using the `for` Attribute on the `output` Element in HTML5

2017 5

  1. Cache Busting Front-end Resources: Is File Name Revving Still Necessary?
  2. Learning From “Support” Comments in the jQuery Source
  3. What is JSON? An Introduction and Tutorial for Beginners
  4. npm for Beginners: A Guide for Front-end Developers
  5. New Design for Web Tools Weekly

2016 2

  1. Fixing Styles on `code` Tags Nested Inside Links
  2. DOM Features You Didn’t Know Existed (Video & Slides)

2015 4

  1. CSS Positioning Basics (Screencast)
  2. My Talk and Slides from FITC Toronto 2015
  3. How to Write Great Web Development Articles and Tutorials
  4. A JavaScript & DOM E-Book Offer

2014 11

  1. Displaying Your MailChimp Subscriber Count with PHP and MailChimp’s API
  2. onchange vs. oninput for Range Sliders
  3. Almost Single Page
  4. Frontend RSS Feeds Revisited
  5. Cursor-Over-Text Behaviour in Browsers
  6. Goodbye, CSS Galleries
  7. w3schools: The Ugly, the Bad, and the Good
  8. Promoting Something? Here’s Some Advice.
  9. A Ridiculously Big List of Design Tools and Resources
  10. Everything is an Ad
  11. A Data-based Analysis of the CSS Standards Approval Process

2013 35

  1. A Revolutionary Blog Post
  2. On Simplicity
  3. input.select() — What’s the Correct Behaviour?
  4. Can We Ditch the Pinterest-Style Grid Trend Yet?
  5. Looking Forward to Reading: Smashing Book #4
  6. IE11 “Emulation” and Conditional Comments
  7. Animating from “display: block” to “display: none”
  8. Vertical Percentages in CSS
  9. A CSS Book for Beginners
  10. Syntax-Highlighted Code in HTML Emails in MailChimp
  11. SEO for Web Apps (Link Dump)
  12. jQuery Vertical News Slider
  13. 384 Pages of CSS
  14. QuestionMark.js – Shortcut Keys Displayed with a Shortcut Key
  15. Language-wide Features in CSS
  16. The Minimum Code for a CSS Transition
  17. What’s the Status of the ::selection Pseudo-element?
  18. Launching Soon: Web Tools Weekly
  19. HTML5 History API: A Syntax Primer
  20. Good Code Solves Problems
  21. Your Website is Your Product. Your Logo Is Not.
  22. Using tabindex with :focus
  23. Fundamentals of Creative Communication
  24. Fixing Backspace Back Button Functionality When Using Autofocus
  25. Quick Tip: Use HTML Comments to Indicate Pseudo-elements
  26. thatsNotYoChild.js — Fixing Parent-Child Opacity
  27. My Talk and Slides from jQueryTO
  28. Modular CSS with Media Queries and Sass
  29. When to Avoid the Descendant Selector
  30. JavaScript ‘this’ in Different Contexts
  31. Browsing Twitter Favorites From Talented Developers
  32. I Can’t Create
  33. Web Development and Tech Email Newsletters I Subscribe to
  34. My Current JavaScript Design Pattern
  35. Diversity in Sports: Still an Issue in 2013?

2012 87

  1. Simple Tools for Front-End Developers
  2. Links for Advanced JavaScript Reading
  3. New Book: Learning CSS3 Animations
  4. USB Usability
  5. Differences Between CSS2.1 and CSS3+
  6. New Book: HTML5 Boilerplate Web Development
  7. IDs Will Not Make Your Documents More Semantic
  8. IE10 CSS Hacks
  9. CSS Things That Don’t Occupy Space
  10. Custom Zenburn Theme for Sublime Text 2
  11. Clearing Floats: Why is it Necessary Even in “Modern” Browsers?
  12. Animation Scripts, Libraries and Plugins
  13. JavaScript Array Methods Reference
  14. Default CSS Display Values for Different HTML Elements
  15. New Section: The CSS Network
  16. Web Development for Beginners (Resources)
  17. Book Giveaway: Think Like a Programmer
  18. Introducing: CSSValues.com
  19. Dropping -ms- Vendor Prefixes for IE10
  20. Parallax Scrolling Scripts and Plugins
  21. The Truth About IE10
  22. Sass on Windows with Scout App
  23. Setting Up Sass on Windows
  24. 10 Conference Videos for Front-End Developers
  25. Creeps and Weirdos in the CSS Spec
  26. Defining the Click Area
  27. Should a Project’s Cost Depend on How Much it’s Worth to the Client?
  28. Responsive Ads Link Dump
  29. How Do You Mark Up A Single Link or Button?
  30. Books, Podcasts, and More for Front-End Developers
  31. Loading a Different jQuery Version for IE6-8
  32. JavaScript String Methods Reference
  33. Using Min/Max Width and Height in CSS
  34. HTML Entity Reference for Common Characters
  35. Another Redesign for Impressive Webs
  36. Some CSS and HTML5 Slide Decks Worth Checking Out
  37. What Advice Would You Give to a CSS Beginner?
  38. 3 Books Worth Checking Out for Web App Developers
  39. The CSS Clip Property
  40. Typesetting Paragraphs on Web Pages
  41. Animating CSS3 Gradients
  42. jQuery/JavaScript Tools and Plugins Worth Checking Out
  43. Some Random JavaScript Coding Tidbits
  44. The Folly of Allowing Up/Down Voting for Individual Comments
  45. Web Designer Magazine Feature
  46. HTML9 Boilerstrap: The Story and the Unexpected Explosion
  47. CSS/HTML Tools and Resources Worth Checking Out
  48. Fixed Table of Contents Drop-Down Menu (jQuery Plugin)
  49. CSS: The Good Parts
  50. Mimic ‘onmouseout’ with CSS3 Transitions
  51. Some Useful Docs and Guides for Front-End Developers
  52. CSS3 Structural Pseudo-class Expressions Explained
  53. Ancient Cringe-worthy Posts on Your Favourite Web Design Blogs
  54. Dealing With Gray-area Comment Spam
  55. What Do You Want to Learn Next in This Crazy Industry?
  56. Linking to jQuery: Always Reference a Specific Version
  57. CSS Selectors Defined
  58. Alternative Units for CSS3 Rotation Transforms
  59. Should the Standard Property Be Omitted for Some CSS3 Features?
  60. Some JavaScript Resources for Web App Developers
  61. Pure CSS Tooltips Revisited
  62. Book Giveaway: HTML5 & CSS3 for the Real World
  63. CSS3 Attribute Selectors: Substring Matching
  64. Screencast: Why HSL Colors are Awesome
  65. Weird CSS Color Names
  66. Roundup of HTML-Based Slide Deck Toolkits
  67. Understanding em Units in CSS
  68. Release Histories for all Major Browsers
  69. CSS: The Bad Parts
  70. CSS3 Box Shadow Syntax Breakdown
  71. CSS Specificity Should Be (Mostly) Irrelevant
  72. Why Avoid Non-semantic Classes? Because They’re Non-semantic!
  73. Why Use the Triple-Equals Operator in JavaScript?
  74. Browser Support for CSS3 Selectors
  75. Options for Styling Text Links and Hover States
  76. Understanding CSS Shorthand
  77. Every Time You Make a Good Business Decision, a Puppy Gets Cloned
  78. Callback Functions in JavaScript
  79. Book Giveaway: The Book of Ruby
  80. A Call For Better Fragment Identifiers
  81. Learn to Program
  82. New CSS3 Properties to Handle Text and Word Wrapping
  83. The All-New CSS3 Click Chart
  84. Current Page Link Styles
  85. Textarea Auto Resize
  86. Things We Wish Clients Would Say
  87. Why Use jQuery for Simple JavaScript Tutorials?

2011 75

  1. Redirect Wildcard Subdomains to Primary Domain on Media Temple’s (dv) Hosting
  2. Skills for Front-End Developers
  3. What’s the Difference Between Classes and IDs in CSS?
  4. Some HTML5 Resources Worth Checking Out
  5. Are Web Development Search Results Being Manipulated?
  6. How Page Speed Increases Website Conversions (Sources)
  7. Understanding CSS’s vertical-align Property
  8. Reverse Ordered Lists in HTML5
  9. The Difference Between “Block” and “Inline”
  10. Introducing “CSS Basics”
  11. Using Absolute Positioning in CSS
  12. Don’t Forget About “transition: all”
  13. What’s the Difference Between Margins and Padding?
  14. Image Tint With CSS
  15. Is HTML5 Good for SEO?
  16. Book Review: Canvas Pocket Reference
  17. Cross-Browser CSS Development Workflow
  18. One Thing I Don’t Like About Drop-Down Menus
  19. How Do I Target IE7 or IE8 Using CSS Hacks?
  20. How Do I Force the Browser to Use the Newest Version of my Stylesheet?
  21. What’s the Best Way to Add CSS to a Web Page?
  22. Centered Heading Overlaying a Horizontal Line with CSS
  23. The Subtleties of CSS3 Transitions
  24. Rolled Out a New Design
  25. Limitations on Styling Visited Links
  26. Dealing with Empty Elements in CSS3 Animations
  27. Some JavaScript Resources Worth Checking Out
  28. Health Tips for Web Developers
  29. How Do Browsers Render the Different CSS Border Style Values?
  30. Mixing CSS3 Prefixed Properties with Keyframe Animations
  31. Calling a PHP File From HTML’s Script Tag
  32. Why Browsers Aren’t TVs (But We Don’t Care)
  33. Triggering CSS3 Transitions With JavaScript
  34. Screencast Series on HTML5 and CSS3
  35. How to Validate CSS3
  36. CSS in Real Life (aka “CSS Puns”)
  37. Introducing: Animation Fill Code
  38. Replacing Subtle Flash Animations with CSS3
  39. Why I Hate MLB.com’s Navigation
  40. Little-Known CSS3 Typographic Features
  41. CSS’s ‘space’ and ‘round’ Values for background-repeat
  42. The “inherit” Value for CSS Properties
  43. CSS3 Radial Gradient Syntax Breakdown
  44. CSS3 Transitions Without Using :hover
  45. Multiple Borders with CSS
  46. Aside vs. Blockquote in HTML5
  47. Is Your Brand More Important Than Your Website’s Performance?
  48. HTML5’s New “form” Attribute
  49. Responsive Web Design: I Hope It’s For Real This Time
  50. What’s the Best Source for Browser Usage Stats?
  51. About Obsolete Features in HTML5
  52. A New Book on HTML5 and CSS3
  53. The Browser Performance Pickle
  54. A Bookmarklet to Fix Wikipedia’s Layout in a Wide Browser Window
  55. Background-Clip in CSS3
  56. An Option to Mimic CSS3 Text Shadow in Internet Explorer
  57. CSS3 Linear Gradient Syntax Breakdown
  58. Here’s Something Interesting About CSS Borders
  59. Why Developers Should Be Studying HTML5’s Design Principles
  60. Targeting HTML5’s Semantic Elements with CSS
  61. A New Way to Trigger hasLayout on Elements in Older Versions of IE?
  62. Scoped Styles in HTML5
  63. Benefit From Flame Wars in the Web Design Community
  64. Browser Support for CSS3: What’s the Current Status?
  65. My Preferred Syntax Style for HTML5 Markup
  66. How is the DOM Affected by Improperly Nested HTML Elements?
  67. Where Do You Send Users When They Log In to Your App?
  68. Here’s Something Interesting About the CSS Color Property
  69. Your iPhone App is Waaaaay Too Expensive!
  70. [insert new technology here] is the New [insert old technology here]
  71. What is “Good Design”?
  72. 5 Jobs I’d Prefer Over Web Design
  73. What’s the Difference Between “:before” and “::before”?
  74. When to Use the HTML5 “section” Element
  75. Easy HTML5 Template

2010 75

  1. The CSS3 Resize Property
  2. Understanding HTML5 Validation
  3. Recreating the MLB.com Content Switcher with jQuery and CSS3
  4. Is it Accurate to call HTML5-Based Code Forking “Graceful Degradation”?
  5. What’s the Best Way to Write a JavaScript For Loop?
  6. Video For Everybody — Except Developers!
  7. Bold and Italic in HTML5
  8. How to Do Absolutely Everything Ever in jQuery, CSS3, & HTML5
  9. Slide-Down Mega Drop-Down Menus with Ajax and jQuery
  10. There’s No Such Thing as a “Standards-Compliant” Browser
  11. CSS Terms and Definitions
  12. Things Worth Noting About CSS Attribute Selectors
  13. You’re Not Stuck in a Cookie Cutter Design!
  14. List of Cross-Browser CSS Properties
  15. Design Blogging Terms We Can Probably Live Without
  16. Don’t Use Conditional Comments to Create Classes for IE7+
  17. CSS Property Ordering: Group Similar? Or Alphabetical?
  18. How Does IE9 Handle HTML5’s New Semantic Elements?
  19. HTML5 Support in Internet Explorer 9
  20. CSS3 Support in Internet Explorer 9
  21. How Do You Decide Which Web Design or Programming Books to Buy?
  22. A Problem With Using “overflow: hidden” to Clear Floats
  23. Decisions CSS Developers Need to Make
  24. Maintainable CSS3 Using PHP
  25. Always Pre-Load Mandatory Content
  26. CSS Counters: counter-increment and Friends
  27. Illustrating the Potential Power of Design
  28. Don’t Use PHP for Browser Detection (for CSS)
  29. Animated Sprites with CSS3 Transitions
  30. Stop Perpetuating the Myth — People Do Read Online
  31. Give Your CSS Some Room to Breathe
  32. Things You Might Not Know About Conditional Comments
  33. Making Unobtrusive JavaScript Practical Again
  34. Word-Wrap: A CSS Property That Works in Every Browser
  35. How to Resolve a Fluid Header/Footer Problem When the Window is Resized
  36. Nothing to See Here — Just a Redesign
  37. IE-only Styles: Where Should They Be Placed?
  38. The Complete Guide to Commenting on Web Design Blogs
  39. Coding for IE6 = Progressive Enhancement
  40. Should You Ever Use Longhand for Padding and Margins in CSS?
  41. What Does “width: 100%” Do in CSS?
  42. Challenge: Can You Explain This Opera CSS Bug?
  43. The CSS white-space Property Explained
  44. Should A Website Be Designed According to the Standards of its Niche?
  45. CSS3 Border Radius for Hover States
  46. CSS3 Best Practices
  47. Using CSS3 Text Shadow for Active Link States
  48. Dear Microsoft, You Missed the Boat
  49. Not Another CSS3 Click Chart Update!
  50. Better Page Corner Ads with CSS3 Transforms
  51. Center Multiple DIVs with CSS
  52. Is WordPress Screwing Up Your SEO?
  53. More Additions to the CSS3 Click Chart
  54. jQuery Tutorial for Beginners Downloadable PDF
  55. What is Inline-Block?
  56. Updates to the CSS3 Click Chart
  57. The 3 Most Important Things to Consider Before Starting a Design
  58. Why I Hate .net Magazine (But I Still Love It)
  59. CSS3 Glow Tabs
  60. Using JavaScript’s Try-Catch Statement
  61. How to Dynamically Highlight Content Like Wikipedia Using CSS3
  62. jQuery Tutorial for Beginners: Nothing But the Goods
  63. CSS Opacity: A Comprehensive Reference
  64. CSS Font Shorthand Property Cheat Sheet
  65. Inject Custom Ad Blocks Between Paragraphs in WordPress
  66. Ajax From the Ground Up: Part 3 — Getting a Response From the Server
  67. How to Get 100+ Comments on a non-Contest Blog Post
  68. Getting Buggy CSS Selectors to Work Cross-Browser via jQuery
  69. Recreating CNN’s Beveled Navigation Buttons with Pure CSS
  70. A JavaScript Content Switcher That Works Without JavaScript
  71. Screencast: Why You Shouldn’t Use CSS Font Shorthand
  72. CSS3 Click Chart
  73. New Website Launch: Interviews by Design
  74. A Stationary Logo That Changes on Page Scroll with CSS
  75. Response to “In Defense of Vertical Navigation”

2009 31

  1. Deep Linking in JavaScript and Ajax Applications
  2. Building an Ajax Application with Progressive Enhancement
  3. Impressive Webs Redesign
  4. The Right Way to Add Custom List Markers to Unordered Lists
  5. Audio Comments on Blogs — Now That’s a Great Idea!
  6. Will EOT Become the Standard for Font Embedding?
  7. Take the Pedals Off Your Bicycle and Become a Better Web Developer
  8. The Ultimate Guide to Embedding Sound in Web Pages
  9. 10 Ways to Generate Ideas for Web Development Articles & Tutorials
  10. My First Smashing Magazine Article
  11. Avoiding Problems With JavaScript’s getElementById Method in Internet Explorer 7
  12. CSS Opacity That Doesn’t Affect Child Elements
  13. Add a Custom “Trendy” Border Around Blog Images With CSS & JavaScript
  14. A Consideration of Variable and Function Scope in JavaScript
  15. 10 JavaScript Quick Tips and Best Practices
  16. A Primer on the CSS Font Shorthand Property
  17. A Detailed Look at the z-index CSS Property
  18. Ajax From the Ground Up: Part 2 – Sending Data to the Server
  19. Ajax From the Ground Up: Part 1 – XMLHttpRequest
  20. Everything You Need to Know About !important CSS Declarations
  21. How To Put a Multi-Line Indent on a Styled Blockquote
  22. 25 Classic Web Design Articles That Significantly Impacted the Way We Code
  23. 10 WordPress Tips to Make Your Blog Look Like a Website (for Beginners)
  24. 10 Essential DOM Methods & Techniques for Practical JavaScript
  25. 10 Useful CSS Properties Not Supported By Internet Explorer
  26. JavaScript Folder Collapser for Dynamic Content (Tutorial)
  27. 10 Cross-Browser CSS Properties You’ve Probably Forgotten
  28. 7 JavaScript Differences Between Firefox & IE
  29. How to Style a “Call to Action” Area with Minimal Code
  30. Equal Height Columns with JavaScript (Full Version)
  31. JavaScript-Powered HTML Table Code Generator

2008 12

  1. New Features of Adobe’s Creative Suite 4 (CS4 Webcast)
  2. Why IE6 is the Greatest Browser Ever Made
  3. 5 Ways to Turn Off Website Visitors
  4. Equal Columns with CSS
  5. Cleaner HTML by Avoiding ‘Attributitis’
  6. SEO Rules vs. SEO Concepts
  7. 5 Tips for Better CSS Files
  8. Must-Use Methods to Spam-Proof Your Email Address
  9. IE6 Ghost Text Bug (With Multiple Solutions)
  10. Should a Web Developer Be Concerned With SEO For Client Sites?
  11. Equal Column Height Using JavaScript
  12. Do You Comment Your DIVs?