Magento 2 - Wie füge ich benutzerdefinierte CSS-Dateien zum Kopf hinzu?


8

In Magento 1.x kann ich die CSS-Dateien mithilfe des Hilfsprogramms wie im folgenden Code zum Kopf hinzufügen.

<reference name="head">
    <action method="addCss"><stylesheet helper="module/helperclass/helperfunction"/></action>
</reference>

Weiß jemand, wie man das in Magento 2 macht?


Hast du das geklärt? oder haben Sie eine Alternative dazu. Lassen Sie mich wissen, wenn Sie etwas herausfinden
— Dev

1
Entschuldigung, ich habe noch keine Lösung. Jetzt habe ich diesen Code <link rel = "stylesheet" type = "text / css" media = "all" href = "<? php echo $ _helper-> getCSSFile ()?>"> in "after.body.start" hinzugefügt "Container.
— Mike

Ich habe die Lösung gefunden, bitte überprüfen Sie die Antwort unten.
— Mike

Antworten:


9

Sie benötigen keinen Helfer, Sie können diesen Code unten in Ihrem Layout verwenden:

<head>
    <css src="Namespace_YourModule::css/styles.css"/>
</head>

Weil ich eine dynamische CSS-Datei hinzufügen muss.
— Mike

Können Sie bitte das src-Beispiel für das Kontaktmodul angeben, wenn ich die Datei style.css auf der Seite mit dem Kontaktformular hinzufügen möchte? Ich habe versucht, <css src = "Magento_Contact :: css / styles.css" />, aber es hat nicht funktioniert ... Mir fehlt anscheinend der Fluss von Magento-Includes. Die Datei styles.css befindet sich im Ordner module-contact / view / css / ...
— Lachezar Raychev

Hallo @LachezarRaychev, wenn sich Ihr Handle im Frontend befindet, müssen Sie eine styles.cssDatei erstellen ../view/frontend/css/style.css. Mit dem Backend müssen Sie eine styles.cssDatei erstellen ../view/adminhtml/css/style.css.
— Thao Pham

habe das versucht und # contact-form {border: 1px solid blue! wichtig; } hat nicht funktioniert ... Datei befindet sich in view / frontend / css / styles.css und <css src = "Magento_Contact :: css / styles.css" /> befindet sich in contact_index_index.xml im <head> </ head> Element .... kein blauer Rand um die Form ... wirklich komisch ..
— Lachezar Raychev

Nvm ... ich musste den Ordner Magento_Contact in static / frontend / Magento / luma / sv_SE erstellen und darin den Ordner css / erstellen und die Datei styles.css darin ablegen ... jetzt funktioniert es. Ich dachte nur, dass es auf diese Weise das Dateiformat in den Ordner module-contact / view / frontend / css / importieren würde ...
— Lachezar Raychev

8

Versuchen Sie diese Schritte.

  1. Erstellen Sie eine CSS-Datei in diesem Verzeichnis. app / design / frontend / Vendor / theme / web / css / customcss.css
  2. Erstellen Sie die Datei default_head_blocks.xml , falls sie unter diesem Pfad nicht vorhanden ist. App / design / frontend / Vendor / theme / Magento_Theme / layout / default_head_blocks.xml

Fügen Sie den folgenden Code in default_head_blocks.xml ein

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>
        <css src="css/customcss.css" />
    </head>
</page>

Hoffe das hilft dir !!


Muss ich danach irgendwelche Grunzbefehle ausführen?
— TheBlackBenzKid

1
Der CSS-Dateiname ist dynamisch. Jetzt habe ich diesen Code <link rel = "stylesheet" type = "text / css" media = "all" href = "<? php echo $ _helper-> getCSSFile ()?>"> in "after.body.start" hinzugefügt "container, wie kann ich diesen Code in <head> einfügen?
— Mike

6

Ich habe die Lösung selbst gefunden.

In der XML-Layoutdatei.

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="head.additional">
            <block class="Magento\Framework\View\Element\Template" name="block_name" template="custom_head.phtml" />
        </referenceContainer>
    </body>
</page>

In der Datei custom_head.phtml

<link rel="stylesheet" type="text/css" media="all" href="<?php echo $_helper->getCSSFile()?>">

1

Erstellen Sie ein benutzerdefiniertes Modell

Fügen Sie die XML-Datei Namespace / YourModule / view / frontend / layout / default_head_blocks.xml hinzu

Diese Datei ändert das Kopflayout mithilfe der Seitenkonfiguration. Weitere Informationen finden Sie unter http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/layout-types.html#layout-types-conf

Beispiel für Dateiinhalt

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <css src="Namespace_YourModule::css/custom.css" />
    </head>
</page>

Fügen Sie dann unter diesem Pfad eine CSS- Datei hinzu. Namespace / YourModule / view / frontend / web / css / custom.css


Danke für die Antwort. Es hat bei mir funktioniert. Jetzt wird CSS auf allen Seiten mit dieser Datei angewendet.
— Vinay Sikarwar

Können Sie mir helfen, wie ich es jetzt nur auf der Produktseite beantragen kann
— Vinay Sikarwar

Ich bin mir nicht sicher, aber was ist mit der Body-Klasse .catalog-product-view, die Magento auf der Produktseite verwendet? Sie könnten CSS-Eigenschaften davon erben!
— Mohamed Abo Badawy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.