3-3 形状篇-菱形(多边形)

知识储备

1.上一小节的rotate()/skew()

2.clip-path属性是指定一个应用到元素上的剪切路径
状态函数包括
polygon() 多边形
circle() 圆形
inset() 内嵌圆角矩形
ellipse() 椭圆形

1.polygon()参数 角坐标
配图一张,理解一下

坐标理解

2.circle(30% at 40% 50%) 参数
30% -> 半径
40% 50% -> 圆心

3.inset()
位置 / 圆角

inset(<top> <right> <bottom> <left> round <top-radius> <right-radius> <bottom-radius> <left-radius>)

4.ellipse(20% 40% at 40% 50%)
x/y半径 / 位置


小测试

第一种方法
示例代码1
html

<div class="picture"> 
   <img src="1.jpg" alt="海贼王">
</div>

css

.picture{  
  width: 400px;   
  transform: rotate(45deg);
  overflow: hidden;  
  margin: 100px auto;
}
.picture > img{ 
   max-width: 100%; 
  /*transform: skew(45deg,-45deg);*/   
   transform: rotate(-45deg) scale(1.42);
}

效果:

菱形图片

1.这里先将div盒子整体旋转45deg(如果不清楚skew()和rotate()的区别,先了解一下)
2.再将图片反着旋转,和上一节的菱形导航条原理类似
3.scale()放大。如果不加scale(),则效果是这样的

scale原理

放大倍数为1.41,没错又是勾股定理。(感觉做CSS设计加入一点数学和物理元素,总会让效果更加真实和吸引人眼球)

上述方法只适用于正方形图片


更好的解决办法
2.利用知识储备clip-path属性来进行裁剪
这个属性会优雅降级,如果浏览器不支持则会按原图显示
示例代码2
html

<img src="3.jpg" alt="海贼王">

css

display: block;
margin:  0 auto;
width: 300px;

-webkit-clip-path: polygon(50% 0, 100% 50%,50% 100%,0 50%);

效果:


菱形裁剪

让我们加入一些小动画!
css

.square-img{  
  display: block; 
  margin:  0 auto; 
  width: 300px;   
  -webkit-clip-path: polygon(50% 0, 100% 50%,50% 100%,0 50%);    
  transition: 1s -webkit-clip-path;
}
.square-img:hover{
  -webkit-clip-path: polygon(0 0, 100% 0%, 100% 100%,0 100%);
}

当我们划过图片时,图片会显示全部!


利用clip-path的裁剪特性

我们来做一些小特效,效果类似于


文字

示例代码3
html

<img src="2.jpg" alt="bao" />
<svg height="0" width="0">    
  <defs>     
    <clipPath id="svgTextPath"> 
       <text x="0" y="150" textLength="300px"  font-family="Vollkorn" font-size="10em" font-weight="700" font-style="italic"> baoIII </text>        
    </clipPath>  
  </defs>
</svg>
img { 
  width: 400px; 
  -webkit-clip-path: url('#svgTextPath');   
  clip-path: url('#svgTextPath');}

小结:虽然菱形在应用方面不广,但是给了我们更多的元素组合和一些新的视觉感受!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.自适应的椭圆 问题: 我们肯定都注意到过,我们给一个正方形元素添加一个足够大的border-radius(指定...
    FlyingWWS阅读 771评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,342评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,810评论 0 2
  • 转载请声明 原文链接 关注公众号获取更多资讯 这篇文章主要总结H5的一些新增的功能以及一些基础归纳,这里只是一个提...
    前端进阶之旅阅读 9,112评论 22 225
  • 现在是大一的下学期,然而我,还是想记录下那段回忆起来还算不错的日子。 因为志愿的问题,我辗转一番后毫无预兆地来到...
    蛋儿_阅读 287评论 0 1