CSS 形状模块标准1(CSS Shapes Module Level 1)这个规范打破了 WEB 中的矩形盒模型的限制,并且将网页设计提升到一个新的高度。

关于 Shapes 规范 shape-outside

shape-outside CSS 属性可以来设置行内内容应该包裹的形状,默认形状为:margin-box。这一属性足以让我们发挥各种想象,从此我们的元素设计将不会仅仅存在于一个矩形内,它可以是任何形状。

  • shape-outside: none :没有形状就是默认形状:margin-box
  • shape-outside: margin-box :定义一个由外边距的外边缘封闭形成的形状。
  • shape-outside: border-box :定义一个由边界的外边缘封闭形成的形状。
  • shape-outside: padding-box :定义一个由内边距的外边缘封闭形成的形状。
  • shape-outside: content-box :定义一个由内容区域的外边缘封闭形成的形状

以上属性定义了整个区域的范围,其实和 box-sizing 比较类似。

  • shape-outside: circle() :定义一个圆形函数来绘制包裹形状。
  • shape-outside: ellipse() :定义一个椭圆形函数来绘制包裹形状。
  • shape-outside: inset()
  • shape-outside: polygon() :定义一个多边形函数来绘制包裹形状。

以上属性是来绘制整个包裹区域的形状的,有点类似于 SVG 或者 Canvas 的绘制图像函数。

  • shape-outside: url() :定义区域内背景图。
  • shape-outside: linear-gradient() :定义区域内背景渐变色。

以上属性是来给整个区域设置背景的。

剪裁 clip-path

clip-path CSS 属性可以用来设置一个元素的剪切区域,区域内的部分显示,区域外的部分隐藏。

  • clip-path: none
  • clip-path: fill-box
  • clip-path: border-box
  • clip-path: padding-box
  • clip-path: content-box

它们和 shape-outside 的区域范围定义比较类似。

  • clip-path: circle()
  • clip-path: ellipse()
  • clip-path: inset()

它们和 shape-outside 的绘制形状比较类似。

开始尝试

有了 shape-outsideclip-path 我们不仅可以让行内元素产生不同的形状(影响周边元素),而且可以让块级元素剪切成自己想要的形状。

以下 Demo 可以在这里修改查看:https://codepen.io/anon/pen/oMBwVK

<!DOCTYPE html>
<html>
<head>
<style>
.circle-words {
shape-outside: content-box circle();
width: 200px;
height: 200px;
border-radius: 50%;
background-color: #FF5A5F;
float: left;
}
.circle-clip {
background-color: #FF5A5F;
width: 400px;
height: 200px;
clip-path: inset(15% 0 15% 0 round 0 15% 0 15%);
margin: 30px;
background-image: url(https://metaimg.baichanghui.com/METADATA/79d9a111-a39b-4904-b7e3-94068927d822);
}
</style>
</head>
<body>
<div style="width: 600px; margin: auto">
<div class="circle-words"></div>
Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World! Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World! Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World! Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World! Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World! Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World! Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!
</div>
<div style="width: 600px; height: 600px; margin: auto; background-color: #999">
<div class="circle-clip"> </div>
</div>
</body>
</html>

作者:一俢
链接:https://www.jianshu.com/p/bb3b2e97bd61

CSS3 clip-path & clip-path 打破矩形设计的限制的更多相关文章

  1. os.path.exists(path) 和 os.path.lexists(path) 的区别

    使用os.path.exists()方法可以直接判断文件是否存在.代码如下:>>> import os>>> os.path.exists(r'C:\1.TXT') ...

  2. os.path.isdir(path)异常

    Window 10家庭中文版,Python 3.6.4, 当一个路径以多个斜杠(/)或反斜杠字符(\\)结尾时,os.path.isdir(path)函数仍然将它们判断为目录: >>> ...

  3. 一款由css3和jquery实现的响应式设计导航

    2014年响应式设计成为设计主流.今天要给大家带来一款由css3和jquery实现的响应式设计导航.当显示器为pc时,导航为横条.当客户端为移动端时,呈现坚形导航.我们一起看下效果图: 在线预览    ...

  4. InstallShield Build Error -1014: Cannot rename directory <PATH> to <PATH>\folder.Bak.

    InstallSheild执行Build结果错误: 错误详细信息: Cannot rename directory <PATH> to <PATH>\folder.Bak. W ...

  5. os.path.join合并 os.path.dirname返回上一级目录 os.path.exists(path) os.stat('path/filename')获取文件/目录信息

    import os str1 = "grsdgfd" str2 = "wddf" str3 = "gddgs" # print(str1 + ...

  6. os模块 os.stat('path/filename') os.path.dirname(path) os.path.exists(path)  os.path.join(path1[, path2[, ...]])

    提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname")  改变当前脚本工作目录:相当于 ...

  7. difference in physical path, root path, virutal path, relative virtual path, application path and aboslute path?

    http://stackoverflow.com/questions/13869817/difference-in-physical-path-root-path-virutal-path-relat ...

  8. css3创建多边形clip属性,可用来绘制不规则图形了

    .path1 { clip-path: polygon(5px 10px, 16px 3px, 16px 17px); } .path2 { clip-path: polygon(3px 5px, 1 ...

  9. 采用CSS3的动态元素(动画)设计div块的层级式展现

    此练习作品是为学习HTML5+CSS3而设计的(如有不好请大家批评指教~~~). 操作:当页面加载时,点击网页中的绿色块(一层),则有其他几块(二层)从其中央出现并向外延伸并旋转,点击这几块中任意一个 ...

随机推荐

  1. jvm调优相关

    查找占用cpu过高的线程,并排查原因 1.查找jvm进程 (1)jps -l (2)ps -ef|grep java 这一步骤可以得到进程号,假如进程号为9527 2.查找该jvm进程中占用cpu比较 ...

  2. Manjaro 安装笔记

    双系统基本知识 [折腾日记]win10 ,ubuntu双系统安装避坑指南 Windows 下安装 Ubuntu 双系统(更新) rEFInd 总结注意点: 制作U盘启动盘一开始使用的是 Ulrstro ...

  3. node作为前台的项目如何打包静态js和css并生成版本号,loader插件的使用

    一.使用场景: 1.node创建的前台项目需要输入地址展示页面 2.有设置缓存或者cdn的需要在静态文件更改时能使用新的而不是缓存的,需要版本号这里 3.可能需要压缩静态文件的 二.一些参考地址,需要 ...

  4. 七年开发经验教你如何正确、安全地停止 SpringBoot 应用

    引言 Spring Boot,作为Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行.产品级别的 ...

  5. 码云和Git使用说明

    Git下载网站: https://git-scm.com/download/win 码云网站     :https://gitee.com 下载Git,并一路下一步安装. 鼠标空白处右键点击,出现两个 ...

  6. MYSQL中的乐观锁实现(MVCC)简析

    https://segmentfault.com/a/1190000009374567#articleHeader2 什么是MVCC MVCC即Multi-Version Concurrency Co ...

  7. 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢?

    原文:https://blog.csdn.net/WPwalter/article/details/100158000 本文的内容分为三个部分: Visual Studio 能完全还原的 ReShar ...

  8. Locust 教程

    写在 Locust 教程开始的前面 本文参考了: Locust 教程 : https://www.axihe.com/tools/locust/home.html : locust 的官方 Githu ...

  9. HTML tabindex 属性

    tabindex 属性规定元素的 tab 键控制次序(当 tab 键用于导航时).

  10. python内建函数和工厂函数的整理

    内建函数参阅: https://www.cnblogs.com/pyyu/p/6702896.html 工厂函数: 本篇博文比较粗糙,后续会深入整理