我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用CSS 3创建不规则图形

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用CSS 3创建不规则图形

CSS 创建复杂图形的技术即将会被广泛支持,并且应用到实际项目中。本篇文章的目的是为大家开启它的冰山一角。我希望这篇文章能让你对不规则图形有一个初步的了解。

现在,我们已经可以使用CSS 3 常见不规则复杂图形了(点击链接查看),如下图所示:

p_w_picpath

使用CSS创建的图形,无法内置文字或实现文字环绕效果。因此,如何实现不规则图形和文字复杂布局也成为了一个热议话题。

今天我们就来介绍一下如何实现这个效果。文章中我们将阐述如何使用 CSS创建不规则图形,实现不规则的文本布局。学会如何创建不规则图形之后,你就可以发挥想象力,创建唯美的CSS页面了,下图既是使用该技术创建的《爱丽丝梦游仙境》效果图:

p_w_picpath

注:这是CSS的最新技术,所以对浏览器版本要求较高。如果需要查看在线示例你需要确保浏览器支持这个CSS技术。在本文中我也将提供一些效果截图查看效果。

我们需要使用shape-outside 属性声明不规则图形。当前, shape-outside 属性只能被应用于浮动元素,并且只能应用于块级元素。如果需要在非块级元素上使用这些属性,必须先把元素声明为块级。

Shape-* 值有三种赋值方式: 自动,基本图形或者图片链接。如果被设置为自动,浮动元素将继续作为传统的盒模型进行渲染。如果你还不熟悉盒模型,请参考CSS盒模型,这是阅读本篇文章的基础。

绘制方法包括:rectangle、inset-rectangle、circle、ellipse或polygon方法等。你可以通过链接查看详细的描述。

如果属性被设置为图片链接, 浏览器会按照图片的“alpha通道”来绘制图形形状。

声明了CSS 图形之后,我们首先需要创建将用于绘制图形的坐标系。

坐标系是非常必要的,因为图形需要依据此坐标系上的点阵进行绘制。shape-* 属性是基于盒模型的,为了使它启作用,需要明确指定盒子的大小,限制不规则图形在盒子范围内,它也将被用于创建绘制坐标系,坐标系的起点位于形盒子左上角。如果没有明确宽和高声明, shape-* 属性将不启作用。


应用了自定义图形,它的盒模型仍然存在,其它传统的样式设置将作用于盒模型范围。例如,下面这个例子中,

我们仅仅想创建一个浮动圆形,并设置这个圆形的背景色。按照正常的思路理解,效果应该是这样的:

p_w_picpath

但是当设置了盒子的背景色后,你会发现和预期的效果不同,效果如下:

clip_p_w_picpath001

在上图中我们看到背景色被应用到盒模型范围,而不是我们预想的圆形内。

那么,我们应该怎样设置圆形的背景色呢?这就引出了一个新的CSS样式: clip-path 。clip-path 用于限制当前样式的作用范围。在下面的例子中你将看到它的使用方法。


现在,shape-outside 属性只作用域浮动的元素,并且仅限制于在块级元素上应用。使用这些属性定义的元素,其周围的文本将依赖于图形形状排布。未来的CSS 形状将不仅仅限制与应用于浮动元素上,我们将不仅仅可以在文本外部的图形上做文章,完全可以在其内部定义自定义图形,实现如下效果:

p_w_picpath


我们从一个简单的例子开始。在实例中我们将创建一个自定义图形,并且内置文本流,最终效果图如下(文章末尾提供实例下载链接):clip_p_w_picpath002

例子中我们拥有两个容器,用于设置自定义形状和嵌套文本内容。代码如下:

<div class="container">
  <div class="shaped"></div>
  <div class="content">
    <span>La</span> Tour <br/>Eiffel
                       
Lorem Ipsum.....
  </div>
</div>

首先我们需要声明浮动区域的DIV节点,并且使用固定值设置大小。代码如下:

.container{
  overflow:hidden;
  height: 100vh;
   100vw;
}
.shaped{
  float:left;
  height:100vh;
  ;
  float:right;
   black  url(../p_w_picpaths/eiffel.jpg) center top no-repeat;
  background-size:cover;
}

现在坐标系已经创建成功,接下来我们将要绘制图形了。可以通过两种方式来绘制图形:

使用polygon()

我们可以使用polygon() 方法来计算图形范围。这个方法从坐标系中获取多个点用于绘制图形,每个点由(x, y)值定位。 例子中我们将要创建一个非常简单的多边形,如下图所示:

clip_p_w_picpath002[7]

坐标点的单位可以是固定值,或者百分比。在这个例子中我们将以百分比的形式设置点阵位置。接下来我们需要应用这个样式在浮动元素上。

.shaped{

  shape-outside: polygon(0 0, 100% 0, 100% 100%,30% 100%);
  shape-margin: 20px;
}

应用以上的样式后,一个不规则的图形-梯形产生了。

可以看到代码中使用了shape-margin 属性,它用于设置图形和文本内容之间的边距。

接下来需要添加背景图,需要注意在添加背景图之后,它将被应用于盒模型,目前为止效果如下:

clip_p_w_picpath002[9]

所以,为了达到预期效果,我们需要设置clip-path 属性,并且设置其范围和shape-outside 属性相同。

.shaped{

  clip-path: polygon(0 0, 100% 0, 100% 100%,30% 100%);
}

现在,我们就通过polygon() 方法实现了目标效果。

使用图片链接

我们也可以通过图片(严格说是拥有通明区域的图片)来创建不规则图形,依据图片的“alpha通道” 生成不规则图形。

例如,替代polygon() 声明方法。我们可以设置shape-outside 属性值为图片URI,浏览器就会自动依据图片来绘制不规则图形。

clip_p_w_picpath002

图片中的透明部分将被声明为文本元素的浮动部分。其余部分被声明为不规则图形。代码如下:

.shaped{

  shape-outside: url(/p_w_picpaths/mm.png);
  shape-p_w_picpath-threshold: 0.5;这个属性用于设置浮动区域透明度范围
}

上述的两种方法都拥有各自的优缺点。例如,如果图形过于复杂,通过图片方法比手动计算图形绘制节点更方便。

×××

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用CSS 3创建不规则图形

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用CSS 3创建不规则图形

CSS 创建复杂图形的技术即将会被广泛支持,并且应用到实际项目中。本篇文章的目的是为大家开启它的冰山一角。我希望这篇文章能让你对不规则图形有一个初步的了解。现在,我们已经可以使用CSS 3 常见不规则复杂图形了(点击链接查看),如下图所示:
2023-01-31

如何创建一些常见的CSS3不规则形状

CSS3 不规则图形设计在现代 Web 页面设计中越来越流行。做不规则的设计已经变得越来越简单,完全可以在不使用 JavaScript 或后端脚本的情况下实现。这个实现方式叫CSS3不规则。CSS3 不规则的优势在于它的灵活性和可响应性。我们可以创建不同设备分辨率的完美自适应页面。此外,良好的不规则设计能够为你的网站增加一些独特的风格。CSS3 不规则图形的创建很容易,只需要对
2023-05-14

如何使用CSS的clip-path属性实现不规则图形的显示

小编给大家分享一下如何使用CSS的clip-path属性实现不规则图形的显示,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!clip-pathCSS 属性使用裁剪方
2023-06-08

使用CSS怎么生成不规则边框

这篇文章给大家介绍使用CSS怎么生成不规则边框,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 drop-shadow 添加边框第一种方法,我们可以尝试使用 drop-shadow,给不规则的图形,添加一个外阴影。我们以
2023-06-15

Python使用Matplotlib库创建3D图形和交互式图形详解

目录一、创建 3D 图形二、创建交互式图形三、结论一、创建 3D 图形Matplotlib 提供了一组用于创建 3D 图形的 API,如 3D 散点图、3D 折线图、3D 曲面图等。首先,我们需要从 mpl_toolkits.mplot3
2023-08-08

Python使用Matplotlib实现创建动态图形

Python使用Matplotlib创建动态图形是一项强大的功能,可以交互式地探索数据。通过导入Matplotlib库并遵循步骤,您可以创建和自定义动态图形。Matplotlib提供了交互功能,如缩放、平移和旋转,以及添加注释的能力。动态图形的优点包括交互性、可定制性和开源。它们广泛应用于数据可视化、科学计算、金融分析以及教育和研究领域。
Python使用Matplotlib实现创建动态图形
2024-04-02

使用plsql创建用户并授权(图形化界面)

使用plsql创建用户并授权(图形化界面) 使用sys用户登录数据库(或者有dba权限的[还不知道具体的区别,但是能用]) 在左边的对象列表中找到USERS,右键点击USERS,选择“新建用户”选项 其他安装下面的图片步骤来即可:
使用plsql创建用户并授权(图形化界面)
2019-10-05

R语言如何使用函数barplot()创建条形图

这篇文章将为大家详细讲解有关R语言如何使用函数barplot()创建条形图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。条形图表示矩形条中的数据,条的长度与变量的值成比例。 R语言使用函数 barplot
2023-06-14

Ubuntu下怎么使用Python的pygal库创建SVG矢量图形

今天小编给大家分享一下Ubuntu下怎么使用Python的pygal库创建SVG矢量图形的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了
2023-06-28

使用C++创建跨平台图形应用程序的最佳实践

创建跨平台图形应用程序的最佳实践:选择跨平台框架:qt、wxwidgets 或 glfw创建可移植代码:使用可移植的 c++++ 标准,避免平台特定代码优化性能:使用硬件加速的图形 api,避免不必要的内存操作,优化布局处理多平台兼容性:使
使用C++创建跨平台图形应用程序的最佳实践
2024-05-12

如何使用HTML和CSS创建一个响应式图库布局

引言:随着移动设备的普及,响应式设计成为了网页设计的重要考虑因素之一。而在开发一个图库网站时,如何设计一个兼具美观和响应式布局的页面,将成为重要的问题。本文将详细讨论如何使用HTML和CSS来创建一个响应式图库布局,并且提供具体的代码示例。
2023-10-21

如何使用HTML和CSS创建一个响应式图片墙布局

如何使用HTML和CSS创建一个响应式图片墙布局引言:随着移动互联网的普及,响应式设计成为了网页设计的重要标准。在网页设计中,图片墙布局是常见的一种布局形式,它可以以瀑布流的形式展示不同尺寸的图片。本文将介绍如何使用HTML和CSS创建一个
2023-10-25

如何使用HTML和CSS创建一个响应式轮播图布局

在现代的网页设计中,轮播图是一个常见的元素。它能够吸引用户的注意力,展示多个内容或图片,并且能够自动切换。在本文中,我们将介绍如何使用HTML和CSS创建一个响应式的轮播图布局。首先,我们需要创建一个基本的HTML结构,并添加所需的CSS样
2023-10-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录