Magento 2 - Come aggiungere file css personalizzati nella testa?


8

In Magento 1.x, posso aggiungere i file CSS nella testa usando l'helper come sotto il codice.

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

Qualcuno sa come farlo in Magento 2?


hai capito? o hai qualche supplente su questo. fatemi sapere se ne scoprite alcuni
Dev

1
scusa, non ho ancora una soluzione. ora, ho aggiunto questo codice <link rel = "stylesheet" type = "text / css" media = "all" href = "<? php echo $ _helper-> getCSSFile ()?>"> in "after.body.start "contenitore.
Mike,

Ho trovato la soluzione, controlla sotto la risposta.
Mike,

Risposte:


9

Non hai bisogno di aiuto, puoi usare questo codice qui sotto nel tuo layout:

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

Perché ho bisogno di aggiungere un file CSS dinamico.
Mike,

Potete fornire l'esempio src per il modulo di contatto se voglio aggiungere il file style.css nella pagina con il modulo di contatto? Ho provato <css src = "Magento_Contact :: css / styles.css" /> ma non ha funzionato ... Mi sembra che manchi il flusso di magento. Il file styles.css si trova nella cartella module-contact / view / css / ...
Lachezar Raychev

Ciao @LachezarRaychev, se il tuo handle in frontend, devi creare il styles.cssfile ../view/frontend/css/style.css. Con il backend, è necessario creare il styles.cssfile in ../view/adminhtml/css/style.css.
Thao Pham,

provato e messo # contact-form {border: 1px solid blue! important; } non ha funzionato ... il file è in vista / frontend / css / styles.css e <css src = "Magento_Contact :: css / styles.css" /> è in contact_index_index.xml nel <head> </head> elemento .... nessun bordo blu attorno al modulo ... davvero strano ..
Lachezar Raychev

Nvm ... ho dovuto creare la cartella Magento_Contact in static / frontend / Magento / luma / sv_SE e dentro creare la cartella css / e dentro mettere il file styles.css ... ora funziona. Ho solo pensato che in questo modo avrebbe importato il modulo file nella cartella module-contact / view / frontend / css / ...
Lachezar Raychev

8

Prova questi passaggi.

  1. Crea il file css in questa directory. app / design / frontend / Venditore / tema / web / css / customcss.css
  2. Crea il file default_head_blocks.xml se non esiste in questo percorso app / design / frontend / Vendor / theme / Magento_Theme / layout / default_head_blocks.xml

Inserisci il codice seguente in default_head_blocks.xml

<?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>

Spero che questo ti aiuti !!


Devo eseguire i comandi di grugnito dopo aver fatto questo?
TheBlackBenzKid,

1
il nome del file css è dinamico. ora, ho aggiunto questo codice <link rel = "stylesheet" type = "text / css" media = "all" href = "<? php echo $ _helper-> getCSSFile ()?>"> in "after.body.start "contenitore, come posso aggiungere questo codice in <head>?
Mike,

6

Ho trovato la soluzione da solo.

Nel file XML di layout.

<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>

Nel file custom_head.phtml

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

1

Crea un modello personalizzato

aggiungi lo spazio dei nomi di file xml / YourModule / view / frontend / layout / default_head_blocks.xml

questo file cambierà il layout della testa usando la configurazione della pagina leggi di più su http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/layout-types.html#layout-types-conf

esempio di contenuto del file

<?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>

quindi aggiungi il file css su questo percorso Spazio dei nomi / YourModule / view / frontend / web / css / custom.css


Grazie per la risposta. Ha funzionato per me. Ora css viene applicato in tutte le pagine usando questo file.
Vinay Sikarwar,

Potete aiutarmi, come posso ora applicarlo solo nella pagina del prodotto
Vinay Sikarwar,

Non ne sono sicuro, ma per quanto riguarda la classe corporea .catalog-product-view che magento usa nella pagina dei prodotti, puoi ereditarne le proprietà CSS!
Mohamed Abo Badawy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.