2015-01-28 18 views
7

Ho un gruppo di pulsanti contenente 10 pulsanti. Sotto certe larghezze dello schermo (reattivo) nascondo alcuni di questi pulsanti con le query multimediali.Come ignorare gli elementi nascosti in un gruppo di pulsanti Bootstrap?

Il problema è che se nascondo l'ultimo pulsante i bordi del nuovo ultimo pulsante non diventano arrotondati.

È un problema difficile da descrivere, ma molto facile da mostrare in un Fiddle.

La mia domanda: come posso aggiungere gli angoli arrotondati all'ultimo pulsante visibile nel gruppo di pulsanti, piuttosto che semplicemente l'ultimo pulsante, come è attualmente.

Codice da violino sotto, come da regolamento del SO:

<div class="btn-group" id="sortBtns" role="group"> 
    <button type="button" class="btn btn-default">First</button> 
    <button type="button" class="btn btn-default">Second</button> 
    <button type="button" class="btn btn-default">Third</button> 
    <button type="button" class="btn btn-default">Fourth</button> 
    <button type="button" class="btn btn-default">Fifth</button> 
    <button type="button" class="btn btn-default">Sixth</button> 
</div> 

<div class="btn-group" id="sortBtns" role="group"> 
    <button type="button" class="btn btn-default">First</button> 
    <button type="button" class="btn btn-default">Second</button> 
    <button type="button" class="btn btn-default">Third</button> 
    <button type="button" class="btn btn-default">Fourth</button> 
    <button type="button" class="btn btn-default">Fifth</button> 
    <button type="button" class="btn btn-default" style="display:none;">Sixth</button> 
</div> 

Nota l'assenza di angoli arrotondati su 'quinta' nel secondo gruppo di pulsanti.

Posso farlo utilizzando JavaScript aggiungendo una nuova classe all'ultimo elemento visibile, ma preferirei di no. Esiste una soluzione solo CSS più pulita?

+0

possibile duplicato del [Nascondi pulsante nel btn-gruppo twitter-bootstrap] (http://stackoverflow.com/questions/16226268/hide-button-in-btn-group-twitter-bootstrap) –

+0

@ MartinLiversage Sto cercando una soluzione CSS, non JS. – Mike

+0

L'unica cosa che differenzia la tua domanda da quella a cui mi sono collegato è che vuoi una soluzione solo CSS mentre l'altra chiede solo una soluzione e guardando le risposte fornite sembra che una soluzione solo CCS non sia possibile . E sono sicuro che altri che hanno un problema simile possono trarre beneficio guardando le risposte a entrambe le domande. Per me la soluzione migliore è stata la risposta più votata alla domanda collegata. –

risposta

0

Un'opzione è quella di duplicare semplicemente il codice e aggiungere una classe hidden-xs al primo blocco di codice e visible-xs all'altro blocco di codice.

Ti piace questa:

<div class="btn-group hidden-xs" id="sortBtns" role="group"> 
    <button type="button" class="btn btn-default">First</button> 
    <button type="button" class="btn btn-default">Second</button> 
    <button type="button" class="btn btn-default">Third</button> 
    <button type="button" class="btn btn-default">Fourth</button> 
    <button type="button" class="btn btn-default">Fifth</button> 
    <button type="button" class="btn btn-default">Sixth</button> 
</div> 

<div class="btn-group visible-xs" id="sortBtns2" role="group"> 
    <button type="button" class="btn btn-default">First</button> 
    <button type="button" class="btn btn-default">Fifth</button> 
    <button type="button" class="btn btn-default">Sixth</button> 
</div> 

Un'altra opzione è quella di applicare la regola CSS all'elemento tagliente:

.edgy-right-element { 
     border-top-left-radius: 0; 
     border-bottom-left-radius: 0; 
     border-top-right-radius: 4px; 
     border-bottom-right-radius: 4px; 
    } 
+0

Mi è venuto in mente, ma sembrava sbagliato.Posso anche farlo in modo relativamente semplice usando JavaScript per aggiungere una classe in base a quali elementi sono visibili (aggiungendo la classe ai pulsanti di inizio e fine, forse), ma mi sento un po 'sporca – Mike

+0

@mikemike Aggiunta un'altra opzione – karlingen

0

Ecco una soluzione utilizzando jQuery:

$('.btn-group').has('.btn:hidden').find('.btn').css('border-radius', 0); 
$('.btn-group').has('.btn:hidden').find('.btn:visible:first').css({ 
    'border-top-left-radius': '3px', 
    'border-bottom-left-radius': '3px', 
}); 
$('.btn-group').has('.btn:hidden').find('.btn:visible:last').css({ 
    'border-top-right-radius': '3px', 
    'border-bottom-right-radius': '3px', 
}); 

Per ogni gruppo di pulsanti con bottoni nascosti, questo rimuoverà i raggi di frontiera per tutti i pulsanti all'interno, e quindi aggiungere di nuovo raggi di frontiera per i primi e gli ultimi pulsanti visibili.

OP's Fiddle with solution

Problemi correlati