Load domain-specific CSS file on a multisite I have a Multisite Drupal 7 install.  

I use one theme for all sites, and it lives at sites/all/themes.  

Each domain has its own settings for the theme where you specify classes so you can target each in the css.  This allows me to not have to copy over the theme to each sites/site1/themes, and to not have to create sub themes for each one.  Less overhead.

So I have 1 giant css file, that contains all the css tweaks for each sites look.  

But I would like to separate each sites css into its own file.  

So I can have site1.css, site2.css, site3.css, and so on.  They would all need to be located in the theme at sites/all/themes.  

How would I tell Drupal to load site1.css when on site2.com...and so on?
It's kinda messy, but you might be able to do something like the following in a custom module:

function mymodule_preprocess_html() {
  $site = $_SERVER['HTTP_HOST'];

  switch ($site) {
    case 'siteurl1':
      //Add your CSS for site 1 here with drupal_add_css
      break;
    case 'siteurl2':
      //Add your CSS for site 2 here with drupal_add_css
      break;
    case 'siteurl3':
      //Add your CSS for site 3 here with drupal_add_css
      break;

  }
}


Or if you specifically want it in your theme files you could do the same in template.php

function mytheme_preprocess_html(&amp;$variables) {
  $site = $_SERVER['HTTP_HOST'];

  switch ($site) {
    case 'siteurl1':
      //Add your CSS for site 1 here with drupal_add_css
      break;
    case 'siteurl2':
      //Add your CSS for site 2 here with drupal_add_css
      break;
    case 'siteurl3':
      //Add your CSS for site 3 here with drupal_add_css
      break;

  }
}


To be honest I think you could use hook_preprocess_page in the module as well.

Many ways to skin a cat and all that jazz.