2009-08-27 5 views
0

Je dispose d'un fichier de la peau qui contient:Peaux et Stylesheet Noob question

< asp:TextBox runat="server" CssClass="FixedFont"/> 

Dans le même dossier que le fichier de la peau, est le fichier CSS suivant. Le fichier Css contient:

.FixedFont 
    { 
    font-family:Courier;  
    } 

Enfin, j'ai une page ASPX qui contient le contrôle suivant:

<asp:TextBox ID="TextBox1" runat="server">Test</asp:TextBox> 

Quand je regarde la page ASPX en mode de conception ou d'exécuter la page, je vois que la L'attribut font-family sur le style affecte le contrôle textbox, c'est-à-dire qu'il est changé en Courier.

Cependant, ce que je voudrais aussi faire est de définir un style local sur ma page ASPX,

.DefaultWidth 
    { 
    width: 300px; 
    } 

... et ont tous mes TextBoxes afin qu'ils soient de la même largeur.

Si je mets la propriété CssClass de TextBox1 à « DefaultWidth » ...

<asp:textbox ID="TextBox1" CssClass="DefaultWidth">Hello</asp:TextBox> 

... la largeur de la zone de texte est changé en 300px mais je perds l'effet de la peau appling la police fixe Style de courrier.

Pour obtenir les effets BOTH à appliquer, l'effet DefaultWidth et l'effet textbox de police fixe, je dois définir la propriété CSSClass à "DefaultWidth FixedFont", ce qui, pour moi, semble annuler l'avantage d'avoir la peau dans le première place. Je suppose que je m'attendais à ce que l'effet soit CUMULATIF, à moins que j'ajoute un style en conflit avec le SKIN, auquel cas, je m'attendais à ce que la classe locale soit appliquée sur l'effet de la peau. Par exemple, si j'appliquais une deuxième classe, Class2, qui incluait également une spécification de font-family en plus d'autres effets, je m'attendrais à ce que la police spécifiée dans Class2 remplace celle du style FixedFont. Mais cela ne semble pas être ce qui se passe ici.

Quelle est la meilleure façon de gérer une telle situation? J'imagine très souvent vouloir avoir une série de textboxes qui correspondent tous en largeur, donc j'imagine que je vais très souvent vouloir spécifier une CssClass sur un contrôle en plus d'utiliser les effets appliqués au contrôle en type dans le fichier skin.

La solution est-elle de ne PAS utiliser le CSS dans la PEAU elle-même? Cela semble avoir des inconvénients, aussi, du côté de la maintenance.

Un problème secondaire que j'ai est que si je déclare une feuille de style avec la classe suivante ..

.Button 
{ 
    background-image: url('/images/button.gif') 
} 

... et définissez la propriété CssClass d'un bouton ASP pour « Bouton », je vois l'image a été posée sur le bouton.

Cependant, si j'entrez le code suivant dans le fichier de la peau

il ne trouve pas l'image.

Le dossier images est un premier dossier de premier niveau à la racine du site Web.

Aucune idée de la raison pour laquelle il ne capte pas l'image.J'ai essayé d'autres voies, mais c'est la seule qui me semble avoir du sens. Par ailleurs, l'image est appliquée en mode design, mais elle disparaît lorsque l'image est exécutée.

Répondre

0

Je ne sais pas si je comprends bien votre question, mais comme je vois d'ici, ce que vous devez avoir à déclarer dans votre style « local »:

textbox.fixedfont { width:200px; } 

ou simplement à chaque zone de texte si vous êtes sûr de tous les affecter à la zone de texte même largeur, peu importe la peau ...

textbox { width:200px; } 

Si ce pas ce que vous demandez, s'il vous plaît être plus clair.

+0

Je pense que vous avez peut-être manqué certains points clés en raison du fait que le code que j'ai entré n'était pas formaté correctement et était caché. Peut-être essayer de le lire à nouveau. J'ai également ajouté une question secondaire. Merci – ChadD

+0

Ok, c'est un peu grec pour moi parce que je ne suis pas un programmeur, mais je suis un concepteur donc je pourrais aider un peu si je découvre certaines choses. La deuxième question, pas sûr, mais est nécessaire d'utiliser le/avant les images du répertoire ?? Normalement, la déclaration d'une image qui se trouve dans le répertoire images à un niveau inférieur à la racine doit être background-image: URL ('images/image.jpg'); En outre, si vous souhaitez arrêter la mosaïque, vous devez utiliser background-image: URL ('images/image.jpg'); Position d'arrière-plan: centre du centre;/* pourrait être X px et Y px */ background-repeat: non-repeat;/* ou tuiles hor ou vert */ – Billeeb

+0

Je pense que je comprends mais je ne sais plus encore, hahaha. Voyons voir. ne pouvez-vous pas utiliser la zone de texte {xxx} dans votre page? Cela affecterait chaque zone de texte. Si c'est le cas, alors vous devriez essayer de faire une nouvelle classe pour les deux, la police et la largeur de la zone de texte, quelque chose comme FxFont-TBWidth {font-family: courier; largeur: 200px; donc vous faites CssClass = "FxFont-TBWidth". Une autre solution devrait utiliser les identifiants. Mais ce serait fou (vous devriez faire # textbox1, # textbox2, # textbox3, etc {width: 200px}, mais je ne comprends pas pourquoi vous ne pouvez pas utiliser textbox {xxx} pour affecter une zone de texte ... – Billeeb