Der Inhalt dieses Artikels besteht darin, die CSS3-Methode zur geschickten Erzielung des Chat-Blaseneffekts vorzustellen. Ich hoffe, dass er für Freunde in Not hilfreich ist.
Die Überarbeitung der mobilen Seite, die ich vor einiger Zeit gewagt habe, ist abgeschlossen. Der vorherige Seitenstil ist flacher, wechselt vom dunklen zum hellen Hintergrund, entfernt mehr Schatten und bietet Benutzern einen einfachen Erlebnisstil. haha, ich bin kein Designer, aber ich werde zu viel kommentieren. Interessierte Freunde können direkt auf die mobile Homepage von idarex gehen.
Alle Stile in dieser Überarbeitung sind von Orange geschrieben, deshalb werde ich sie in Raten mit Ihnen teilen
Kommen wir nun zum Punkt Blasen, auf die wir uns geeinigt haben?
Was ist eine traditionelle Chat-Blase? Gehen Sie einfach zum Bild oben
Der Code lautet wie folgt
<p></p> <style> .comment { width: 150px; height: 35px; position: relative; margin: 30px auto 0; background: #f8ac09; border-radius: 5px; } .comment:after { content: ''; width: 0; height: 0; position: absolute; top: 5px; right: -16px; border: solid 8px; border-color: transparent transparent transparent #f8ac09; font-size: 0; } </style>
Jeder hat von den Implementierungsmethoden wie abgerundeten Rechtecken und Dreiecken gehört. Das Prinzip von Dreiecken besteht darin, dass der Code im obigen Beispiel kopiert und geändert werden kann Erkunden Sie die Implementierung von Dreiecken mit Attributen. border-color
.comment { position: relative; width: 150px; height: 35px; background: #f8ac09; border-radius: 5px; margin: 30px auto 0; } .comment:after { content: ''; position:absolute; top: 10px; right: -4px; width: 8px; height: 8px; transform: rotate(45deg); background-color: #f8ac09; }
transparent. Wie man sie einstellt border
ist ein Problem. Lassen Sie uns das erst einmal nicht berücksichtigen. border
Werfen wir zunächst einen Blick auf den Implementierungscode rgba(247, 188, 10, 0.03)
.comment { width: 150px; height: 35px; position:relative; margin: 30px auto 0; background-color: rgba(247, 188, 10, 0.03); border: 1px solid rgba(252, 185, 8, 0.35); border-radius: 5px; } .comment:after { content: ''; width: 8px; height: 8px; position: absolute; top: 10px; right: -4px; transform: rotate(45deg); background-color: rgba(247, 188, 10, 0.03); border: 1px solid rgba(252, 185, 8, 0.35); }
.comment { width: 150px; height: 35px; position: relative; margin: 30px auto 0; background-color: #faf8f3; border: 1px solid #fbe2a0; border-radius: 5px; } .comment:after { content: ''; width: 8px; height: 8px; position:absolute; top: 10px; right: -4px; transform: rotate(45deg); background-color: #faf8f3; border: 1px solid #fbe2a0; }
.comment:after { content: ''; width: 8px; height: 8px; position: absolute; top: 10px; right: -5px; transform: rotate(45deg); background-color: #faf8f3; border: 1px #fbe2a0; border-style: solid solid none none; }
Es ist in diesem Fall zum persönlichen Testen machbar, basiert aber auf dem Grundsatz der Seriositätpadding
Wenn es ist zu klein, welche Probleme werden auftreten? padding-right
<p>Hello,orange.Welcome to FrontEnd World!</p>
gehackt werden. z-index
s Bruder after
eingeladen. Der eigentliche Code des Projekts lautet wie folgtbefore
.reply { position: relative; margin: 0.672rem 0 0.096rem 0; padding: 0.408rem 0.816rem; border: 1px solid rgba(#fcb908, 0.35); border-radius: 0.2rem; background-color: rgba(#f7bc0a, 0.03); &:after { content: ''; width: 0px; height: 0px; border-color: transparent transparent #faf8f3 transparent ; border-style: solid; border-width: 6px; position: absolute; top: -11px; border-radius: 3px; left: 18px; right: auto; } &:before { content: ''; width: 0px; height: 0px; border-color: transparent transparent rgba(#fcb908, 0.35) transparent; border-style: solid; border-width: 7px; position: absolute; top: -14px; border-radius: 3px; left: 17px; right: auto; } }
注:这段代码用的是 SASS 进行预编译,如果从头仔细看到这里的话不难理解,两个三角形叠加,大三角形颜色是边框的颜色,小三角形是内部背景色,小三角形绝对定位时向下移 3px 把圆角矩形的一部分上边框遮挡,这样小三角下部也有溢出,具体在两像素之内,实际上不存在遮挡文本问题。
实际问题解决的方法很多,就看大家怎么去思考,这个方案也不是最满意的方案,因为多了一个伪元素,主要还是设计思想的多样性,总之 css 很灵活。
有人不禁会问,这里设计稿给的是向上的箭头,为什么例子里却都是向右的,这里向右的都是我写的 demo ,理解原理的话,改变个位置方向都是大同小异。
Das obige ist der detaillierte Inhalt vonWie implementiert man den Chat-Blaseneffekt in CSS3? (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!