J'apprends à utiliser Bootstrap. Actuellement, je me fraye un chemin à travers les mises en page. Bien que Bootstrap soit plutôt cool, tout ce que je vois semble daté. Pour la vie de moi, j'ai ce que je pense être une mise en page de base que je ne peux pas comprendre. Ma mise en page ressemble à ceci:
---------------------------------------------------------------------------
| | | |
| | | |
| 240px | 160px | All Remaining Width of the Window |
| | | |
| | | |
--------------------------------------------------------------------------|
Cette grille doit prendre toute la hauteur de la fenêtre. D'après ce que j'ai compris, j'ai besoin de mélanger des largeurs fixes et fluides. Cependant, Bootstrap 3.0 ne semble plus avoir la classe fluide. Même si c'était le cas, je n'arrive pas à comprendre comment mélanger des tailles de colonnes fluides et fixes. Est-ce que quelqu'un sait comment faire cela dans Bootstrap 3.0?
twitter-bootstrap
twitter-bootstrap-3
Nœud débutant
la source
la source
Réponses:
Il n'y a vraiment pas de moyen facile de mélanger des largeurs fluides et fixes avec Bootstrap 3. C'est censé être comme ça, car le système de grille est conçu pour être fluide et réactif. Vous pouvez essayer de pirater quelque chose, mais cela irait à l'encontre de ce que le système Responsive Grid essaie de faire, dont le but est de faire circuler cette disposition sur différents types d'appareils.
Si vous devez vous en tenir à cette mise en page, j'envisagerais de mettre en page votre page avec du CSS personnalisé et de ne pas utiliser la grille.
la source
edit: Comme beaucoup de gens semblent vouloir faire cela, j'ai rédigé un petit guide avec un cas d'utilisation plus général ici https://www.atlascode.com/bootstrap-fixed-width-sidebars/ . J'espère que ça aide.
Le système de grille bootstrap3 prend en charge l'imbrication de lignes qui vous permet d'ajuster la ligne racine pour permettre des menus latéraux à largeur fixe.
Vous devez mettre un padding-left sur la ligne racine, puis avoir une ligne enfant qui contient vos éléments de disposition de grille normaux.
Voici comment je fais habituellement cela http://jsfiddle.net/u9gjjebj/
html
css
la source
position: fixed
signifie que lors du défilement, le contenu de cette colonne flotte au-dessus du reste de la page. Dans mon cas, je l'ai corrigé en utilisantposition: absolute
.ou utilisez la propriété d'affichage avec table-cell;
css
html
http://jsfiddle.net/DnGDz/
la source
, becouse
display: table-cell` devientdisplay:block
...J'ai eu un problème légèrement différent:
En conséquence, j'ai eu recours à
float
pour les colonnes gauche et droite, et j'ai ensuite pu utiliser Bootstraprow
pour faire les colonnes fluides entre les deux.la source
margin
etpadding
dans ma rangée au milieu, mais cela devrait être un problème résoluble. Quelles sont les conséquences imprévues de cette approche?Mise à jour 2018
OMI, la meilleure façon d'aborder cela dans Bootstrap 3 serait d'utiliser des requêtes multimédias qui s'alignent sur les points d'arrêt de Bootstrap afin que vous n'utilisiez que les colonnes à largeur fixe pour des écrans plus grands, puis laissez la mise en page s'empiler de manière réactive sur des écrans plus petits. De cette façon, vous gardez la réactivité ...
Working Bootstrap Fixed-Fluid Demo
Bootstrap 4 aura une flexbox donc des mises en page comme celle-ci seront beaucoup plus faciles: http://www.codeply.com/go/eAYKvDkiGw
la source
OK, ma réponse est super sympa:
aire de jeux jsfiddle
si vous souhaitez prendre en charge tous les navigateurs, utilisez https://github.com/10up/flexibility
la source
MISE À JOUR 14/11/2014: La solution ci-dessous est trop ancienne, je recommande d'utiliser la méthode de mise en page de la boîte flexible. Voici un aperçu: http://learnlayout.com/flexbox.html
Ma solution
html
scss
Sans trop modifier le code de mise en page bootstrap.
Mise à jour (pas depuis OP): ajout d'un extrait de code ci-dessous pour faciliter la compréhension de cette réponse. Mais cela ne semble pas fonctionner comme prévu.
Afficher l'extrait de code
la source
Pourquoi ne pas simplement définir les deux colonnes de gauche sur un fixe avec dans votre propre css, puis créer une nouvelle disposition en grille des 12 colonnes complètes pour le reste du contenu?
la source