2015-05-09 12 views
28

Sono nuovo di AngularJS quindi per favore abbiate pazienza con me. Sto usando Angular Material Design e ho difficoltà nell'individuare un modo per rendere efficienti le griglie reattive.Disegno materiale angolare - Modificare il valore di flessione con la dimensione dello schermo

Si prega di vedere i miei commenti nel codice qui sotto:

<div layout="row"> 
<div layout="row" flex="75" layout-sm="column" class="ptn-info-grid" layout-margin> <!-- USING ROW FOR DESKTOP AND COLUMN FOR MOBILE DEVICES --> 

    <div layout="column" flex="66"> <!-- I want this div occupy 2/3 of screen in Desktop but change to 100 in mobile devices (but stays in 66) --> 


     <div layout="row" layout-sm="column"> 
      <div class="ptn-info-grid-item" flex>1</div> 
      <div class="ptn-info-grid-item" flex>2</div> 
     </div> 

     <div layout="row" layout-sm="column"> 
      <div class="ptn-info-grid-item" flex>3</div> 
      <div class="ptn-info-grid-item" flex>4</div> 
     </div> 

    </div> 

    <div layout="column" flex="32"> <!-- I want this div occupy 1/3 of screen in Desktop but change to 100(which actually happens) in mobile devices. Im not using 33 because while using margin for child elements this div goes out of the parent div a little. --> 
     <div class="ptn-info-grid-item" flex style="margin-left: 0px;">Right Long 
     </div> 
    </div> 

</div> 
<div layout="row" flex="25" id="customer-phone-img"></div> 

Ma cambiando i valori flex di cui sopra da "flex=66" e "flex=32" semplicemente flex e flex, mi dà risultato desiderato in dispositivi mobili, tuttavia, come lo sapresti, in desktop, invece del rapporto 2: 1 che occupa metà e metà.

Vedere anche le immagini allegate.

Previsto

a busy cat http://dev.sprintu.com/imgHelp/final1.png

Come è

a busy cat http://dev.sprintu.com/imgHelp/final2.png

Quindi sto cercando un modo per cambiare il valore della flessione per schermi di piccole dimensioni (per quando layout-sm è applicato - cambia flex=66 a flex=100).

+1

A differenza dei siti del forum, abbiamo don utilizzare "Grazie" o "Qualsiasi aiuto apprezzato" o firme su [so]. Vedi "[Se 'Hi', 'thanks', tagline e saluti saranno rimossi dai post?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts) –

+1

Grazie per la condivisione! Seguiranno questi. – user1220169

+1

'flex =" 32 "' non avrà alcun effetto.Il materiale consente solo multipli di 5 e 33 o 66 – hofnarwillie

risposta

50

Scopri i "Responsive Flex & Offset Attributi" sezione qui: https://material.angularjs.org/#/layout/options

In sostanza, è possibile utilizzare queste opzioni:

  • flex - Imposta flettono su tutti.
  • flex-sm - Imposta la flessibilità su dispositivi con larghezza inferiore a 600 px.
  • flex-gt-sm - Imposta la flessibilità su dispositivi con larghezza superiore a 600 px.
  • flex-md - Imposta la flessibilità sui dispositivi tra 600 e 960 px di larghezza.
  • flex-gt-md - Imposta la flessibilità su dispositivi con larghezza superiore a 960 px.
  • flex-lg - Imposta la flessibilità sui dispositivi tra 960px e 1200px.
  • flex-gt-lg - Imposta la flessibilità su dispositivi con larghezza superiore a 1200 px.

Così cambia la tua:

<div layout="column" flex="66"> 

a

<div layout="column" flex-gt-sm="66"> 

E questo div userà solo la larghezza 66, quando maggiore di piccole dimensioni (mobile)

+0

Eccellente Kyle! Questo è stato. Ero stupido di averlo perso. Apprezzalo :) – user1220169

+1

Cool, felice di poterti aiutare. Ci sono molti piccoli extra nei documenti che sono facili da perdere. Hanno fatto un ottimo lavoro nel costruire i layout che puoi quasi indovinare per caratteristiche del genere e suppongo che funzioneranno –

+0

Esatto. Cercherò di verificarlo;) – user1220169

Problemi correlati