Quando una discesa scelto è all'interno di una fisarmonica 3 Bootstrap che è inizialmente nascosto, poi la larghezza della discesa è vicino a zero. Dopo l'espansione sembra che questo:Larghezza di Chosen dropdowns vicino zero quando iniziano a collassato Bootstrap fisarmonica
Mentre mi aspetto che questo aspetto:
Il problema si verifica quando il panel-collapse collapse
div
non ha una classe in
, in modo efficace che indica inizialmente è crollato. Ecco il codice per riprodurre questo problema:
$(document).ready(function() {
$('select').chosen();
});
.panel-heading { cursor: pointer; }
body { padding: 10px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="http://cdnjs.cloudflare.com/ajax/libs/chosen/1.1.0/chosen.min.css" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/chosen/1.1.0/chosen.jquery.min.js"></script>
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
Expand me to show the issue!
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse">
<div class="panel-body form-inline">
<p>This select has a near-width zero:</p>
<select class="form-control">
<option>Short</option>
<option>Longer option</option>
<option>The longest option of them all</option>
</select>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
<h4 class="panel-title">
Already expanded/how it <em>should</em> be
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse in">
<div class="panel-body form-inline">
<p>This panel is initially visible and <em>does</em> have correct width for the select box:</p>
<select class="form-control">
<option>Short</option>
<option>Longer option</option>
<option>The longest option of them all</option>
</select>
</div>
</div>
</div>
</div>
Cosa posso fare per evitare che ciò accada? La chiamata scelta come .chosen({width: '90%'});
, vale a dire con una larghezza codificata funziona, ma non è soddisfacente (voglio stile nel mio foglio di stile o utilizzando Bootstrap). L'unica soluzione rimasta sembra essere quella di agganciare l'evento in espansione e forzare un aggiornamento scelto, ma anche questo sembra una soluzione alternativa.
Preferibilmente avrei una riga di CSS per risolvere questo problema, o sapere se questo potrebbe anche essere un bug nel (combinazione di) strumento (s)?
Grazie. Sembra funzionare. Peccato che abbia bisogno di un modificatore '! Important' (shudder!) Ma dato che scelto imposta la larghezza come stile di un elemento credo che sarebbe richiesto. – Jeroen
La parte! Importante è perché scelto aggiunge uno stile di larghezza in linea: 0 all'elemento stesso ed è necessario sovrascrivere la specificità con! Important. – Arbel