CSS - Bordure s'adaptant à un float

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : CSS - Bordure s'adaptant à un float

par kmeleon » 27 juil. 2007, 18:00

Et bien merci beaucoup, je vais voir ce que je peux faire avec tout ça :)
Bonne journée

par Invité » 27 juil. 2007, 14:39

oui tout a fait,

travailler la hauteur en pixel, a part pour un rendu graphique exacte ne sert a rien ..
l' overflow en hidden ne pouvant fonctionner ici...

:D

par Cyrano » 27 juil. 2007, 14:12

Non, pas de question, c'est futé comme méthode. Juste un détail : tu peux virer la hauteur de ton bloc général, et il s'adaptera à la hauteur du contenu. :)

par Invité » 27 juil. 2007, 11:21

je repond un peu tard
la solution, de ganesha est vraiment interessante , je vais quand meme continuer sur la mienne,

en meme temps je t ai file la moitie du code sur mon post :
une image ici de ce que ca represente
[img][img]http://img517.imageshack.us/img517/666/ ... ee7.th.png[/img][/img]
je complete le code pour repondre a ta question

Code : Tout sélectionner

<style type="text/css"> .general { width:300px; height:300px; position:relative; border:1px solid #000; padding:10px; } .divright1 { width:100px; height:100px; position:absolute; border:1px solid #fff; border-left:1px solid #000; border-bottom:1px solid #000; top:-1px; right:-1px; z-index:1; } .divright2 { float:right; width:95px; height:95px; position:absolute; border:1px solid #000; top:-1px; right:-1px; z-index:2; } .divenfloatrightcache{ float:right; width:100px; height:100px; } /* superieur ou egal a divright1 pour width et height, c est le comportement en flottant pour le texte recherchée*/ </style> <div class="general"> <div class="divenfloatrightcache"></div> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit. <div class="divright1"> <div class="divright2"> </div> </div> </div>
en gros,

on place deux div en positions absolute ( cad position fixe par rappport a l element div general: position relative)

/*affichage graphique*/
grace a leur position en negative (-1,-1) : on les place sur la bordure du div general.
on met la bordure de divright1 en blanc(couleur du background) et on reassigne une couleur a border left et border bottom.

divright2 est ton conteneur pour "tessssstttt".

/*affichage du texte*/
divenfloatrightcache est le div en flottant, ce qui permet l affichage desirée du texte. c et lui qui fait contourner le texte.


nb: j utilse toujours en tete de mon fichier css ceci
*{margin: 0;padding: 0;} ou html{margin: 0;padding: 0;}
cela te permet de reinitialiser toutes les marges et padding differents selon les navigateurs.

en complement:
http://fr.selfhtml.org/navigation/css.htm
http://openweb.eu.org/articles/initiation_absolue/

vu que je suis un grand pedagogue, n hesites pas si t as des questions.... :D

par kmeleon » 26 juil. 2007, 21:22

Hmmm effectivement le border en 4px double est interessant, mais j'aimerai voir si la solution avec deux entitées séparées est faisable... (en gros si on peut remettre cette petite bordure à droite :) ) Le cas échant, je m'en remettrai à cette intelligente solution :P

Merci & bonne soirée !

par Cyrano » 26 juil. 2007, 21:06

Je te propose une autre astuce peut-être plus simple :

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" /> <title>Simulation de bordures et flottants</title> <style type="text/css"> /* <![CDATA[ */ html { font-family: verdana, helvetica, sans-serif; } div#global { position: relative; top: 3em; left: 50%; margin-left: -200px; width: 400px; height: 200px; border: 1px solid #c7a65e; padding: 10px; } div#encart { width: 100px; height: 100px; float: right; border-bottom: 4px double #c7a65e; border-left: 4px double #c7a65e; margin-top: -10px; margin-right: -10px; } div#global h3 { font-size: 14px; color: #ccc; background-color: #fff; position: absolute; top: -9px; left: 20px; border: none; margin: 0; padding: 0 5px; } p { font-size: 11px; } p span.label { font-weight: bold; } /* ]]> */ </style> </head> <body> <div id="global"> <div id="encart"> <p>Test.....</p> </div> <h3>Informations</h3> <p><span class="label">Titre : </span>Bonjour</p> <p><span class="label">Créé le : </span>25/07/07 à 1:39</p> <p><span class="label">Créé par : </span>test<br /> <span class="label">Catégorie : </span>La Select'</p> <p><span class="label">Présentation par un tiers : </span>Oui</p> <p><span class="label">Note attribuée su sujet testé : </span>*****</p> </div> </body> </html>
Teste ça, ça répond peut-être à ta recherche ;)

par kmeleon » 26 juil. 2007, 20:13

Tout d'abord, merci pour ta réponse.

Effectivement c'est pas mal du tout (même s'il manque la bordure droite du div situé à gauche (contre le carré) ), et j'avoue que je comprends la moitié de ce qu'il y a dans le CSS. Jvais plancher là-dessus, mais, simplement, pourrais-tu me dire comment afficher cette petite bordure ?

Bonne soirée

par Invité » 26 juil. 2007, 12:19

tu ne peux pas adapater une bordure avec des flottants:

j avais fais ca recemment qui conviendrait peut etre pour toi :
en gros c est de jouer avec les positions absolute et relative

Code : Tout sélectionner

<style type="text/css"> .general { width:300px; height:300px; position:relative; border:1px solid #000; } .divright1 { float:right; width:100px; height:100px; position:absolute; border:1px solid #fff;//ici on cache la bordure top et et right du div general border-left:1px solid #000; border-bottom:1px solid #000; top:-1px; right:-1px } .divright2 { float:right; width:90px; height:90px; position:absolute; border:1px solid #000; top:-1px; right:-1px } </style> <div class="general"> <div class="divright1"> <div class="divright2"> </div> </div> </div>
:D
:D

CSS - Bordure s'adaptant à un float

par kmeleon » 25 juil. 2007, 13:34

Salut à tous !

J'aimerai passer de ceci:
Image

A ceci:
Image
(Vive Paint)

Ma bordure sur la première image est réalisée avec un <fieldset class="border"></fieldset> (le titre avec un <legend></legend>), et donc j'aimerai que lorsqu'un div est placé en float à droite, cette bordure s'adapte autour de ce div.

J'ai essayé de mettre directement ceci:

Code : Tout sélectionner

<div class="border" style="width:150px; height:150px; float:right;"> Teeeeest </div>
Mais ça me donne ça:
Image

Est-ce que c'est faisable ? Comment faire ?

Bonne journée

PS: le code du fieldset, c'est ça:

Code : Tout sélectionner

div#page fieldset { margin-bottom:20px; padding: 10px; padding-bottom: 20px; } .border { border: solid 1px #c7a65e; }