试坑不完美的 clip-path (我说的 CSS 的那个)
需求跟我说,咱们要创新,想做一个蜂巢状的列表,年少无知的我竟然一口答应了,全然因为刚接触了 clip-path;
But,然而,不幸的是,这只是坎坷路途的开始....
clip-path 的教程很多了,在此就不赘述了,
比 clip: rect() 这个弃子不知道高级了多少倍,苦等多年用 CSS 玩 SVG 的感觉已经有了一丢丢(虽然还有很多没有)
两个参数,一个盒子范围(可选)和 一个剪切形状
/* 圆形 */
clip-path: padding-box circle(50px at 0 100px); /* padding-box 盒模式下剪切成中心在 0 100px,半径 50px 的圆 */ /* 多边形 */
clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); /* 正六边形 */ /* 椭圆 */
clip-path: ellipse(65px 30px at 125px 40px); /* 方形 */
clip-path: inset(10px, 0, 10rem, 1em); /* 当时老诧异了,为什么 clip:rect() 不是这样算边界的 */ /* 圆角 */
clip-path: inset(10% 10% 10% 10% round 20%, 20%);
但兼容性就很尴尬了呀,基本只有 -webkit- 能玩了,
还好公司是做移动端的,测试大部分手机还没发现问题,但老版安卓和各大 app 里面的浏览器怎么样就很难说了...
虽然神奇的是点击范围也成了剪切后的范围,但依旧有些需求没法达成。(border-radius 可以用 polygon 搞)
比如 border, box-shadow 的效果不是想象中那样呀,子级或内部文本范围并非剪切范围 等
但需求还是要完成呀,真是需求和程序的千年虐恋...
后来又试了些办法...比如 SVG 的 <clipPath> 和 <mask>,border 等,都不能满足需求。
比如,点击范围,背景图不统一,没法加边框和阴影之类的。
现在使用的是三个 DIV 的旋转来构成,看一下这冗长的代码:
.comb {
position: relative;
}
.comb:before {
content: "";
padding-top: 86.602%;
display: block;
margin: 0 -14.433%;
}
.comb-shape {
position: absolute;
top: 0%;
bottom: 0%;
left: 25%;
right: 25%;
z-index: 1;
opacity: 0.9;
background-size: 0 0;
}
.comb-shape:hover {
opacity: 1;
}
.horn1, .center, .horn2 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: block;
background-image: inherit;
overflow: hidden;
}
.center {
background-repeat: no-repeat;
background-position: center;
background-size: auto 120%;
}
.horn1, .horn2 {
background-size: 0 0;
}
.horn1 {
transform: rotate(60deg);
}
.horn2 {
transform: rotate(-60deg);
}
.horn1:before, .horn2:before {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: -50%;
right: -50%;
background-image: inherit;
background-repeat: no-repeat;
background-position: center;
background-size: auto 120%;
}
.horn1:before {
transform: rotate(-60deg);
}
.horn2:before {
transform: rotate(60deg);
}
.border .center,
.border .horn1,
.border .horn2 {
border-top: 2px solid #000;
border-bottom: 2px solid #000;
} <div class="comb">
<div class="comb-shape" style="background-image: url(img/lake2.png);">
<a class="horn1" href="#"></a>
<a class="horn2" href="#"></a>
<a class="center" href="#"></a>
</div>
</div>
没办法了,先这样吧,现实都不美好,我对新世界充满了期待...
试坑不完美的 clip-path (我说的 CSS 的那个)的更多相关文章
- CLIP PATH (MASK) GENERATOR是一款在线制作生成clip-path路径的工具,可以直接生成SVG代码以及配合Mask制作蒙板。
CLIP PATH (MASK) GENERATOR是一款在线制作生成clip-path路径的工具,可以直接生成SVG代码以及配合Mask制作蒙板. CLIP PATH (MASK) GENERATO ...
- rabbitmq访问控制试坑篇
访问控制我理解就是两层,第一层是Virtual host,相当于一个个独立主机 第二层是这个permissions,对照下图权限表 权限表(重要!) 需求 configgure write read ...
- 上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。
用libUSB来实现自己的驱动+下位机理论速度.=1M字节每秒. 达到极限速度 WINDOWS已经自带虚拟串口驱动,只不过还需要一个Inf文件 方法1:直接下载一个串口inf,来修改文件. 方 ...
- 理解Clip Path
http://www.w3cplus.com/css3/using-making-sense-of-clip-path.html http://www.cnblogs.com/coco1s/p/602 ...
- Win10家庭版Hyper-V出坑(完美卸载,冲突解决以及Device Guard问题)
本文链接:https://blog.csdn.net/hotcoffie/article/details/85043894 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附 ...
- css浮动的"巨坑"与完美解决办法
浮动 1 浮动概念 如果想实现网页中排版布局,比如一行内显示对应的标签元素,可以使用浮动属性.浮动可以实现元素并排. 块转行内日块也可以实现一行显示,不过存在空白折叠现象 float 浮动 属性值 描 ...
- 国人Web前端开发必备干货,一个完美支持IE6在内所有浏览器的CSS框架
摘要: 企户动CSS框架是一个能够完美支持IE6~7在内的所有浏览器的 HTML&CSS 前端框架!给Web开发提供了自适应宽度的百分比多列网格,以及已语义化和结构化的标题.段落.列表.表格. ...
- 如何用HTML5+PhoneGap写个Path项目
最近Path这个应用很火爆,网上也出现了不少仿Path菜单的项目.即使在原生APP里边,Path的效果也是非常赞的.我突然想,Web APP是不是也能做出类似Path那样的效果呢?于是就有了OPath ...
- vue 单页应用中微信支付的坑
vue 单页应用中微信支付的坑 标签(空格分隔): 微信 支付 坑 vue 场景 在微信H5页面(使用 vue-router2 控制路由的 vue2 单页应用项目)中使用微信 jssdk 进行微信支付 ...
随机推荐
- Vuex 2 入门与提高。
从计数器开始 让我们从一个简单的计数器,开始进入Vuex 的世界: 计数器应用的数据模型很简单:使用一个counter属性来表示计数器的 当前值就够了. 在Vue实例的created钩子 中,应用启动 ...
- java 通过Apache poi导出excel代码demo实例
package com.zuidaima.excel.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutput ...
- gen_server边缘
我们以Module代表gen_server的callback模块 1, 实现gen_server behaviour的模块会产生一个新的process么? 毫无疑问,太会了!通过调用proc_lib: ...
- Linux 进程创建一(system和fork)
一:system系统调用 #include <stdlib.h> int system(const char *string); system函数传递给/bin/sh -c 来执行stri ...
- 基础的 Web Services 平台是 XML + HTTP。
HTTP 协议是最常用的因特网协议. XML 提供了一种可用于不同的平台和编程语言之间的语言. Web services 平台的元素: SOAP (简易对象访问协议) UDDI (通用描述.发现及整合 ...
- 使用Salt-ssh部署Salt-minion之源码安装(二)
二.源码安装篇 使用salt-ssh功能要求客户端系统python版本2.6+ 1.salt-minion端环境: 系统:SUSE SP3 64bit python版本:2.6.6 RPM包:pcre ...
- 【JavaEE】Springmvc+Spring+Hibernate整合及example
前面两篇文章,分别介绍了Springmvc和Spring的搭建方法,本文再搭建hibernate,并建立SSH最基本的代码结构. Hibernate和前面两个比就比较复杂了,Hibernate是一个o ...
- Android-ViewPagerIndicator框架使用——TabPageIndicator
前言:TabPageIndicator这个类和之前的不大一样,他不仅提供了展示的功能,而且可以点击,下面的viewpager可以跳转的有点tabhost的感觉. 一:布局文件的定义,simple_ta ...
- 关于OCR,一些想法
OCR一般分为两种: 1,根据给定的字符特征集合,提取未知字符的特征进行匹配识别:(典型例子:GOCR) 2,不知道字符特征,但给出提取特征的规则,通过机器学习training来获取某个字符集的特征集 ...
- http 状态吗
100:继续 客户端应当继续发送请求.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应. 101: 转换协议 在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消 ...