Skip to main content

Chris Coyier

Founder, writer, designer, spam-deleter, email personality


CSS Run-in Display Value

CSS has a value for the display attribute called run-in. It’s like this:

h3 {
  display: run-in;

The point is to allow a header to run into text below it, without sacrificing semantics or running into the problems you might run into trying to force it with other layout techniques.

Let’s take a closer look.… Read article “CSS Run-in Display Value”


Multiple File Input

File inputs can have an attribute of “multiple” which then allows multiple files to be selected in the file section dialog box. Firefox 3.6+ and WebKit browsers only are supporting it so far. Unfortunately the “multiple files” need to be within the same folder, as there is no interface for selecting one, moving folders, and selecting another.

<form method="post" action="upload.php" enctype="multipart/form-data">
  <input name='uploads[]' type="file" multiple>
  <input type="submit" value="Send">

Note that the “name” of the file input has brackets at … Read article “Multiple File Input”


Detect First Visible Element of Certain Class

Adds a class of “first” to the first element that has a class of “activity” that is visible in the browser window.

	var scrollTop = $(window).scrollTop();
	var windowHeight = $(window).height();		
	var first = false;
	$(".activity").each( function() {
		var offset = $(this).offset();
		if (scrollTop <= && ($(this).height() + < (scrollTop + windowHeight) && first == false) {
		} else {
Read article “Detect First Visible Element of Certain Class”

Dude, you browse with JavaScript on?

Dude, you browse with JavaScript on?

Uhm, yeah, why wouldn’t I?

It’s totally insecure. Hackers could destroy your computer.

Hackers? What is this 1995? And, no they can’t.

They can definitely steal information about you without you knowing.

Like what?

Like you’re address book information or your browsing history, depending on your browser and settings.… Read article “Dude, you browse with JavaScript on?”


#90: Simple TextMate Tips

TextMate is a mac-only code editor. Sorry to all the PC users this time around. If you’ve been watching these screencasts for a long time, you know I used to mostly use Coda. Since I’ve been working a lot more locally, I’ve been using much more TextMate, which I’ve always considered to be superior as a code editor but just wasn’t as convenient as Coda being all-in-one. I’ll cover some things I find cool and useful in TextMate, like vertical … Read article “#90: Simple TextMate Tips”


Local Previews of Images from File Inputs (fail)

A little while back there was a guest post about Ajax image previews. It’s a nice technique but it left myself and a few other commenters thinking: wouldn’t it be cool if you didn’t have to upload the image at all to preview it? After all, the image is on the persons computer already why can’t we just snag the local file path and use that as the src of an image.

Well, it’s that snagging of the file … Read article “Local Previews of Images from File Inputs (fail)”


Test if Element Supports Attribute

Not all browsers support all attributes on all elements. There are a number of new attributes in HTML5, so the idea of testing to see what kind of browser environment you are in becomes every increasingly important.

function elementSupportsAttribute(element, attribute) {
  var test = document.createElement(element);
  if (attribute in test) {
    return true;
  } else {
    return false;


if (elementSupportsAttribute("textarea", "placeholder") {

} else {
   // fallback
Read article “Test if Element Supports Attribute”