2010-06-14 5 views
0

Comment ajouter des styles CSS dans <body> ou <head>, placé dans un fichier javascript comme ceci:jQuery comprennent css

<style type="text/css"> 
    .popup-bg { 
     position: fixed; 
     left: 0; 
     top: 0; 
     width: 100%; 
     height: 100%; 
     background: #eee; 
    } 
</style> 

La seule façon est d'écrire un fichier CSS à l'intérieur javascript, il n'y a pas accès à html ou tout css externe.

Merci.

Répondre

1

utilisation addClass méthode de jquery:

$('body').addClass('popup-bg'); 

Mise à jour:

$(function(){ 
    $('head').append(' 
     <style type="text/css"> 
     .popup-bg { 
      position: fixed; 
      left: 0; 
      top: 0; 
      width: 100%; 
      height: 100%; 
      background: #eee; 
     } 
     </style> 
    '); 
    }); 
+0

ne peut pas l'utiliser, tous les styles doivent être écrit à l'intérieur js-fichier – Happy

+0

@Happy: Nous ne comprenons pas votre question, s'il vous plaît être plus précis. – Sarfraz

+0

De ce que j'ai reçu, il veut utiliser JavaScript pour ajouter les styles dans le document après qu'il ait été chargé ... – animuson

0
$('body').addClass('popup-bg'); 

Comme il est garanti d'être un seul élément body, la sélection sur l'élément lui-même fonctionne.

+0

il y a beaucoup d'autres styles, tous doivent être écrits en fichier javascript et ajouté avec à ou – Happy

0

Vous pouvez utiliser quelque chose comme $('body').addClass('popup-bg');

+0

ne peut pas l'utiliser, est mis à jour après – Happy

1

Vous pouvez créer <style> éléments, les ajouter à la document, puis utilisez

$('#styleId').text('.something { display: none; }'); 

ou autre.

$('body').append($('<style/>').attr("id", "myNewStyle")); 
$('#myNewStyle').text('.something { whatever: 10px; }'); 

Vous pouvez ajouter vos blocs de style à la tête, si vous le souhaitez.

modifier — bloc de style multi-ligne:

$('#myNewStyle').text(
' .something { ' + 
' font-size: 12px; ' + 
' font-weight: normal; ' + 
' color: #e0f0e0; ' + 
' }' 
); 
+0

cela ne fonctionne pas avec le texte multiligne – Happy

+0

Eh bien, @Happy, c'est parce que Javascript n'autorise pas les chaînes multilignes. Vous pouvez assembler une longue chaîne en Javascript en les ajoutant ensemble. Si les cordes ont des séparateurs de lignes, cela fonctionnera bien (même si je ne suis pas sûr de la différence). – Pointy

2

Si la classe est définie dans votre structure/balisage avec la classe alors:

$(".popup-bg").css({ position: fixed, 
     left: 0, 
     top: 0, 
     width: 100%, 
     height: 100%, 
     background: #eee 
}); 

OU pour l'ajouter à un particulier tag:

$("body").css({ position: fixed, 
      left: 0, 
      top: 0, 
      width: 100%, 
      height: 100%, 
      background: #eee 
    }); 

ET d'injecter ect il:

var style = document.createElement('style'); 

style.innerText = '.popup-bg{ position: fixed, 
      left: 0, 
      top: 0, 
      width: 100%, 
      height: 100%, 
      background: #eee 
    }'; 

document.head.appendChild(style); 
+0

Je pense qu'il veut créer de nouveaux blocs '