L'Habillage du texte autour d'une absolue positionné div
Je sais qu'il y a quelques questions sur des sujets similaires, mais ils ont surtout le montant variable de la div/image. J'ai besoin d'avoir l'image (et div) en position absolue (à droite), mais je veux simplement le flux de texte autour d'elle. Il fonctionne si je le flotteur de la div mais je ne peux pas placer où je veux. Comme c'est le texte qui vient des flux de derrière l'image.
<div class="post">
<div class="picture">
<a href="/user/1" title="View user profile."><img src="http://www.neatktp.com/sites/default/files/photos/BlankPortrait.jpg" alt="neatktp's picture" title="neatktp's picture" /></a></div>
<span class='print-link'></span><p>BlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlah.</p>
<p>BlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlah.</p>
</div>
Est un exemple du code HTML de
Avec le CSS:
.picture img {
background: #fff;
border: 1px #ddd solid;
padding: 2px;
float: right;
}
.post .picture {
display: block;
height: auto;
position: absolute;
right: -10px;
top: -10px;
width: auto;
}
.post {
border: 1px solid #FFF;
border-bottom: 1px solid #e8ebec;
padding: 37px 22px 11px;
position: relative;
z-index: 4;
}
C'est un thème Drupal donc rien de ce code est le mien, c'est juste que c'est pas entièrement de travail quand il s'agit de mettre une photo.
pourriez-vous poster le balisage et css?
OriginalL'auteur Paul Murphy | 2009-12-16
Vous devez vous connecter pour publier un commentaire.
Positionnement absolu prend l'élément hors de la normale de la circulation des documents, et, par conséquent, il n'interagit pas avec les autres éléments. Peut-être vous devriez revist comment le positionner à l'aide du flotteur au lieu de cela, et informez-vous ici sur un Débordement de Pile si vous êtes coincé 🙂
Juste un commentaire: je la trouve terrible qu'on n'est pas à cause du texte autour d'un objet positionné, car dans de nombreux cas, il n'existe aucun moyen pour positionner les objets à l'extrême positions en fonction de la taille de l'écran lorsque la div contenant est emballé avec beaucoup d'objets, autres qu'en utilisant position:absolute. Dans ce cas, la mise en œuvre de java requêtes semble être la seule option... C'est un manque à gagner en css3 à mon avis...
OriginalL'auteur akamike
Je sais que c'est une vieille question, mais je suis venu à travers elle, à la recherche de faire ce que je crois que vous étiez en train de. J'ai fait une solution à l'aide de l' :avant de sélecteur CSS, donc c'est pas génial avec ie6-7, mais partout ailleurs vous devriez être bon.
Fondamentalement, de mettre mon image dans un div, je peux alors ajouter une longue chose flotter bloc avant de la main à bosse, et le texte passe gaiement autour d'elle!
Vous pouvez le vérifier ici:
http://codepen.io/atomworks/pen/algcz
C'est la meilleure réponse. J'ai passé des heures à chercher ce jusqu'à ce que j'ai compris de façon indépendante. Je souhaite que j'avais trouvé cette réponse en premier.
Grande css solution!
Upvoted que c'est une bonne alternative à la position: absolue, et permet essentiellement de ce que la question initiale est de demander.
C'est génial, et fonctionne parfaitement. Oui, il est tout à fait normal flottant comportement, mais alors quoi? Il a l'effet désiré avec un minimum de dupant autour, et il est immédiatement lisible de la source css.
OriginalL'auteur Leonard
Lorsque vous placez une div absolument, vous êtes effectivement de le retirer de la circulation des documents, de sorte que les autres éléments de la loi comme si elle n'y est pas.
Pour contourner ce problème, vous pouvez à la place utiliser des marges:
J'espère que ça va faire l'affaire 🙂
OriginalL'auteur Kyle
Comme mentionné par @Kyle Sevenoaks, vous prenez absolue contenu positionné hors de la circulation des documents.
Aussi loin que je peux voir, la seule façon d'avoir le parent
div
envelopper l'absolu placé de contenu, est d'utiliser javascript pour définir la largeur et la hauteur à chaque changement.J'utilise jQuery pour mes diaporamas et il serait quelque chose comme
var height = $("slide_show_element").height();
. Qui obtient la taille calculée de vous intérieure de l'élément et vous pouvez l'appliquer à l'extérieur / flottait élément:$("floated_element").height(height);
il a travaillé,merci 🙂
OriginalL'auteur jeroen
Dans mon opinion, "l'Absolu" trait est mal nommée, car sa position est en fait par rapport à la première parent dont la position n'est pas statique
Si vous voulez un code de réponse, vous devez poster une partie du code que vous travaillez avec
votre idée très claire j'ai modifié le code comme vous le décrivez et ne fonctionne pas,avez-vous tester ? s'il vous plaît laissez-moi savoir si vous voulez voir mon code merci Matt
OriginalL'auteur Matt
Je pense que la meilleure option est d'ajouter un div après le flotteur de contenu, mais encore à l'intérieur de la mère de claire styles précédents.
Et CSS:
OriginalL'auteur Chris G
J'avais besoin d'une solution similaire à flotter un gigogne devis (pas une image), ce qui aurait variable de la longueur du texte à l'intérieur. L'arrachement de devis nécessaires pour être insérée dans le code HTML en haut (à l'extérieur de la fluidité du texte) et le flotteur vers le bas dans le contenu du texte qui s'enroule autour de lui. La modification de Leonard de réponse ci-dessus, il y a vraiment une façon simple de le faire!
Voir Codepen pour Exemple: https://codepen.io/chadwickmeyer/pen/gqqqNE
CSS
HTML
OriginalL'auteur Chadwick Meyer
Positionnement absolu ne vous permet pas de placer du texte. Vous devez utiliser des float et la position à l'aide de marge ou de rembourrage.
OriginalL'auteur iamtooamazing
Voici une astuce qui pourrait fonctionner pour certains:
si vous avez un conteneur emballé avec beaucoup d'objets, et vous voulez que l'objet positionné à paraître en certains cas, et inférieure dans les autres cas (différentes tailles d'écran par exemple), puis parsemer de copies de l'objet à plusieurs reprises dans votre code html, soit
inline(-block)
, ou avecfloat
, puisdisplay:none
les éléments que vous ne voulez pas voir selon les conditions dont vous avez besoin.Ici est un JSFiddle pour montrer exactement ce que je veux dire: JSFiddle de droit de positionnement de haute et basse
Note: j'ai ajouté de la couleur seulement pour l'effet. Sauf pour les noms de classe, l'objet de la 1 et 2 divs sont par ailleurs des copies exactes de chaque autre.
OriginalL'auteur Damian Green
Il y a une solution facile à ce problème. C'est à l'aide de white-space: nowrap;
Pour exemple, j'ai été faire un menu déroulant pour une navigation de sorte que la configuration que j'utilisais est
Exemples D'Image
Sans Nowrap activé
Avec Nowrap activé
Aussi, si vous ne pouvez toujours pas comprendre, consultez les listes déroulantes sur bootstrap modèles que vous pouvez google. Ensuite, savoir comment ils fonctionnent, car ils sont à l'aide de position absolue et l'obtention de texte à prendre 100% de la largeur sans habillage du texte.
OriginalL'auteur