Maison  >  Article  >  interface Web  >  style de bulle de discussion CSS3

style de bulle de discussion CSS3

php中世界最好的语言
php中世界最好的语言original
2018-03-16 14:23:045449parcourir

Cette fois, je vais vous présenter le style de bulle de discussion CSS3. Quelles sont les précautions lors de la création du style de bulle de discussion CSS3. Voici un cas pratique, jetons un coup d'œil.

Dans le scénario de chat, le contenu du chat doit être modifié avec des bulles, comme indiqué ci-dessous. Expliquons-les un par un ci-dessous.

Style d'image :

Le premier style est le service client JD. Les coins arrondis et les crochets des bulles sont tous constitués d'images. Une table est utilisée pour former un cadre arrondi. Le style du film énonce le crochet.

 <p class="jimi_lists clearfix">
                <p class="header_img jimi3 fl"></p>
                <table class="msg" cellspacing="0" cellpadding="0">
                    <tbody><tr><td class="lt"></td><td class="tt"></td><td class="rt"></td></tr>
                    <tr><td class="lm"><span></span></td><td class="mm"><span class="wel"><span class="visitor"><p>很抱歉,现在人工客服忙,让小JIMI为您解答吧。</p></span></span></td><td class="rm"></td></tr>
                    <tr><td class="lb"></td><td class="bm"></td><td class="rb"></td></tr><tr><td></td></tr>
                    </tbody>
                </table>
            </p>
            <p class="customer_lists clearfix">
                <p class="header_img jimi3" style="background: url(img/mine.jpg) no-repeat center;">
                    <p class="header_img_hover"></p>
                </p>
                <table class="msg" cellspacing="0" cellpadding="0"><tbody><tr><td class="lt"></td><td class="tt"></td><td class="rt"></td></tr><tr><td class="lm"></td><td class="mm">你好,我是stoneniqiu</td><td class="rm"><span></span></td></tr><tr><td class="lb"></td><td class="bm"></td><td class="rb"></td></tr><tr><td></td><td class="time"></td><td></td></tr></tbody></table>
            </p>

Style :

 .jimi_lists {
    margin: 0 -10px 20px 10px;
    position: relative;
}
 .jimi_lists .header_img.jimi3 {
    background: url(../img/jimi_50_3.png) no-repeat 0 0;
}
 .jimi_lists .header_img {
    width: 50px;
    height: 50px;
    position: absolute;
    top: 0;
    left: 0;
}.fl {
    float: left;
}
 .jimi_lists .msg {
    margin-left: 59px;
    margin-right: 40px;
    margin-top: 2px;
    float: left;
    display: inline;
}
 .jimi_lists .lt {
    background: url(../img/msg_bg_lr.png) no-repeat 0 0;
    width: 26px;
    height: 10px;
}
 .jimi_lists .tt {
    background: url(../img/msg_bg_tb.png) repeat-x 0 -23px;
    height: 10px;
}.jimi_lists .rt {
    background: url(../img/msg_bg_lr.png) no-repeat -35px 0;
    width: 10px;
    height: 10px;
}.jimi_lists .lm {
    background: url(../img/msg_bg_lr.png) repeat-y -94px 0;
    width: 26px;
    vertical-align: top;
    position: relative;
}.jimi_lists .mm {
    padding: 0 5px;
    background-color: #FFF;
    word-break: break-all;
    word-wrap: break-word;
    color: #333;
    line-height: 20px;
}.jimi_lists .lm span {
    background: url(../img/msg_bg_lr.png) no-repeat 0 -14px;
    display: inline-block;
    width: 26px;
    height: 16px;
    position: absolute;
    top: 5px;
}.jimi_lists .rm {
    background: url(../img/msg_bg_lr.png) repeat-y -113px 0;
    width: 10px;
}.jimi_lists .lb {
    background: url(../img/msg_bg_lr.png) no-repeat 0 -43px;
    width: 10px;
    height: 10px;
}.jimi_lists .bm {
    background: url(../img/msg_bg_tb.png) repeat-x 0 -25px;
    height: 10px;
}.jimi_lists .rb {
    background: url(../img/msg_bg_lr.png) no-repeat -35px -43px;
    width: 10px;
    height: 10px;
}.customer_lists {
    position: relative;
    margin: 0 12px 20px 20px;
}.customer_lists .msg {
    float: right;
    margin-right: 73px;
    _margin-right: 38px;
    margin-top: 2px;
}.customer_lists .lt {
    background: url(../img/msg_bg_lr.png) no-repeat -47px -0;
    width: 10px;
    height: 10px;
}.customer_lists .tt {
    background: url(../img/msg_bg_tb.png) repeat-x 0 0;
    height: 10px;
}.customer_lists .rt {
    background: url(../img/msg_bg_lr.png) no-repeat -63px 0;
    width: 26px;
    height: 10px;
}.customer_lists .lm {
    background: url(../img/msg_bg_lr.png) repeat-y -126px 0;
    width: 10px;
}.customer_lists .mm {
    padding: 1px 8px;
    background-color: #3897E7;
    word-break: break-all;
    word-wrap: break-word;
    color: #FFF;
}.customer_lists .rm {
    background: url(../img/msg_bg_lr.png) repeat-y -129px 0;
    width: 26px;
    vertical-align: top;
    position: relative;
}.customer_lists .lb {
    background: url(../img/msg_bg_lr.png) no-repeat -47px -36px;
    width: 10px;
    height: 10px;
}.customer_lists .bm {
    background: url(../img/msg_bg_tb.png) repeat-x -106px -4px;
    height: 10px;
}.customer_lists .rb {
    background: url(../img/msg_bg_lr.png) no-repeat -63px -36px;
    width: 26px;
    height: 10px;
}.customer_lists .rm span {
    background: url(../img/msg_bg_lr.png) no-repeat -63px -14px;
    display: inline-block;
    width: 26px;
    height: 16px;
    position: absolute;
    top: 5px;
}.customer_lists .header_img_hover {
    position: absolute;
    background: url(../img/avatar_mask_01.png);
    top: 0;
    width: 50px;
    height: 50px;
}.customer_lists .header_img {
    position: absolute;
    top: 0;
    right: 14px;
    width: 50px;
    height: 50px;
}
 .clearfix:after {
    content: " .";
    display: block;
    clear: both;
    visibility: hidden;
    height: 0;
}

Voir le code

Style de fond :

Le second utilise principalement : avant la pseudo-classe pour dessiner Le des triangles ont été réalisés puis assemblés par positionnement.

  <p class="jimi_lists clearfix">
                <p class="header_img jimi3 fl"></p>
                <p class="bkbubble right">
                     <p>换个气泡如何</p>
                </p>
            </p>
            <p class="customer_lists clearfix">
                <p class="header_img jimi3" style="background: url(img/mine.jpg) no-repeat center;">
                    <p class="header_img_hover"></p>
                </p>
                <p class="bkbubble left">
                    <p>这个不错</p>
                </p>
            </p>

Style :

  .bkbubble.right p:before, .bkbubble.left p:before {
      width: 0;
    position: absolute;
    top: 12px;
    border-style: solid;
    content: "";
  }
  .bkbubble.left {
      text-align: right;
  }
 .bkbubble.right p:before {
     left: -12px;
    border-color: transparent #00bfff;
    border-width: 0 12px 12px 0; }
 .bkbubble.left p:before {
     right: -12px;
    border-color: transparent #00bfff;
    border-width: 0 0 12px 12px ; }

Plus de triangles : http://www.cnblogs.com/lhb25/p/css-and-css3-triangle.html

Style de bordure :

Que se passe-t-il si la couleur de la bordure et celle de l'arrière-plan doivent être différentes ? La méthode ci-dessus ne fonctionnera pas, car l'utilisation de :before pour dessiner un triangle utilise le principe de bordure. En d'autres termes, dans la méthode ci-dessus, le petit triangle sur le bord de la bulle ne peut pas afficher deux couleurs, car il n'a qu'une seule bordure. . couleur. Ensuite, nous devons trouver un moyen de créer un triangle avec une bordure.

  <p class="jimi_lists lim_operator clearfix">
                <p class="header_img jimi3 fl"></p>
                <p class="lim_bubble lim_shadow"><p class="lim_dot">您好,请问有什么可以帮到您?</p></p>
                <p class="lim_tale"><p class="radiusborder"></p></p>
            </p>

1. Dessinez d'abord un petit rectangle.

.lim_operator .lim_tale {
    left: -1px;
    background-color: #c8f064;
    border-color: #a5d01b;
    margin-left: 70px;
}.lim_tale {
    position: absolute;
    width: 12px;
    height: 8px;
    overflow: hidden !important;
    top: 10px;
    z-index: 2;
    border-top-style: solid;
    border-top-width: 1px;
}

2. Tracez une ligne diagonale.

Il n'y a pas de barre oblique en CSS. Ici, il est épelé à l'aide d'un arc de cercle. Sur un grand cercle, si vous coupez un arc, cela devient une ligne diagonale.

.lim_operator .radiusborder {
    position: absolute;
    background-color: #EFF0F2;
    top: -29px;
    left: -94px;
    height: 160px;
    width: 160px;
    border-top-style: solid;
    border-top-width: 1px;
    border-right-style: solid;
    border-right-width: 1px;
    border-top-right-radius: 154px;
    border-color: #a5d01b;
}

Style de superposition :

Le principe est équivalent à utiliser avant pour dessiner un fond coloré, puis à utiliser après pour dessiner un fond blanc, puis à superposer et à décaler les 1-2 pixels supérieurs. , de sorte qu'un triangle avec une bordure et un arrière-plan apparaisse. C'est ainsi que fonctionne Web WeChat

.expression:before {
    content: '';
    position: absolute;
    left: 16px;
    top: 100%;
    margin-left: -7px;
    border: 7px solid transparent;
    border-top-color: #CFCFCF}.expression:after {
    content: '';
    position: absolute;
    left: 16px;
    top: 100%;
    margin-left: -7px;
    margin-top: -1px;
    border: 7px solid transparent;
    border-top-color: #FFF}

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

La variable JavaScript et ceci, {} et la fonction

Comment utiliser les dégradés ss3

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn