IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Border-image au dessus de son élément [CSS 3]


Sujet :

Positionnement en CSS avec z-index

  1. #1
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 695
    Points : 2 434
    Points
    2 434
    Par défaut Border-image au dessus de son élément
    Bonjour.

    J'aimerais savoir si il est possible qu'un border-image soit placé au dessus de son élément.
    Voici ce que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #test1 {
    	border: 40px solid transparent;
    	border-image: url("border.svg") 60 round;
    	display: inline-block;
    }
    #test1 img {
    	margin: -30px;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id="test1"><img src="back.png" /></div>
    back.png est l'image verte, border.svg est le cadre marron : Nom : forum0.png
Affichages : 410
Taille : 672 octets

    Je souhaiterai que la partie verte soit sous le cadre, pour simuler un album photo Nom : forum1.png
Affichages : 387
Taille : 982 octets
    J'ai choisi d'utiliser un border-image car la taille de la photo pourra varier, mais le cadre s'adaptera automatiquement.

    Est-ce que c'est possible ?

    Cordialement.
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  2. #2
    Membre confirmé
    Avatar de Jacques Beauregard
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2015
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 231
    Points : 595
    Points
    595
    Par défaut
    Bonjour,

    Question conne : pourquoi ne pas superposer les 2 images et jouer avec z-index?
    Il ne faut jamais prendre les gens pour des cons, mais il ne faut pas oublier qu'ils le sont...

    Le guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 695
    Points : 2 434
    Points
    2 434
    Par défaut
    Tout simplement parce que la taille des images peuvent varier, et le bord a une taille fixe, d'où l'utilisation de border-image.
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 955
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Bonjour,
    J'aimerais savoir si il est possible qu'un border-image soit placé au dessus de son élément.
    une bordure -image appartient à la bordure donc par définition elle restera autour du cadre.

    Tu peux néanmoins ruser en utilisant un pseudo-élément :before et en reportant sur lui la bordure-image.

    Exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>[CSS3]Border-image par dessus</title>
    <meta name="Author" content="NoSmoking">
    <style>
    html, body{
      margin:0;
      padding:0;
      font: 1em/1.5 Verdana, sans-serif;
    }
    #main{
      width:60em;
      margin:0 auto;
    }
    h1{
      color: #006699;
    }
    #test{
      position:relative;
      display:inline-block;
    }
    #test:before{
      position:absolute;
      content:"";
      right:0;
      bottom:0;
      left:0;
      top:0;
      border-style: solid; border-width: 26px;
      border-image: url(http://torgar.developpez.com/articles/css/bordures-css3/images/border-image.png) 26 round;
    }
    </style>
    </head>
    <body>
    <div id="main">
      <h1>Border-image par dessus</h1>
      <div id="test">
        <img src="http://www.developpez.net/template/images/logo.png">
      </div>
    </div>
    </body>
    </html>
    le positionnement de la bordure-image peut s'ajuster via les propriétés top-right-bottom-left.

  5. #5
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 695
    Points : 2 434
    Points
    2 434
    Par défaut
    Merci NoSmoking, ça fonctionne.

    Néanmoins, je ne serais pas contre quelques explications.

    Si j'ai bien compris, le pseudo élément :before créé un élément à la volée qui se place au dessus de l'image.
    Par contre, un positionnement absolu ne devrait-il pas se faire par rapport au document ? À moins que la position relative du div n'aie une influence sur les enfants ?
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 955
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    • Les pseudo-éléments :before et :after, crée un élément qui n'apparaît pas dans le DOM et qui doit être réservé à un but purement décoratif ou presque.

    • Cet élément dépend du sélecteur qui la mis en place, dans le cas de l'exemple la <div id="test">, par défaut cet "élément", qui est en display:inline, se place à l'intérieur donc de son parent.

    • On peut tout à fait le mettre en forme, entre autres dimension et position, via le CSS et dans ce cas il est régit par les mêmes règles.

    • Concernant la position:absolute, on applique la règle, par rapport au premier parent positionné, donc il faut mettre la <div id="test"> en position:relative pour qu'elle puisse servir de référent.


    Merci NoSmoking, ça fonctionne.
    Pense dans ce cas à passer la discussion en résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [HTML] Mettre un bouton image au dessus d'une animation flash
    Par TERRIBLE dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 12/08/2006, 12h08
  2. [CSS] Image de fond dans un élément <div>
    Par Yogui dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 16/05/2006, 13h05
  3. [CSS] Superposition image au dessus d'une table
    Par laurent_h dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 31/03/2006, 17h45
  4. Par où commencer en traitement de l'image et/ou du son
    Par PRomu@ld dans le forum Traitement du signal
    Réponses: 4
    Dernier message: 08/12/2005, 15h43
  5. [débutant]Placer une image par dessus une autre
    Par sempire dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/11/2005, 18h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo