Nella mia più grande vista desktop/punto di interruzione ho cercato di ottenere lo stesso comportamento come nella pagina demo di Susy (http://susy.oddbird.net/demos/magic/) - che quando si raggiunge la larghezza massima del contenitore solo il riempimento o il margine su ciascun lato cresce mentre il contenitore stesso rimane in la sua larghezza massima.Come impostare un contenitore a larghezza massima di Susy che solo l'imbottitura/margine continua a crescere su finestre più grandi?
ma sono ancora un po 'confuso su alcuni punti, come l'unità preferibile e che cosa è la funzione migliore per ottenere il comportamento di riempimento/margine descritto.
mie impostazioni Susy generali al momento sono i seguenti:
$total-columns: 24;
$column-width: 3%;
$gutter-width: 1%;
$grid-padding: 0;
La parte specifica SCSS assomiglia a quello. Ho incluso un contenitore e fiancheggiato con un margine via squish:
.sectionwrap{
@include container;
@include squish(3,3);
@include breakpoint($medium) {
@include squish(2,2);
}
@include breakpoint($small) {
@include squish(1,1);
}
}
ma il problema è che il contenitore e le aree schiacciata sia crescono e si sviluppano e crescono in proporzione. Probabilmente un difetto è che le unità usate sono percentuali? Sarebbe più ragionevole usare em o rem invece?
Significa che quando viene sommato e viene raggiunta la larghezza massima (numero di colonne * (larghezza della colonna + ampiezza della grondaia)), solo automaticamente le aree occupate continuano a crescere in teoria? Ma ho provato e ha fallito.
Ho anche cercato di impostare:
$container-width: 1000px;
Ma anche senza fortuna. Ogni suggerimento è apprezzato. Cordiali saluti Ralf
Aggiornamento: ho riordinato il mio sito al primo cellulare e ho pensato che ho ottenuto l'intero concetto di griglia Susy, che era un po 'ingannare dall'incidente squish() in un primo momento. : S Ma in qualche modo credo che faccio qualcosa di sbagliato di nuovo.
// breakpoint variable set for Breakpoint - value is converted to em by Breakpoint
$fivehundred: min-width 500px;
//basic Susy settings for the initial mobile viewport
$total-columns: 8;
$column-width: 3em;
$gutter-width: 1em;
$grid-padding: 1em;
//modified Susy setting for a larger viewport
//intentionally chose larger numbers to see a significant change at the breakpoint
$largerviewport: 12,5em,1em,1em;
//the main content area wrapper class where i initially wanted to enlarge the container
//at each breakpoint step by step
.sectionwrap{
@include container;
@include breakpoint($fivehundred) {
@include with-grid-settings($largerviewport);
}
}
In qualche modo i bastoni larghezza contenitore oltre il $ cinquecento punto di interruzione e oltre ancora ai valori iniziali invece ai $ quelli largerviewport. In qualche modo ho paura che questo è il modo sbagliato per modificare il contenitore nella mia classe wrapper? Un altro errore nel ragionamento da parte mia? Cordiali saluti Ralf
Aggiornamento 2: Ok che è in realtà dispari. Ho provato il seguente codice Sass in questo momento:
.sectionwrap{
@include container;
background-color: red;
@include breakpoint(500px) {
@include with-grid-settings(24,7em,4em,1em);
background-color: green;
}
}
E il CSS, che è stato restituito è simile alla seguente:
.sectionwrap {
max-width: 31em;
padding-left: 1em;
padding-right: 1em;
margin-left: auto;
margin-right: auto;
background-color: red; }
.sectionwrap:after {
content: "";
display: table;
clear: both; }
@media (min-width: 31.25em) {
.sectionwrap {
background-color: green;
}
}
In qualche modo il tutto con-grid-setting è stato lasciato fuori?
Aggiornamento 3: Ok capito le cose. Non hanno capito che è necessario impostare la larghezza contenitore dopo aver incluso la funzione con-grid-settings. In un altro esempio in cui ho appena cambiato la grondaia non è stato necessario. Ma qui sembra che lo sia.
.sectionwrap{
@include container;
@include breakpoint($fivehundred) {
@include with-grid-settings($columns: 12, $width: 3em, $gutter: 1em, $padding: 1em){
@include set-container-width;
}
}
}
Update 4 Ok per altri che potrebbero incorrere in un problema simile, che potrebbe essere utile. Mi sono semplicemente chiesto perché i miei valori impostati nella funzione con-grid-settings non sono stati rispettati, in particolare il valore di padding. Poi ho capito che la larghezza del contenitore impostato imposta solo il valore della larghezza massima. Ma per applicare tutti i valori immessi alla griglia è necessario aggiungere nuovamente il mixin del contenitore in modo da sfruttare al massimo la larghezza e le imbottiture. Ma ora tutto sembra a posto e funzionante. ;) Ci sono voluti un po '. Saluti r.
cool grazie - non c'è molto più codice, ho già incollato tutto più o meno in relazione! il problema principale era lo squish! quando ho commentato le cose si comportava prevedibile. Penso di avere il pensiero di base alle spalle ora. penso che andrò con loro. quindi la cosa migliore sarebbe posizionare il contenitore all'interno della sezione e all'interno di ogni mediaquery usare la funzione con-griglia-impostazioni per regolare il numero di colonne e la larghezza della colonna e della grondaia. e pensi che una funzione come i plugin di breakpoint ($ breakpoint-to-ems: true;) avrebbe senso anche per Susy? potrei postarlo su github. – rpk
ho giocato un po 'con questo ora. il viewport più grande funziona come descritto ora. ma ho ragione, che se voglio ottenere un effetto simile, come con squish per le finestre più piccole come i dispositivi mobili, è meglio utilizzare diversi valori di riempimento della griglia sui diversi breakpoint? per esempio. impostare all'interno della funzione con-griglia-impostazioni che ho citato nel commento prima. è quella la migliore pratica? – rpk
Non sono sicuro di seguire tutte queste domande, ma ecco un rapido tentativo. È possibile utilizzare 'at-breakpoint()' per creare punti di interruzione in base a semplici modifiche al numero di colonne. L'aggiunta di 'with-grid-settings' può gestire modifiche più complesse. Se si definisce la griglia usando ems, Susy creerà punti di interruzione usando ems. Non sono sicuro di cosa farebbe una funzione extra. –