【CSS】用shape完美实现文字环绕 circle、ellipse、polygon

本文详细介绍了 CSS 中的 Shape 属性,包括 shape-outside 和 shape-inside 的使用方法及注意事项。通过实例展示了如何利用这些属性实现文字围绕各种形状(如圆形、椭圆形、多边形等)的图片进行环绕的效果。

shape简介

shape有一下两个属性:
1.shape-outside:让文字从图片外部开始环绕,以及设置图片的形状
2.shape-inside:设置图片的内部形状,目前基本不支持

shape关键字如下(类似box-sizing):

  • margin-box
  • content-box
  • border-box
  • padding-box

基本形状用以下函数来定义:

  • circle(size at x y);用于制作圆形size可以是%,px,rem,v*
  • ellipse(size);用于制作椭圆形
  • inset(top,right,bottom,left,round);…矩形 前四个参数可缩写如padding格式
  • polygon(x1 y1,x2 y2,x3 y3…);..多边形
  • url();…从图像中提取形状,图像限于透明图片

下面用三角形文字环绕举例说明。

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .block{
            width: 20vw;
            height: 50vh;
            margin: 25vh auto;
        }
        .img{
            width: 200px;
            height: 200px;
            float: left;
            shape-outside: polygon(0 100%,50% 0,100% 100%);
            clip-path: polygon(0 100%,50% 0,100% 100%);
            background-color: pink;
        }
    </style>
<body>
<div class="block">
    <div class='img'>
        img
    </div>
    <div class="para">这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字这是什么文字</div>
</div>

效果如图:
这里写图片描述

其中clip-path函数具有浏览器兼容问题。我这里用Chrome。

如果想绘制

  • 圆形:
    shape-outside:circle(50%);
    或者
    shape-outside:circle(50% at 0 0);/精准绘制/

  • 椭圆形:
    shape-outside:ellipse(60%);
    这里写图片描述
    这里需要注意,如果绘制的图形超出图片的大小,则对于超出部分,文字依照原图图形环绕

  • 矩形(带20%圆角)
    shape-outside:inset(22px round 20%);
    这里写图片描述
    从上图我们可以很清楚地看到一个圆角矩形…(不要脸…)

  • 提取形状
    shape-outside:url(img/1.png);
    shape-image-threshold: 0.9;

    shape-image-threshold: 0.9;:用于创建形状像素的最小不透明级别,值在0-1之间

注意:要使用shape,元素必须是浮动的。因为浮动是为文字环绕而生的。
还必须有宽高。

如有纰漏,还请各位看官不吝指出。
挚谢阅读。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>利用css的clear属性实现广告文字环绕效果_网页代码站(www.webdm.cn)</title> <body> <div style="float:left;"> <div style="float:left;height:100px;width:1px;"><!--一个宽为1px的空白层,利用该层的高度控制广告层上下的位置。--></div> <div style="float:left;height:250px;width:250px;clear:left;background:#F00;margin:25px 5px 5px 0;"><!--广告代码,firefox和opera还有少量偏差,需要另外调整,就不写了,基本可以。--></div> <p>北京华侨城flash片头,Flash宣传动画源码,旅游地产类flash动画,动画效果流畅,大公司用过的动画,值得借鉴哦。一个完美的Flash网站片头效果,并且包括了fla格式的源文件,是一个房地产公司网站的片头文件,用到了Flash遮罩技术实现了画笔绘图写字效果,创意也比较不错,Flash源码分享给大家。韩国欢乐家庭flash横幅动画源文件,韩国的一个Flash动画剪辑,制作精美,希望大家喜欢。国外音乐网站flash片头源文件,做音乐网站的朋友们,或许可以参考一下呢?本源码来自国外网站。Flash公司办事处地图+TXT数据调用包,请确认你安装了最新版的Flash Player,其实这不算是一个严格的Flash地图,我觉得如果你是一个比较大的公司,用这个Flash显示公司在全国各地的办事处地址比较合适,用TXT存储数据,因此所有数据都可在TXT中修改。一个Flash结合jquery实现的特效,加载远程图片显示进度条,对进度条可方便的定义,代码内loadBg为背景DIV,loading为加载条DIV,loadText为百分比DIV;加载完毕后回调函数----回调参数说明:url-传回图片地址值,picDiv-传回所加载图片DIV的ID,w-传回的图片原始宽度,h-传回的图片原始高度;   加载图片事件参数说明:   url-图片路径,picDiv-装载图片的DIV的ID,用法:loadImg。Flash个人简历模板源文件,如果你应聘的是一家动画设计公司,相信有这么一个Flash动作制作的个人简历,肯定会得到老板的赏识,如果你对Flash个人简历模板不再行,那么就请赶快下载这套模板吧。 </p> </div> <br> <p><a href="http://www.webdm.cn">网页代码站</a> - 最专业的网页代码下载网站 - 致力为中国站长提供有质量的网页代码!</p> </body> </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值