suchen
HeimWeb-FrontendCSS-TutorialSchnelle und schmutzige Bootstrap überschreibt zur Laufzeit

Schnelle und schmutzige Bootstrap überschreibt zur Laufzeit

Bootstrap 5.2 und höher hat Lösungen für die in diesem Artikel beschriebenen Methoden bereitgestellt. Wenn Sie also Bootstrap 5.2 oder höher verwenden, können Sie CSS -Variablen direkt für benutzerdefinierte Überschreibungen verwenden.

Bootstrap, dieses altmodische Web-Front-End-Framework, wird von anderen geliebt, und manche Menschen spinnen darauf. Unabhängig davon, welche Perspektive Sie einnehmen, ist es ein leistungsstarkes UI -Framework mit einer breiten Anwendung, die meisten Menschen verstehen ihre Grundlagen und liefern höchst vorhersehbare Ergebnisse.

Bootstrap hat eine eigene Designphilosophie. Sie müssen HTML auf eine bestimmte Weise erstellen, Stile auf eine bestimmte Weise überschreiben, Kerndateien auf eine bestimmte Weise erstellen und diese auf eine bestimmte Weise in die Website einbeziehen. Normalerweise ist dies in Ordnung, wenn Ihr Kollege einen schlechten Bootstrap -Code schreibt, aber nicht alle Anwendungsfälle abdeckt.

Bootstrap wird tendenziell auf der Serverseite generiert und mag es nicht, seine Stile zur Laufzeit zu überschreiben. Wenn Sie eine Art visuelle Themenfunktionalität in Ihrer Anwendung implementieren müssen, empfiehlt Bootstrap, dass Sie bei Bedarf separate Stylesheets für jedes Thema und für jedes Thema umschalten. Dies ist eine großartige Möglichkeit, dies zu tun, wenn Sie Ihren Benutzern ein vordefiniertes Thema geben. Aber was ist, wenn Sie ein benutzerdefiniertes Thema wünschen? Sie können Ihre Anwendung so einrichten, dass Sie SASS ausführen und neue Stylesheets kompilieren und auf dem Server speichern. Dies erfordert jedoch viel Arbeit. Außerdem müssen Sie mit dem Backend -Personal und dem DevOps -Team kommunizieren, was viel Ärger hätte, wenn Sie nur die primären und sekundären Farben austauschen möchten.

Das war es, was ich damals ausgesetzt war.

Ich erstelle eine Multi-Benutzer-SaaS-Anwendung mit Django und Vue mit einem festen Layout, muss aber auch in der Lage sein, die Markenfarben für jedes Benutzerkonto zu ändern und ein automatisches Standardfarbthema zu haben. Eine weitere Anforderung ist, dass wir die Anwendung nicht jedes Mal neu einsetzen, wenn wir einen neuen Benutzer hinzufügen. Schließlich ist jeder Backend- und DevOps -Entwickler derzeit mit anderen Projekten beschäftigt, daher muss ich dies alleine beheben.

Da ich Sass zur Laufzeit nicht kompilieren möchte, kann ich Stylesheets erstellen und sie in die Seite injizieren, aber dies ist keine gute Lösung, da wir uns auf Farben konzentrieren. Das kompilierte Bootstrap -Stylesheet macht die Farbwerte als explizite hexadezimale Werte und (ich habe gerade überprüft) 23 Fälle von Hauptblau in meinem Stylesheet. Allein für die Primärfarbe muss ich jede Instanz überschreiben und dann erneut für die sekundäre Farbe, Warnfarbe, Gefahrfarbe und alle anderen Konventionen und Farben, die wir ändern möchten, erneut standardisieren. Es ist kompliziert und hat viel Arbeit. Ich will das nicht tun.

Glücklicherweise muss diese neue Anwendung nicht den Internet Explorer 11 unterstützen, was bedeutet, dass ich CSS -Variablen verwenden kann. Sie sind auch großartig, können definiert werden, nachdem das Stylesheet geladen wurde, in alle Richtungen fließt und alle gewünschten Farben verändert, oder? Bootstrap generiert diese große Liste von Variablen im: Root -Element, daher sollte dies einfach sein.

Zu diesem Zeitpunkt habe ich gelernt, dass Bootstrap nur einige seiner Werte als Variablen im Stylesheet macht und dass diese Variablenliste vollständig für die Verwendung von Endbenutzer dient. Die meisten Variablen in dieser Liste werden im restlichen Stylesheet nicht verwiesen, sodass die Neudefinition nicht auswirkt. (Es ist jedoch erwähnenswert, dass in Zukunft eine bessere Unterstützung für eine bessere Laufzeit -Variable bietet.)

Ich möchte also, dass mein Bootstrap -Stylesheet mit CSS -Variablen gerendert wird, die eher auf der Serverseite als auf dem statischen Farbwert betrieben werden können, was ausschließlich unmöglich ist. Wenn Sie die Farbvariable auf eine CSS -Variable festlegen, kompiliert SASS nicht. Es gibt einige clevere Tricks, um Sass dies zu machen (eine hier und eine weitere), aber sie erfordern verzweigte Bootstrap, und das Aussteigen aus dem Upgrade -Pfad gibt meiner App eine gewisse Anfälligkeit, die ich nicht hinzufügen möchte. Wenn ich ganz ehrlich bin, ist der wahre Grund, warum ich diese Lösungen nicht implementiere, dass ich nicht herausfinden kann, wie ich entweder mit meinem Sass -Compiler zusammenarbeiten kann. Aber Sie mögen besseres Glück haben.

Ich denke, es lohnt sich, meinen bevorzugten Workflow hier zu erklären. Ich bevorzuge es, Sass lokal auf meiner Entwicklungsmaschine zu führen, um das Stylesheet zu erstellen und das kompilierte Stylesheet an das Repository zu senden. Best Practice -Empfehlungen sollten Stylesheets während des Einsatzes kompilieren, was korrekt ist, aber ich arbeite für ein wachsendes, ständig verstandenes Startup. Ich benutze SASS, weil es mir gefällt, aber es ist offensichtlich ein Thema in meiner Arbeit und ich habe nicht die Zeit, die Fähigkeit oder die mentale Kraft, meine Sass -Builds in unsere verschiedenen Einsatzpipelines zu integrieren.

Es ist auch eine Art legaler böse Selbstverteidigung: Ich möchte nicht, dass unsere vollständigen Stack-Entwickler mit meinen aufwändigen Stilen in Kontakt treten und anfangen, alles zu schreiben, was sie wollen. Also! Sie konnten mich nur um Hilfe bitten, und genau so wollte ich.

All dies heißt: Wenn ich das Stylesheet nicht dazu bringen kann, mit den darin enthaltenen Variablen zu rendern, kann mich nichts daran hindern, es in das Stylesheet zu injizieren , nachdem das Stylesheet zusammengestellt wurde .

Erleben Sie die Kraft der Suche und Ersatz!

Alles, was wir tun müssen, ist in Bootstrap zu gehen und die Farben zu finden, die wir ersetzen möchten, die sich bequem im Root -Stil oben auf dem zusammengestellten Stylesheet befinden:

 <code>:root { --bs-blue: #002E6D; --bs-indigo: #6610F2; // ... other variables }</code>

Holen Sie sich den Wert von zum Beispiel-BS-Primary, dem altmodischen Bootstrap Blue. Ich verwende Gulp, um meine Stylesheets zu kompilieren. Schauen wir uns also die Sass -Task -Funktion in gulpFile.js an:

 var gulp = require ('gulp');
var sass = require ('gulp-sass') (erfordert ('sass');
var Sourcemaps = Request ('gulp-sourcemaps');
var gulpreplace = required ('gulp-replace');

Funktion SassCompile () {
  return gulp.src ('static/sass/project.scss')
    .pipe (Sourcemaps.init ())
    .pipe (sass ({outputStyle: 'erweitert'}))
    .Pipe (Sourcemaps.Write ('.'))
    .Pipe (gulpreplace (/#002e6d/ig, 'var (-ct-primary)')))
    .pipe (gulp.dest ('static/css/'));
}
exports.sass = sasscompile;

Kompilieren Sie das Stylesheet und sehen Sie es dann an.

 :Wurzel {
  --BS-Blue: var (-CT-Primary);
  --BS-Indigo: #6610f2;
  // ... andere Variablen
}

Großartig, ok, wir haben jetzt ein komplettes Stylesheet, das einen variablen Wert erfordert, um Blau darzustellen. Beachten Sie, dass es sowohl die Hauptfarbe als auch "Blau" ändert. Dies ist keine subtile Technik. Ich nenne es aus einem bestimmten Grund schnell und rau Wenn Sie beispielsweise "Blue" und "Haupt" als separate Werte halten möchten, gehen Sie in Ihre SASS und definieren Sie die Variablen $ blau und $ primärer SASS in verschiedenen Werten neu, dann können Sie sie so separat finden und ersetzen.

Als nächstes müssen wir den neuen Standard -Variablenwert in der Anwendung definieren. Dies im HTML -Header zu tun ist sehr einfach:

<link href="/static/css/project.css" rel="stylesheet">
<style>
  :root {
    --ct-primary: #002E6D;
  }
</style>

Führen Sie es aus und alles wird auftauchen. Alles, was blau sein muss, ist blau. Wiederholen Sie diesen Vorgang ein paar Mal und Sie können plötzlich viele Farben im Bootstrap -Stylesheet steuern. Dies sind die Variablen, die ich dem Benutzer zur Verfügung gestellt habe, und deren Standardfarbwerte:

 -CT-Primary: #002E6D;
--CT-Primary-Hover: #00275d;
// ... andere Variablen

Jetzt beginnt der Spaß! Von hier aus können Sie diese Standardwerte bei Bedarf direkt manipulieren oder einen Sekunde hinzufügen: Root -Stil unter den Standardwerten, um nur die gewünschten Farben zu überschreiben. Oder geben Sie wie ich ein Textfeld in das Benutzerprofil ein, das den Root -Stil in Ihren Titel ausgibt, und überschreiben Sie, was Sie brauchen. Schauen Sie, Sie können jetzt die Bootstrap zur Laufzeit überschreiben, ohne das Stylesheet neu zu kompilieren oder sich verrückt zu machen.

Dies ist sicherlich keine elegante Lösung, aber es löst einen sehr spezifischen Anwendungsfall, den Entwickler seit Jahren zu lösen versuchen. Und dies hat sich für mich als sehr effiziente Lösung erwiesen, bevor Bootstrap beschloss, die Variablen zur Laufzeit leicht zu überschreiben.

Das obige ist der detaillierte Inhalt vonSchnelle und schmutzige Bootstrap überschreibt zur Laufzeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wohin sollte 'Podcast' -Link abonnieren?Wohin sollte 'Podcast' -Link abonnieren?Apr 16, 2025 pm 12:04 PM

Für eine Weile war iTunes der große Hund im Podcasting. Wenn Sie also "Abonnieren Sie Podcast" verlinkt haben, um zu mögen:

Browser -MotorvielfaltBrowser -MotorvielfaltApr 16, 2025 pm 12:02 PM

Wir haben die Oper verloren, als sie 2013 Chrome gingen. Gleiches Geschäft mit Edge, als es Anfang dieses Jahres auch Chrome ging. Mike Taylor nannte diese Veränderungen a "abnehmend

UX -Überlegungen zur WebfreigabeUX -Überlegungen zur WebfreigabeApr 16, 2025 am 11:59 AM

Von trashigen Clickbait -Websites bis hin zu den meisten August der Veröffentlichungen sind die Teilen von Schaltflächen seit langem im gesamten Web allgegenwärtig. Und doch ist es wohl diese diese

Wöchentliche Plattformnachrichten: Apple bereitet Webkomponenten, progressives HTML-Rendering, selbsthosting kritische Ressourcen bereitWöchentliche Plattformnachrichten: Apple bereitet Webkomponenten, progressives HTML-Rendering, selbsthosting kritische Ressourcen bereitApr 16, 2025 am 11:55 AM

In der Roundup der Woche geht Apple in Webkomponenten, wie Instagram Insta-Loading-Skripte und einige Lebensmittel für das Denken für selbsthosting kritische Ressourcen sind.

Git pathspecs und wie man sie benutztGit pathspecs und wie man sie benutztApr 16, 2025 am 11:53 AM

Als ich die Dokumentation von Git -Befehlen durchschaut hatte, bemerkte ich, dass viele von ihnen eine Option hatten. Ich dachte anfangs, dass dies nur ein war

Ein Farbwähler für ProduktbilderEin Farbwähler für ProduktbilderApr 16, 2025 am 11:49 AM

Klingt ein bisschen wie ein schweres Problem. Ist es nicht? Wir haben oft keine Produktaufnahmen in Tausenden von Farben, sodass wir das mit dem mit umdrehen können. Wir auch nicht

Ein dunkler Modus wechselt mit React und ThemeProviderEin dunkler Modus wechselt mit React und ThemeProviderApr 16, 2025 am 11:46 AM

Ich mag es, wenn Websites eine dunkle Modusoption haben. Der dunkle Modus erleichtert mir das Lesen von Webseiten und hilft meinen Augen, sich entspannter zu fühlen. Viele Websites, einschließlich

Einige praktisch mit dem HTML-DialogelementEinige praktisch mit dem HTML-DialogelementApr 16, 2025 am 11:33 AM

Ich schaue mir das HTML -Element zum ersten Mal an. Ich habe es für eine Weile dessen bewusst, aber Haven ' Es wurde es noch nicht für einen Dreh genommen. Es hat einige ziemlich cool und

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.