none
Verwendung von mehreren Stylesheet-Dateien in einer ASP.NET-Webanwendung RRS feed

  • Allgemeine Diskussion

  • Hallo,

    bei einer ASP.NET-Webanwendung, die mit Visual Studio 2010 (Programmiersprache C#) entwickelt wurde,  habe ich versucht, mit mehreren Stylesheet-Dateien zu arbeiten. Diese liegen in dem Projekt im Ordner  ~/App_Themes/Design.

    In den einzelnen Web Forms habe ich folgendermaßen festgelegt, welche Stylesheet-Datei verwendet werden soll:

    <head runat="server">

     <title>agrarservices.net</title>

     <link rel="stylesheet" type="text/css" href="~/App_Themes/Design/default.css"/>

    </head>

    Verwendet wird das Stylesheet dann im Web Form wie folgt:

    <div id="mitte">

    ...

    </div>

    Das funktioniert aber dann nicht mehr, wenn es in den Stylesheet-Dateien Elemente mit gleichen Namen aber unterschiedlichen Formatierungseigenschaften gibt, wie in nachfolgendem Beispiel:

    In der Datei default.css steht:

           #mitte

           {           

                 text-align: left;

                 background-color: #f7f2e4;

                 font-size: 8pt;

           }

    In der Datei default_zf.css steht:

           #mitte

           {           

                 text-align: center;

                 background-color: oldlace;

                 padding-left: 20px;

                 padding-right: 20px;      

           }

    Trotz Zuweisung (siehe oben) der Stylesheet-Datei default.css im Web Form wird bei der Ausführung die Formatierung aus der Datei default_zf.css herangezogen.

    Gibt es eine Möglichkeit, sicherzustellen, dass in den Web Forms immer die gewünschte Stylesheet-Datei genommen wird, ohne den Aufwand zu betreiben, dass die Bezeichner über alle Stylesheets hinweg eindeutig benannt werden?

    Mfg

    Dörte

    Freitag, 11. Mai 2012 10:52

Alle Antworten

  • Kann sein das die zf noch in einer übergeordneten Datei drin ist? Ansonsten wird normalerweise das css ausgeführt, welches als letztes verlinkt wurde.
    Freitag, 11. Mai 2012 15:15
  • Hallo Dörte,

    hast du in der web.config Datei das gewünschte Design angegeben?

    <system.web>
       <pages theme="Design" />
    </system.web>

    Dann werden automatisch auf allen Seiten alle .css (und .skin) Dateien
    aus dem angegebenen Design-Ordner eingebunden. Du kannst also das
    <link> Element aus allen Seiten wieder entfernen.

    Wenn man auf einer bestimmten Seite ein eigenes Theme angeben
    will, macht man das über ein Attribut in der Page Direktive

    <%@ Page Title="Home Page" Theme="Design" ....

    Diese Theme Angaben überschreiben inline styles. Wenn man das nicht
    möchte, verwendet man statt dessen StyleSheetTheme
    http://msdnbangladesh.net/blogs/jalal/archive/2009/04/11/difference-between-theme-and-stylesheettheme-explained.aspx

    Wenn du mit mehreren Designs arbeiten magst (so sieht für mich die
    default_zf.css Datei aus), dann erstellt man dafür eigene Ordner
    und packt da alle benötigten .css (und Bilder, Icons, usw.) rein:

    App_Themes/Design/
    App_Themes/Alternative/

    Das kann man dann bequem in der web.config umschalten und alle
    Seiten erscheinen sofort im neuen Design.

    Viele Grüße

    Frederic
    .
     > Hallo,


    bei einer ASP.NET-Webanwendung, die mit Visual Studio 2010 (Programmiersprache C#) entwickelt wurde, habe ich versucht, mit mehreren Stylesheet-Dateien zu arbeiten. Diese liegen in dem Projekt im Ordner ~/App_Themes/Design.

    In den einzelnen Web Forms habe ich folgendermaßen festgelegt, welche Stylesheet-Datei verwendet werden soll:

    <headrunat="server">

      <title>agrarservices.net</title>

      <linkrel="stylesheet" type="text/css" href="~/App_Themes/Design/default.css"/>

    </head>

    Verwendet wird das Stylesheet dann im Web Form wie folgt:

    <divid="mitte">

    ....

    </div>

    Das funktioniert aber dann nicht mehr, wenn es in den Stylesheet-Dateien Elemente mit gleichen Namen aber unterschiedlichen Formatierungseigenschaften gibt, wie in nachfolgendem Beispiel:

    In der Datei default.css steht:

           #mitte

           {

                 text-align: left;

                 background-color: #f7f2e4;

                 font-size:8pt;

           }

    In der Datei default_zf.css steht:

           #mitte

           {

                 text-align: center;

                 background-color: oldlace;

                 padding-left: 20px;

                 padding-right: 20px;

           }

    Trotz Zuweisung (siehe oben) der Stylesheet-Datei default.css im Web Form wird bei der Ausführung die Formatierung aus der Datei default_zf.css herangezogen.

    Gibt es eine Möglichkeit, sicherzustellen, dass in den Web Forms immer die gewünschte Stylesheet-Datei genommen wird, ohne den Aufwand zu betreiben, dass die Bezeichner über alle Stylesheets hinweg eindeutig benannt werden?

    Mfg

    Dörte

    Freitag, 11. Mai 2012 16:12
  • Trotz Zuweisung (siehe oben) der Stylesheet-Datei default.css im Web Form wird bei der Ausführung die Formatierung aus der Datei default_zf.css herangezogen.

          Wenn du die 2. CSS gar nicht zugewiesen hast, wie in deinem Beispiel aber trotzdem diese herangezogen wird, leere den Cache.

          im firefox Strg + F5 .......

    Samstag, 12. Mai 2012 10:56
  • Hi,

    Du kannst auch mit den Entwicklertools/FireBug (IE, FF, Chrome = F12) sicherstellen, dass die genannte CSS-Datei verwendet wird (und nicht die aus einer gecachten älteren Version - s. Der_Shmoo).

    Hruß
    Jürgen

    Samstag, 12. Mai 2012 19:00
  • ****************************************************************************************************************
    Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
    Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
    ****************************************************************************************************************

    Robert Breitenhofer, MICROSOFT  Twitter Facebook
    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 22. Mai 2012 10:40
    Moderator