Je veux avoir deux articles sur la même ligne en utilisant float: left
l'article de gauche.
Je n'ai aucun problème à y parvenir seul. Le problème est que je veux que les deux éléments restent sur la même ligne même lorsque vous redimensionnez le navigateur très petit . Vous savez ... comme c'était le cas avec les tables.
Le but est d'empêcher l'article de droite de s'enrouler quoi qu'il arrive .
Comment dire au navigateur en utilisant CSS que je préfère étirer le contenantdiv
plutôt que l'envelopper pour que le float: right;
div soit en dessous du float: left;
div
?
ce que je veux:
\
+---------------+ +------------------------/
| float: left; | | float: right; \
| | | /
| | |content stretching \ Screen Edge
| | |the div off the screen / <---
+---------------+ +------------------------\
/
css
css-float
css-tables
stretching
Jiaaro
la source
la source
Réponses:
Enveloppez vos
<div>
s flottants dans un conteneur<div>
qui utilise ce hack de min-largeur multi-navigateur:Vous devrez peut-être également définir le «débordement», mais probablement pas.
Cela fonctionne parce que:
!important
déclaration, combinée avec le faitmin-width
que tout reste sur la même ligne dans IE7 +min-width
, mais il a un bogue tel qu'ilwidth: 100px
remplace la!important
déclaration, ce qui fait que la largeur du conteneur est de 100 pixels.la source
Une autre option consiste, au lieu de flotter, à définir la propriété d'espace blanc nowrap sur une div parent:
et réinitialisez l'espace blanc et utilisez un affichage en bloc pour que les divs restent sur la même ligne, mais vous pouvez toujours lui donner une largeur.
Voici un JSFiddle: https://jsfiddle.net/9g8ud31o/
la source
Enveloppez vos flotteurs dans un div avec une largeur minimale supérieure à la largeur + marge combinée des flotteurs.
Aucun hacks ou tableaux HTML nécessaires.
la source
Solution 1:
affichage: table-cellule (pas largement pris en charge)
Solution 2:
les tables
(Je déteste les hacks.)
la source
Une autre option: ne faites pas flotter votre colonne de droite; donnez-lui juste une marge gauche pour le déplacer au-delà du flotteur. Vous aurez besoin d'un ou deux hack pour corriger IE6, mais c'est l'idée de base.
la source
Êtes-vous sûr que les éléments flottants au niveau du bloc sont la meilleure solution à ce problème?
Souvent avec des difficultés CSS dans mon expérience, il s'avère que la raison pour laquelle je ne vois pas comment faire la chose que je veux est que je me suis pris dans une vision tunnel en ce qui concerne mon balisage (en pensant "comment puis-je faire ces éléments font cela ? ") plutôt que de revenir en arrière et de voir exactement ce que je dois réaliser et peut-être retravailler légèrement mon html pour faciliter cela.
la source
je recommanderais d'utiliser des tables pour ce problème. J'ai un problème similaire et tant que le tableau n'est utilisé que pour afficher des données et non pour la mise en page principale, il est correct.
la source
Ajoutez cette ligne à votre sélecteur d'éléments flottants
Cela empêchera le rembourrage et les bordures d'être ajoutés à la largeur, donc l'élément reste toujours en ligne, même si vous en avez par exemple. trois éléments avec une largeur de 33,33333%
la source
Lorsque l'utilisateur réduit la taille de la fenêtre horizontalement et que les flottants s'empilent verticalement, supprimez les flotteurs et sur le deuxième div (qui était un flotteur), utilisez margin-top: -123px (votre valeur) et margin-left: 444px (votre valeur) pour positionnez les divs telles qu'elles apparaissent avec des flotteurs. Lorsque cela est fait de cette façon, lorsque la fenêtre se rétrécit, le div droit reste en place et disparaît lorsque la page est trop étroite pour l'inclure. ... ce qui (pour moi) est mieux que d'avoir le div droit "sauter" en dessous du div gauche lorsque la fenêtre du navigateur est rétrécie par l'utilisateur.
la source
La façon dont j'ai pu contourner ce problème était d'utiliser du jQuery. La raison pour laquelle je l'ai fait de cette façon était que A et B étaient des largeurs en pourcentage.
HTML:
CSS:
jQuery:
la source