Metodologie CSS per alcune classi

0

Abbiamo usato BEM per diversi progetti di CMS Drupal con successo. Ciò significa che abbiamo seguito un approccio frontend in cui gli sviluppatori di frontend specificano l'HTML, che viene quindi implementato nel backend.

In Drupal 8, dove abbiamo i modelli Twig, questo non è un grosso problema. Inoltre, Drupal 8 utilizza il BEM stesso. Tuttavia, in Drupal 7 è un vero dolore. Gli sviluppatori di frontend non sono in grado di implementare l'HTML specificato in un tema / modulo, in quanto sarebbe necessaria una conoscenza approfondita di Drupal 7, specialmente quando si utilizzano i pannelli / Panelizer.

Quindi gli sviluppatori di back-end (non avendo "themers") hanno iniziato ad implementare il back-end HTML nei progetti Drupal 7, il che li fa sentire male perché non è la loro area centrale. La ragione principale di ciò è che BEM (e anche altre metodologie CSS) è totalmente basato su classi piuttosto che su nomi di tag. Quindi, per ogni elemento che ha bisogno di uno stile, è necessario avere un nome di classe. Questo è ovviamente un grande vantaggio per gli sviluppatori di frontend poiché possono controllare quali elementi vengono stilizzati. Senza classi, gli elementi wrapper di Drupal 7 possono anche avere uno stile, dal momento che stanno usando gli stessi nomi di tag.

Quando c'è un sistema come Drupal 7 in cui non è facile specificare le classi per tutti gli elementi sarà difficile per lo sviluppatore scrivere tutte queste sostituzioni per generare l'HTML previsto.

Quindi sto cercando una soluzione in cui abbiamo ancora un frontend gestibile - in cui possiamo controllare quali elementi vengono stilizzati, ma anche ridurre la complessità per gli sviluppatori di backend che significa meno classi di quelle richieste da BEM. Sfortunatamente non possiamo andare senza headless / disaccoppiati, il che probabilmente sarebbe l'approccio migliore.

Esistono approcci per questo scenario?

    
posta dude 06.04.2018 - 10:50
fonte

2 risposte

0

Sembra che non ci sia una soluzione al problema. Ho cercato una soluzione, anche con una taglia. Sembra che ci sia il modo di usare selettori CSS complessi e nidificati che rende il sistema non-mantenibile ed è soggetto a errori degli elementi CMS (come in Drupal 7). D'altra parte, ad es. l'approccio BEM che richiede classi su tutti gli elementi, che è un dolore da generare ad es. Drupal 7.

Sembra che non ci sia un approccio di specifica tra questi due.

    
risposta data 16.04.2018 - 08:29
fonte
1

Non sono sicuro che nel mondo di Drupal ci sia una differenza significativa tra un "tag" e una "classe", ma se è uno stile, i modi di selezionare un elemento non sono molti.

Un approccio potrebbe essere avere classi wrapper i cui figli sono in stile. Ad esempio:

.my-wrapper div input {
  ...
}

Questo riduce il numero di classi all'interno del tuo HTML, ma crea un nuovo problema in cui il tuo stile e DOM sono ora strettamente accoppiati.

Anche se questo può sembrare antitetico alla tua domanda, sembra che il tuo team possa ottenere un buon utilizzo da un framework CSS più "funzionale".

Piuttosto che scrivere un gruppo di classi e regole specifiche per classe, puoi provare l'approccio Tachyons ". Ogni elemento che desideri applicare allo stile ha le sue regole definite esplicitamente all'interno dell'attributo class.

Inoltre, Drupal 7 sembra essere particolarmente adatto a questo approccio, almeno secondo questo post del blog .

Buona fortuna!

    
risposta data 07.04.2018 - 05:17
fonte

Leggi altre domande sui tag