Ich bin gerade dabei, meine erste Solo-Rails-App mit Rails 3.1.rc5 zu erstellen. Mein Problem ist, dass meine Site die verschiedenen CSS-Dateien unter bestimmten Bedingungen rendern soll. Ich verwende Blueprint CSS und versuche, Kettenräder / Schienen die screen.css
meiste Zeit print.css
nur beim Drucken und ie.css
nur beim Zugriff auf die Site über Internet Explorer rendern zu lassen .
Leider enthält der Standardbefehl *= require_tree
im application.css
Manifest alles im assets/stylesheets
Verzeichnis und führt zu einem unangenehmen CSS-Durcheinander. Meine aktuelle Problemumgehung ist eine Art Brute-Force-Methode, bei der ich alles einzeln spezifiziere:
In application.css:
*= require_self
*= require home.css
...
*= require blueprint/screen.css
In meinen Stylesheets teilweise (haml):
<!--[if lt IE 9]
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
![endif]-->
= stylesheet_link_tag "application"
= stylesheet_link_tag 'blueprint/print', media: 'print'
<!--[if lt IE8]]
= stylesheet_link_tag 'blueprint/ie'
![endif]-->
= javascript_include_tag "application"
Das funktioniert, ist aber nicht besonders hübsch. Ich habe ein paar Stunden lang gesucht, um überhaupt so weit zu kommen, aber ich hoffe, dass es einen einfacheren Weg gibt, den ich gerade verpasst habe. Wenn ich sogar bestimmte Verzeichnisse selektiv rendern könnte (ohne Unterverzeichnisse einzuschließen), würde dies den gesamten Prozess viel weniger starr machen.
Vielen Dank!
.css
Dateien verwenden, werden alle Ihre Bilder beschädigt. ZBbackground: url('image.png')
wird auf den Pfad übersetzt/assets/all/image.png
(beachte das All auf dem Pfad). Stattdessen funktioniert dies :background: url('/assets/image.png)
. Wenn es eine einfachere Lösung dafür gibt, posten Sie sie bitte. Anders als bei der Verwendung von SASS mit Hilfsmethoden, die den Pfad wahrscheinlich korrekt auflösen.Kam heute über dieses Problem.
Am Ende wurden alle IE-spezifischen Stylesheets in lib / assets / stylesheets abgelegt und eine Manifestdatei pro IE-Version erstellt. Fügen Sie sie dann in application.rb zur Liste der Dinge hinzu, die vorkompiliert werden sollen:
Wenn Sie diese Manifestdateien bedingt in Ihre Layouts aufnehmen, können Sie loslegen!
quelle
Das ist eine ziemlich nette Art, es zu tun. Ich benutze bedingte Klassen auf HTML oder Modernizr. In diesem Artikel finden Sie eine gute Darstellung dessen, was was macht. modernizr-vs-bedingte-Klassen-auf-HTML
quelle