В том что Вы написали я не вижу принципиальной разницы, кроме того, куда подключать эти самые стили. Я бы рекомендовал в head.
например так.
var sheet = document.createElement('style')
sheet.innerHTML = "body{background:green;}";
document.head.appendChild(sheet);
так у меня работает так
$(document).ready(function() {
if($('div').index('div.dg-center') == 0){
$('div.dady-body').css({background: 'red'});
} else {
$('div.dady-body').css({background: 'blue'});
}
});
В момент срабатывания скрипта элемент еще не загрузился. Проверяли в консоли скрипт?
Попробуйте на document.ready назначить срабатывание скрипта. В JQuery
$(function(){
//code
} );