css3 shapes是什么意思,如何在Web中使用CSS Shapes

布局一般都是遵循按行和列等线性原则,Web网站的布局到今天为止很大程度上受到这些原则的影响。虽然CSS Grid的出现让布局变得更好,更灵活,但相对于印刷媒体而言,Web布局总体上还是受到很好的限制,特别是内容流上。

杂志和报纸一直有很好的办法来安排内容。比如文本绕着非矩形排列。

03d1f47aba7014f30e7021cd7f9fdb0d.png

直到目前为止,Web上的布局都局限于规则矩形排列,无法让内容流实现非矩形布局。

接下来让我们一起探讨如何使用CSS Shapes模块让Web布局能像杂志和报纸一样让文本内容实现不规则矩形排列。

CSS Shapes简介

CSS Shapes使网页设计师能更好的实现自己的创意,除了简单的长方形和正方形,还可以实现任何几何图形布局。改规范提供了两个新的CSS属性:shape-outside和shape-margin。浏览器支持这些规范是有一定道理的,尽管这些属性目前仅可以在Chrome、Opera和Safari看到效果,而且还需要带上浏览器的私有属性-webkit,因此使用的是-webkit-shape-outside和-webkit-shape-margin。

shape-outside属性将使用内容能绕着不规则几何图形排列,不在是中规中距的矩形。最初也可以让内容在一个元素内呈现,比如几何图形是一个圆形,那么文本在这个圆形内呈现,文本也将呈现成一个圆圈形状。然而这效果已经推迟到CSS Shapes Level 2中实现。

5300752737c0c988d2aa3290638cd9b3.png

让文本在一个几何图形内呈现,使用的是CSS Shapes中的shape-inside属性。

shape-margin属性用来设置使用了shape-outside的几何图形与环绕它文本之间的间距。

看上去非常强大,也很有意思,写个实例来验证一下前面所说的。

创建一个图形

创建一个圆是CSS创建一个图形(不是矩形)最简单的。使用一个div来制作这个圆,并且在这个圆的边上放置几个段落p。

Lorem ipsum…

Lorem ipsum…

Lorem ipsum…

写一点基本样式,给.circle元素设置一个相同的width和height,使用border-radius将div变成一个圆,并且设置一个float,让段落围着这个元素。

.circle {

width: 250px;

height: 250px;

background-color: #40a977;

border-radius: 50%;

float: left;

}

除了段落现在围绕着该元素.circle之外,文本还是没有变成曲线绕着圆形。那是由于border-radius属性实际上并无法改变一个元素形状,它依旧是一个矩形。

通过浏览器开发者工具(DevTools)的审查元素可以发现,事实上.circle仍然是一个盒子。即使这个div的外观看上去是一个圆,但实际上它没有元素看到的实际形状。

144c6e8c9a5b9ccfac19e34688864d09.png

为了让段落呈现成一个圆形,实际上我们就需要通过shape-outside属性改变元素的实际形状。在本例中,将给shape-outside设置一个circle()属性值。

.circle {

width: 250px;

height: 250px;

background-color: #40a977;

border-radius: 50%;

float: left;

-webkit-shape-outside: circle();

shape-outside: circle();

}

这个时候,再使用开发者工具审查元素,不难发现元素正确渲染成一个圆。

3a3a3fe794e6f1926ee00aadca656b21.png

添加一定的margin值,你可能看到的效果就像下面:

自定义圆

circle()函数可以定义圆的半径和圆心位置:circle(r at x y)。默认情况,半径值来源于元素容器大小,如果元素宽度是300px,那么圆的半径就是其宽度的一半150px。

同样,x和y坐标也是相对于元素尺寸。默认的坐标是50% 50%,也就是元素的正中间。

ba92e9cd0e6937cd5768d95faceeb161.png

当你想保持元素实际的大小,形状和位置,而又想调整形状,这两个值相当有用。以下面的示例中,将圆的半径调整为60px,圆心坐标调整为30% 70%,相当于把圆调整到元素的左下角。

0135255a091ce8c3a9a1f0c44b9079ce.png

值得注意的是,当修改圆心坐标和半径时必须显式的定义,如果只添加其中的任何一个,都将是一个无效的值:

circle( 60px at 30% 70% ) // 正确写法

circle( 60px ) // 无效写法

circle( at 30% 70% ) // 无效写法

图形盒模型

CSS Shapes继承了元素相同的盒模型,但应用元素以外的范围。比如说,允许我们把元素的border-box设置为padding-box。改变图形盒型只需要给shape-outside属性上添加盒模型的关键字:content-box、margin-box、border-box或padding-box。

.circle {

width: 250px;

height: 250px;

background-color: #40a977;

border-radius: 50%;

float: left;

padding: 10px;

border: 20px solid #ccc;

margin: 30px;

-webkit-shape-outside: circle() padding-box;

shape-outside: circle() padding-box;

}

CSS Shapes默认的盒模型是margin-box。在下面的例子中,将CSS Shapes盒模型改为padding-box,告诉浏览器排除元素的margin和border值。这个时候看到的内容将绕着元素的padding外边缘位置处。

d9cdd171457e4cebf7ebb5328d7a4f02.png

如果你对CSS的盒模型不太了解的话,强列你阅读一下这个教程,此教程详细告诉了你CSS的盒模型是如何工作的。

创建更多的图形

CSS Shapes规范还提供了几个其他图形函数:

ellipse():顾名思义,这个函数将创建一个随圆形状。可以配置半径和移动圆心坐标。和circle()函数不一样,ellipse()函数可以接受两个半径,第一个是水平方向半径,第二个是垂直方向半径。因此可以这样ellipse(100px 180px at 10% 20%)创建一个椭圆

polygon():这个函数功能更强大,能够创建更复杂的形状,比如三角形、六边形以及一些不规则的多边形。使用polygon()并不像使用circle()函数创建一个圆那么简单,但不需要过于担心,可以使用多边形转换器这样的工具可以很直观的创建出不规则的多边形形状

总结

在这篇文章中,我们了解了CSS Shapes的基本的使用方法:创建一个形状,定制其大小、位置和盒模型。在写这篇文章的时候,CSS Shapes还有好多个方面都很粗糙,这也可能是为什么看不到CSS Shapes得到广泛使用的原因之一。

正如本教程中前面所述,shape-inside允许将内容放置在一个图形内

CSS Shapes规范提供了一个单独的属性shape-box用来定义CSS Shapes的盒模型,尽管现在还没有得到任何浏览器的支持

在Safari浏览器中,一定需要添加-webkit前缀

然而,尽管进展缓慢,浏览器渲染还存在差异,但我们期待于CSS Shapes能早日到来。一旦主流浏览器真的支持CSS Shapes规范,那么就可以看到一些创造性的Web布局。

扩展阅读

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wps临时文件不自动删除_电脑:让 Windows 10 系统自动清理临时文件

不少朋友在系统用久了以后,都会用一些软件来帮忙清理系统中没用的文件,其中包括一些临时文件、无用文件等。但其实在 Windows 10 中,系统已经内置了自动定期清理临时文件的功能了。你还不知道?跟着我们来学习下吧。这个功能就隐藏…

服务器系统gho系统怎么安装系统,GHOST怎么重装系统?GHO文件安装系统教程

ghost映像文件就是系统文件,通过gho文件我们可以就进行系统的重装。不过对于电脑小白来说,不知道在哪里可以下载纯净的ghost文件,下载完成后也不清楚如何使用gho文件安装系统。那么下面就让小编教大家使用gho文件重装系统。相关教程&#xff…

Science | 谷岩/王朗团队揭示大脑中的免疫细胞竟是记忆遗忘的“主谋”

来源:BioArt记忆是大脑最重要的功能之一,也是人类研究最多的脑功能之一。记忆随时在发生,而遗忘如影随形。海马体位于大脑丘脑和内侧颞叶之间,是负责记忆的编码和存储的一个重要脑区。在这里,记忆信息被编码于一些神经…

基于深层卷积网络的手写数字识别 minist_「Tensorflow」基于CNN的数字OCR识别

导读 对于人类来说,识别手写的数字是一件非常容易的事情。我们甚至不用思考,就可以看出下面的数字分别是1,2,3。那机器如何来识别数字?本期将使用Tensorflow搭建卷积神经网络,进行手写数字的识别。代码可关…

2019年5G创新深度研究报告

来源:中信建投从历史上看,每一轮科技产业创新周期均主要由通信代际升级驱动,历时 5-8 年。我们认为 2017-2019 年为 4G 时代的稳定成熟期,而进入 2020 年,运营商加速投入 5G 网络建设,科技软硬件有望在运营…

鹰眼系统原理_山东首家露天焚烧鹰眼监控系统在我镇投入使用

露天冒烟着火,不用人员到现场,电子围栏就会锁定目标,自动报警,提醒监管人员立即现场处置。日前,莱西市院上镇新安装建设的污染源鹰眼监控系统投入使用,实现了环境监控全方位、自动化。据了解,这…

机器人的工作原理,这是我见过最详细的解析!

来源:网络很多人一听到“机器人”这三个字脑中就会浮现“外形酷炫”、“功能强大”、“高端”等这些词,认为机器人就和科幻电影里的“终结者”一样高端炫酷。其实不然,在本文中,我们将探讨机器人学的基本概念,并了解机…

linux mint 图标主题_如何在 Linux Mint 中更换主题

一直以来,使用 Cinnamon 桌面环境的 Linux Mint 都是一种卓越的体验。这也是为何我喜爱 Linux Mint的主要原因之一。-- Its Foss(作者)一直以来,使用 Cinnamon 桌面环境的 Linux Mint 都是一种卓越的体验。这也是为何我喜爱 Linux…

服务器物品展示框刷物品,我的世界1period;11period;2展示框刷物品bug | 手游网游页游攻略大全...

发布时间:2017-09-25我的世界惊现全新无限刷物品bug 服主大大都要注意了.那今天给大家分享一个玩家无意间发现的新的无限刷物品bug,而且还是在服务器中哦!那感兴趣的玩家不妨进来看看哦! 在一个rpg服务器玩 开小号召唤boss的时候发现的. ...标签:我的世界…

Nature:揭示人大脑类器官为何缺乏正常人脑特有的细胞亚型和复杂回路

来源:生物谷作为在实验室中通常利用人类干细胞培育出的大脑样组织三维球体,大脑类器官被吹捧为有潜力让科学家们在受控的实验室条件下研究大脑回路的形成。关于大脑类器官的讨论非常热闹,一些科学家认为它们将使得快速开发针对破坏性的脑部疾…

anaconda 怎么安装xlrd_Pyinstaller打包,文件太大了怎么办?

这是一个很长的故事,嫌长的直接看最后的结论事情经过上周接了个需求,写了个小工具给客户,他要求打包成exe文件,这当然不是什么难事。因为除了写Python的,绝大多数人电脑里都没有Python编译器,所以打包成exe…

android checkbox 选中事件_使用Vue3.0新特性造轮子 WidgetUI3.0 (Checkbox复选框组件)

"title"标题示例代码:data [ { title: 新日小卫士二代, }, { title: 车子质量不合格, }, { title: 我买的骑士1号仪表台进水怎么回事?, }, { title: 风雅欧妮大灯高低调节, }]"title"标题和"desc"描…

服务器装系统用哪个好,服务器系统重装用哪个系统

服务器系统重装用哪个系统 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。重装裸金属服务器的操作系统。快速发放裸金属服务器支持…

2020图机器学习GNN的四大研究趋势

来源:专知【导读】以图神经网络为代表的图机器学习在近两年成为研究热点之一。近日,图机器学习专家 Sergei Ivanov 为我们解读了他总结出来的 2020 年图机器学习的四大热门趋势,包括图神经网络的理论理解、应用普及、应用、图嵌入框架&#x…

c++ 将文件内容输出到word上_原来PDF转Word可以这么简单,只需要一个键!办公起来真方便...

在职场办公中,我们经常接触到PDF文件,如果让你把PDF转换成Word,你还在束手无策吗?今天就来教你3种方法,如何将PDF转换成Word。01.复制粘贴法相信很多新手都只会【CtrlC/V】,虽然PDF文件不能直接被修改&…

python的类和实例_Python使用类和实例

我们可以使用类来模拟现实世界中的很多情景。类编写好后,你的大部分时间都将花在使用根据类创建的实例上。你需要执行的一个重要任务是修改实例的属性。你可以直接修改实例的属性,也可以编写方法以特定的方式进行修改。 Car类 下面来编写一个表示汽车的类…

iApp最新版无服务器多功能软件库源码

无需服务器的多功能软件库源码分享,仅需添加一个后台应用和一个文档即可 使用教程如下: 在浏览器中打开理想后台地址:http://apps.xiaofei.run/user/ 如果没有账号,请注册一个免费账号。 登录账号后,添加一个后台应…

rpc协议微服务器,RPC协议及实现方式(分布式微服务治理的核心)

分布式微服务治理的核心在于: 微服务和分布式(微服务框架)微服务的最优技术实现目前是: SpringBoot(RPC 框架)分布式的最优技术实现目前是: Thrift,Motan,Dubbo,Spring Cloud(Netflix OSS),Finagle,gRPCRPC 是什么RPC 的全称是 Remote Procedure Call ,是一种进程间…

2019年度全球工程前沿研究报告

来源:JAS自动化学报英文版1. 工程研究前沿1.1 Top 10 工程研究前沿发展态势信息与电子工程领域 Top 10 工程研究前沿涉及电子科学与技术、光学工程与技术、仪器科学与技术、信息与通信工程、计算机科学与技术、控制科学与技术等学科方向。其中,“面向光互…

python取数字第一位数_python基础:8.切片和缩进

0.前言如果可以的话,请先关注(专栏和账号),然后点赞和收藏,最后学习和进步。你的支持是我继续写下去的最大动力,个人定当倾囊而送,不负所望。谢谢!!!1.前提基…