[Risolto] Overwrite di node.css

4 contenuti / 0 new
Ultimo contenuto
[Risolto] Overwrite di node.css

Ciao all,

implementando l'hook_form() vi siete mai imbattuti sul fatto che i field non rispettano il size impostato?

Il "problema" è conosciuto e dipende dal fatto che il file node.css al suo interno ha questa regola:

.node-form .form-text {
  display:block;
  width:95%;
}

questo comporta che un textfield così creato:

<?php
  $form
['textfield_1'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Text Field 1'),
   
'#default_value' => isset($node->textfield_1) ? $node->textfield_1 : '',
   
'#size' => 60,
   
'#maxlength' => 200,
   
'#required' => TRUE,
   
'#description' => t('Descrizione di prova.'),
  );
?>

non abbia un width="60" ma bensì un width="95%".

Modificando il node.css con la regola seguente il problema si risolve:

.node-form .form-text {
  display:block;
  max-width:95%;

ma per me è impensabile modificare un file di Drupal per far riportare le cose.

Che voi sappiate, esiste una soluzione smart al problema senza andare a impelagarsi con il theming delle form?

ciao.
forse è un'ingenuità, ma ho fatto una prova e posso sovrascrivere quella regola dal css del tema.
provato sia su fusion (local.css del subtema) che su garland (style.css).
Non va bene?

E' proprio così. Vedi http://www.vanseodesign.com/css/css-specificity-inheritance-cascaade/ Cascade punto 4. Basta usare lo stesso selettore e dare la stessa regola con valori diverse - (magari width: auto;). Se il tuo css viene caricato per ultimo (come accade) il browser prende quella regola per la stessa specificità.

Più imparo, più dubito.

lo sapevo che mi stavo perdendo su una stupidaggine, e che mi ero puntato su quel cavolo di "max-width"!

Il sabato sera non è propriamente fatto per programmare! :)

@Carlo and @John thanks!