J'ai une table avec le tri des glyphicons bootstrap dans l'en-tête. L'icône n'est affichée que si la table est triée en fonction de cet en-tête. Lorsque je clique sur la cellule, la taille du tableau change. La table est dynamique, je préférerais donc ne pas fixer la taille des cellules. Est-il possible de placer un paramètre fictif à la place du glyphicon?
Je sais comment le javascript fonctionnera pour le cacher, je ne sais tout simplement pas comment faire le css pour donner une certaine taille à la durée.
(c'est bootstrap 3.0 btw) ...
<span class="glyphicon glyphicon-arrow-down"><span>
est l'icône particulière. Chrome indique qu'il fait 16 pixels de large lorsqu'il est affiché.
Le projet actuel est un peu plus compliqué, voici un plunkr:
Je ne pense pas qu'il y ait un caractère d'espace dans la police glyphicon .
Pourquoi n'utilisez-vous pas simplement une couleur de police transparente?
.glyphicon-none:before {
content: "\2122";
color: transparent !important;
}
Le\2122 est un signe moins. Utilisez-le comme une icône normale:
<i class="glyphicon glyphicon-none"></i>
Il suffit de masquer l'élément de l'icône avec visibility: hidden;
. Par exemple.
<span class="glyphicon glyphicon-arrow-down" style="visibility: hidden"><span>
Avait le même problème, mais utilisait aussi angularJs. J'ai fait ce qui suit pour résoudre le problème.
ajouter une nouvelle classe à css
.glyphicon-hide {
color: transparent;
}
Ensuite, dans le modèle, je peux utiliser
<i class="glyphicon glyphicon-arrow-down" ng-class="{'glyphicon-hide': conditionValue}></i>
Ce qui m'a aidé, c'est de définir le style de la table sur style="table-layout: fixed"
. Après cela, la largeur des colonnes de ma table est restée la même, qu'une icône soit affichée à côté de l'en-tête de la colonne ou non.
Voici le code de la table:
<table class="table table-hover" style="table-layout: fixed;">
<thead>
<tr>
<th ng-click="order('col1')">
Column Header 1
<span class="glyphicon" ng-show="orderType == 'col1'"
ng-class="orderReverse ? 'glyphicon-chevron-down' : 'glyphicon-chevron-up'"></span>
</th>
<th ng-click="order('col2')">
Column Header 2
<span class="glyphicon" ng-show="orderType == 'col2'"
ng-class="orderReverse ? 'glyphicon-chevron-down' : 'glyphicon-chevron-up'"></span>
</th>
</tr>
</thead>
<tbody>
...
</tbody>
</table>
La fonction order()
définit la variable orderType
et inverse orderReverse
. À l'aide de ng-show
, une flèche est affichée sur l'en-tête uniquement si le tableau est trié en fonction de cette colonne. Pas besoin d'un glyphicon invisible ou quelque chose comme ça.