2016-07-13 23 views
18

Sto cercando di aggiungere Bootstrap compensare classe nel mio codice per ottenere un allineamento diagonale in questo modo:Bootstrap col-md-Offset- * non funziona

Image

Ma io non so cosa dovrebbe compensato Io uso. Ho provato paio di compensazioni per raggiungere questo obiettivo, ma non use.Text copre tutta jumbotron.Here è il mio codice

Html:

<div class="jumbotron"> 
     <div class="container"> 
      <div class="row"> 
       <div> 
        <h2 class="col-md-4 col-md-offset-4">Browse.</h2> 
        <h2 class="col-md-4 col-md-offset-4">create.</h2> 
        <h2 class="col-md-4 col-md-offset-4">share.</h2> 
       </div> 
      </div> 
     </div> 
    </div> 

CSS:

.jumbotron { 
    height: 500px; 
    width: 100%; 
    background-image: url(img/bg.jpg); 
    background-size: cover; 
    background-position: center; 
} 

.jumbotron h2 { 
    color: white; 
    font-size: 60px; 
} 

.jumbotron h2:first-child { 
    margin: 120px 0 0; 
} 

Si prega di guidarmi. Grazie in anticipo.

+1

I tuoi offset non dovrebbero essere più come 2-4-6 anziché 4-4-4? – j08691

+1

Aggiungi testo e interrompi le linee in un div con 'text-align: right' –

+0

Per me la 4.0.0-beta non ha funzionato per gli offset ma poi 4.0.0-beta.2 ha funzionato. Forse c'era un bug lì (ah, come per https://stackoverflow.com/a/46503532/8479). Notare che ora le classi di offset in bootstrap v4 assomigliano a 'offset-md-4' piuttosto che' col-md-offset-4'. – Rory

risposta

13

io non consiglierei utilizzando il sistema di griglia in questo caso, per quanto semplice aggiungendo un'imbottitura maggiore per ogni <h2>. Detto questo, il modo in cui si sarebbe ottenere ciò utilizzando col-*-offset-* potrebbe essere il seguente:

<div class="jumbotron"> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-md-12"> 
       <h2>One</h2> 
      </div> 

      <div class="col-md-11 col-md-offset-1"> 
       <h2>Two</h2> 
      </div> 

      <div class="col-md-10 col-md-offset-2"> 
       <h2>Three</h2> 
      </div> 
     </div> 
    </div> 
</div> 

Essenzialmente la prima linea deve coprire l'intera riga (così -12). La seconda riga deve essere sfalsata di 1 colonna, quindi offset di 1 e assegnare una larghezza totale di 11 colonne (11 + 1 = 12) e così via. Il tuo offset è sempre sufficiente a garantire che il conteggio totale della colonna è pari a 12.

+0

Capito. Grazie mille :) @RobertC –

1

dovrebbe essere:

<h2 class="col-md-4 col-md-offset-1">Browse.</h2> 
<h2 class="col-md-4 col-md-offset-2">create.</h2> 
<h2 class="col-md-4 col-md-offset-3">share.</h2> 
+0

corretto. Ma ancora non funziona! Comunque, grazie! @ MrGeek –

1

dov'è il problema

nel tuo html tutti h2 s hanno lo stesso off-set di 4 colonne, in modo da non fare una diagonale.

Come risolvere il problema

Un row ha 12 colonne, quindi dovremmo mettere ogni h2 in esso la propria row. Si dovrebbe avere qualcosa di simile:

<div class="jumbotron"> 
    <div class="container"> 
     <div class="row"> 
       <h2 class="col-md-4 col-md-offset-1">Browse.</h2> 
     </div> 
     <div class="row"> 
       <h2 class="col-md-4 col-md-offset-2">create.</h2> 
     </div> 
     <div class="row"> 
       <h2 class="col-md-4 col-md-offset-3">share.</h2> 
     </div> 
    </div> 
</div> 

Un'alternativa è quella di rendere ogni larghezza h2 più offset somma 12 colonne, così ognuno avvolge automaticamente in una nuova linea.

<div class="jumbotron"> 
    <div class="container"> 
     <div class="row"> 
       <h2 class="col-md-11 col-md-offset-1">Browse.</h2> 
       <h2 class="col-md-10 col-md-offset-2">create.</h2> 
       <h2 class="col-md-9 col-md-offset-3">share.</h2> 
     </div> 
    </div> 
</div> 
+1

Ho modificato la mia risposta, perché mi sono reso conto di aver interpretato erroneamente la domanda. Scusate. –

+0

Ehi! non funziona ancora. Tra l'altro grazie :) @DanieleBarresi –

+1

Hai ragione. Modificato per risolverlo. Ora funziona. Vorrei sottolineare che questo fa solo una diagonale su schermi più grandi di 992px, che è la dimensione 'md'. Se ne hai bisogno per ogni dimensione dello schermo, sostituisci 'md' con' xs'. –

2

controllo questo bootply

questo è sbagliato perché bootstrap usando margin-left: **%

.jumbotron h2:first-child { 
    margin: 120px 0 0; 
} 
+0

OK grazie :) @CemArguvanli –

58

Funziona in bootstrap 4, c'era alcuni cambiamenti nella documentation.We non hanno bisogno del prefisso col-, appena offset md-3 esempio

<div class="row"> 
    <div class="offset-md-3 col-md-6"> Some content... 
    </div> 
</div> 

// qui doc: http://v4-alpha.getbootstrap.com/layout/grid/#example-offsetting-columns

+12

ohh santo cazzo hai salvato le mie ore – ANinJa

+0

E 'ancora funzionante? Al momento non sono in grado di effettuare l'offset con e senza col- * – EGS

+0

hey, è difficile rispondere alla tua domanda, aggiungere un po 'di codice o snippet con il tuo problema. –

5

Modifica col-md-offset-*-offset-md-* funzionato per me

1

Bootstrap 4 compensato classi sono stati rimossi in Beta 1, ma sarà ripristinato in Beta 2 - topic reference

0

Per ora, se si desidera spostare una colonna su solo 4 unità di colonna, ad esempio, suggerirei di utilizzare solo un segnaposto fittizio come in m y esempio sotto

<div class="row"> 
     <div class="col-md-4">Offset 4 column</div> 
     <div class="col-md-8"> 
      //content 
     </div> 
</div>