实现微信聊天的尖角图片样式

参考连接 http://www.jianshu.com/p/f77f54720202,不过我感觉他这里实现的不是很完美,因为三角是继承的整个图片,所以做了一些更改

效果如下,哈哈在safari里一放大明显能看出来怎么弄的

第一种实现方式

如上图,方式是一个透明三角和两个矩形去覆盖图片右侧内容,不过这样会是原本图片右侧的两个border-radius失效,然后再弄两个圆弧盖住右上角和右下角。。感觉有点傻,在android上还有兼容性问题,代码如下,效果如下图

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <style>
 6 .container{
 7     height: 100px;
 8     float: left;
 9     position: relative;
10 }
11 .container img{
12     height: 100px;
13     border-radius: 6px;
14 }
15 .container:after{
16     content: ‘‘;
17     position: absolute;
18     top: 24px;
19     right: -14px;
20     border: solid #fff;
21     border-width: 14px;
22     border-left-color: transparent;
23     background: inherit;
24     background-size: auto;
25     background-clip: border-box;
26     background-origin: border-box;
27 }
28 .container .top{
29     width: 14px;
30     height: 24px;
31     position: absolute;
32     top: 0;
33     right: 0;
34     background: #fff;
35 }
36 .container .bottom{
37     position: absolute;
38     width: 14px;
39     height: 62px;
40     top: 52px;
41     right: 0;
42     background: #fff;
43 }
44 .container .top_left_circle{
45     width: 12px;
46     height: 12px;
47     background-color: transparent;
48     border-radius: 50%;
49     border-left: 6px solid transparent;
50     border-right: 6px solid transparent;
51     border-bottom: 6px solid transparent;
52     border-top: 6px solid #fff;
53     position: absolute;
54     top: -6px;
55     right: 8px;
56     transform: rotate(45deg);
57 }
58 .container .bottom_left_circle{
59     width: 12px;
60     height: 12px;
61     background-color: transparent;
62     border-radius: 50%;
63     border-left: 6px solid transparent;
64     border-right: 6px solid transparent;
65     border-bottom: 6px solid #fff;
66     border-top: 6px solid transparent;
67     position: absolute;
68     bottom: -6px;
69     right: 8px;
70     transform: rotate(-45deg);
71 }
72 </style>
73 </head>
74 <body>
75 <div class="container">
76     <img src="http://pic136.nipic.com/file/20170727/18708972_230433430000_2.jpg">
77     <div class="top_left_circle"></div>
78     <div class="top"></div>
79     <div class="bottom_left_circle"></div>
80     <div class="bottom"></div>
81 </div>
82 </body>
83 </html>

然后,就想到了第二种实现方式,

这种方式是放左右两个图片,左边图片有div容器负责border-radius,并且左边图片把右边(三角形高度的)宽度隐藏;右边图片定位到右侧并剪切成(三角形底边的宽,三角形高的长)的矩形,见到那来说就是将两张图片拼成原来的图片,然后裁剪和用三角形遮盖。
这里不用裁剪也行可以把右侧的图片也加div容器,不过好像会麻烦点,图片如下,代码如下

两张图片拼成原图

右侧图片裁剪

三角形覆盖

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <style>
 6 body{
 7     padding: 20px;
 8 }
 9 .container{
10     height: 100px;
11     float: left;
12     position: relative;
13 }
14 .container img{
15     height: 100px;
16 }
17 .container:after{
18     content: ‘‘;
19     position: absolute;
20     top: 24px;
21     right: -14px;
22     border: solid #fff;
23     border-width: 14px;
24     border-left-color: transparent;
25     background: inherit;
26     background-size: auto;
27     background-clip: border-box;
28     background-origin: border-box;
29 }
30 .container .leftDiv{
31     border-radius: 6px;
32     overflow: hidden;
33     height: 100px;
34     width: 129px;
35     margin-right: 14px;
36 }
37 .container .rightImg{
38     -webkit-clip-path: inset(24px 0 48px 128px);
39     clip-path: inset(24px 0 48px 128px);
40     position: absolute;
41     right: 0;
42     top: 0;
43 }
44 </style>
45 </head>
46 <body>
47 <div class="container">
48     <div class="leftDiv">
49         <img src="http://pic136.nipic.com/file/20170727/18708972_230433430000_2.jpg">
50     </div>
51     <img class="rightImg" src="http://pic136.nipic.com/file/20170727/18708972_230433430000_2.jpg">
52 </div>
53 </body>
54 </html>
时间: 2024-10-26 21:48:58

实现微信聊天的尖角图片样式的相关文章

在类似qq或者微信聊天中。如何根据不同的手机发送图片

原文:在类似qq或者微信聊天中.如何根据不同的手机发送图片   前一段时间,公司自己要求做多客服开发,但是对于发送图片这一块,当时很苦恼,我用自己的手机(米2)测试,不管是本地,还是云相册,最新照片.都没有问题,但是测试那边一直说图片发不了,而且还会崩.很纳闷.      后来经过debug,发现4.4以上的手机,它的图片路径居然不一样,有file://开头的,也有content://开头的,还有/mnt/sdcard/开头的,坑爹啊,我自己的手机是4.1的,不一样.     4.4以前的路径都

查看图片插件--Viewer(类似于qq和微信聊天 的查看图片)

Viewer的github地址:https://github.com/fengyuanchen/viewer  下载该插件(在文件夹dist里面) 具有参考价值的几个网站:http://www.dowebok.com/demo/192/index3.html      http://www.szbelle.com/article/2890.html      http://www.jq22.com/jquery-info6536 Viewer的使用,参考:http://www.dowebok.c

微信聊天和通讯录按钮样式

原文:微信聊天和通讯录按钮样式 一.先用Path画一下轮廓 <Path Stroke="Red" StrokeThickness="1" Margin="10" StrokeDashCap="Round"> <Path.Data> <GeometryGroup> <PathGeometry Figures="M 4,40 A 16,13 0 1 1 10,45 L 3,48

CSS3之尖角标签

如图所示,Tag标签的制作通常使用背景图片,现在用CSS3代码就能实现尖角效果(需浏览器支持CSS3属性). 运用CSS3样式实现尖角标签,只需要写简单的HTML结构和CSS样式. <p> <a>Tag1</a> <a>Tag2</a> <a>Tag3</a> <a>Tag4</a> </p> css主要利用伪元素来实现尖角 a{ dispaly:inline-block; positi

html如何绘制带尖角(三角)的矩形

摘要:网上有很多html+css制作带三角的矩形的方法,我在这里列举其中一种,兼容bootstrap3.我们先来看一个三角在左边的对话框的效果图矩形就不必说了,矩形的border-radius也不用说了,圆角可以自己设置,可以直接用bootstrap中的类.下面说下矩形左边的小三角,我们可以这么设置.右边的矩形我们标记为类log-content,左边的小三角我定义为类triangle,在html中的代码是这样:<divclass="log-content" 网上有很多html+c

HTML5+weui仿微信聊天功能、长按删除功能

最近由于项目需要, 就运用html5+css3+weui+jquery实现的微信聊天小案例,可发表图像.红包.打赏...功能, 还可以长按删除消息... 案例截图如下: HTML及Js片段: <!DOCTYPE html><html lang="zh-cn"><head> <meta charset="UTF-8" /> <title>消息上墙</title> <meta name=&qu

css细节决定薪水一:尖角处理

在各种网站里面,我们会经常看到类似于这样的尖角:(示例:新浪微博) 它实现的方式有多种,哪种才是最简单的?哪种才是最优秀的?首先我声明一下,我还不清楚这个东西具体叫什么名字(哪位知道还望告知),暂且叫尖角吧,通俗易懂.我查看了各大互联网公司的网站,包括腾讯.百度.新浪.天猫.去哪网, 腾讯: 百度: 去哪网: 天猫: 其中,百度和腾讯直接用的背景图片,简单粗暴,没有艺术细菌. 优点:形状随意: 缺点:不方便维护: 下面要说的是新浪微博,右键小尖角,查看元素,可以看到一段代码: <div clas

iOS_29仿微信聊天界面

最终效果图: 自定义cell的封装 BeyondCell // // BeyondCell.h // 29_仿微信聊天 // // Created by beyond on 14-9-4. // Copyright (c) 2014年 com.beyond. All rights reserved. // #import <UIKit/UIKit.h> @class BeyondCellFrame; @interface BeyondCell : UITableViewCell // 一行自定

百度前端笔试题目--css 实现一个带尖角的正方形

今天在牛客网上看到这道题,发现自己并不会,看来自己css都没怎么学习,也不怎么会用.看了下答案,不是很明白,也在网上搜集了一些资料和解法,感觉一些同学博客上也写了一些解法和拓展,所以就在这里借鉴一下咯.(参考地址:http://www.ithao123.cn/content-5672159.html) 实现图示的效果涉及到的知识主要有两点:一个是before.after伪元素,一个是border 1.before 和 after 都是css中的伪元素,通过给定一个属性content给元素添加新的