2010-09-24 11 views
3

Comment puis-je enregistrer un bloc de code CSS dans un contrôle ascx?Comment puis-je enregistrer une page css à partir d'un contrôle ascx?

Puis-je avoir juste

<head id="head" runat="server"> 
    <style type="text/css"> 
     .customClass 
     { 
     background-color: Lime; 
     } 

     </style> 
</head> 

Partout dans la page ascx? Je ne semble pas fonctionner?

+0

Inclure les règles CSS dans votre balise 'head' comme vous montrez fonctionnera en effet, mais je ne suis pas sûr de ce que vous entendez par" n'importe où dans la page ascx. " Les pages HTML ne peuvent avoir qu'une seule balise 'head', donc si vous insérez cet extrait dans votre contrôle utilisateur, le balisage ne sera pas valide – wsanville

Répondre

5

Vous avez three options to insert CSS dans une page:

  • feuille de style externe
  • feuille de style interne
  • Style en ligne

L'élément style doit être enfermé dans l'élément head. Si vous tentez de mettre en forme des éléments contenus dans un contrôle utilisateur, vous pouvez utiliser l'une de ces trois options. Comme une note (surtout mon avis) en ligne style est 99,9% du temps la mauvaise décision.

Une option consiste à exposer un ContentPlaceHolder dans votre Site.Master à l'intérieur de la section d'en-tête. Ensuite, en utilisant ce ContentPlaceHolder sur les pages où vous utilisez votre contrôle utilisateur, vous serez en mesure de placer un élément link en spécifiant une feuille de style pour votre contrôle utilisateur.

Une autre option consiste simplement à mettre les règles de style pour votre contrôle utilisateur dans la feuille de style utilisée pour l'ensemble de votre site.

8

Les styles doivent être définis dans la section head de votre code HTML. Cela vaut pour les balises style et les balises link qui enregistrent des fichiers CSS externes.

Si votre page possède une balise head avec l'attribut runat="server", vous pouvez y accéder par programmation via la propriété this.Page.Header.

La méthode que j'utilise habituellement quand j'ai besoin d'ajouter quelque chose entre l'ouverture <head> et la fermeture </head> est une méthode comme celle-ci. Passez simplement l'url à votre feuille de style.

public void AddStylesheet(string url) 
{ 
    string link = String.Format("<link rel=\"stylesheet\" type=\"text/css\" href=\"{0}\" />", url); 
    this.Page.Header.Controls.Add(new LiteralControl { Text = link }); 
} 
0
<style type="text/css"> 
     @import url(user_stylesheet.css) 
     .customClass 
     { 
      background-color: Lime; 
     } 

    </style> 

Dans ce cas, le code CSS ne sera rendue lorsque usercontrol rendu.