CSS Shapes实现元素滚动自动环绕

浏览器支持

目前只有Webkit NightlyChrome Canary支持CSS Shape,但是它的Model Level 1已经是Candidate Recommendation(候选推荐)了,因此在规范中定义的属性和语法已经很稳定了。看来要不了多久其他浏览器也会实现CSS Shape。本Level的规范主要聚焦在几个Shape属性,这些属性主要规定了形状周围的内容该如何环绕。更具体地说,它主要聚焦在形状外围属性和其相关的属性。


如果正使用Chrome浏览器(非Canary版本),可以粘贴以下代码到地址栏:用来开启这个css的功能。

    chrome://flags/#enable-experimental-web-platform-features

看到效果但是其他浏览器还是不支持的。


使用:

element{

 shape-outside/shape-inside:形状( 参数)

}

shape-outside 限制图像周围的内容   shape-inside限制图片内部的内容

形状可选参数:circle圆形  ellipse椭圆  polygon 多边形  inset创建一个圆角矩形,文字环绕在圆角周围

参数:可以是一组坐标是由它组成那个形状的。


circle() = circle( [<shape-radius>]? [at <position>]? )
  

  比如:shape-inside: circle(250px at 500px 300px);  圆形的中心在水平500垂直300的地方,圆的半径是250px

ellipse() = ellipse( [<shape-radius>{2}]? [at <position>]? )两个参数,一个是x轴和y轴的半径,另一个是中心位置
inset() = inset( offset{1,4} [round <border-radius>]? ) 四个值是box边缘向内的值top right bottom left,还一个参数是半径

shape-outsideinset(1% round 5px 10px 5px 5px);代表图像距离文本是1%。他的边框圆角分明是5  10  5  5 

要让这行CSS生效,必须满足两个条件:

  • 元素必须是浮动的。新版的CSS Shape可以循序我们定义一个非浮动元素的形状,但是现在还不行;
  • 元素必须有确定的尺寸。元素的宽度和高度被用来建立这个元素上的坐标系统。

如果我们希望图片是个圆形,文字绕着圆

效果图:


img{

    float:left;     //浮动

    shape-outside:circle();

    width:350px;  //确定的尺寸

    height:350px;

    border-radius:50%;

}





但是我们猜想是不是只用用border-radius:50%可以让图像变成圆形然后大概就可以实现这个效果吧???但是他只是把图形变成圆形,但是整体的边框他还是矩形的。因此最终外框还是文字会绕矩形。

是这个效果:



不过这种效果也恰好是不支持这个属性的浏览器所呈现的效果。








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 VBA 中实现有数据的区域自动截图,可以使用以下代码: ``` Sub CaptureScreenshot() Dim myChart As ChartObject Dim chartRange As Range Dim chartWidth As Double, chartHeight As Double ' Select the range with data to capture Set chartRange = Range("A1:F10") If chartRange Is Nothing Then MsgBox "No data selected." Exit Sub End If ' Create a new chart object Set myChart = ActiveSheet.ChartObjects.Add(0, 0, chartRange.Width, chartRange.Height) With myChart ' Set the chart type to xlColumnClustered .Chart.ChartType = xlColumnClustered ' Set the chart data source to the selected range .Chart.SetSourceData chartRange ' Get the chart dimensions chartWidth = .Width chartHeight = .Height End With ' Copy the chart object as a picture myChart.CopyPicture xlScreen, xlPicture ' Create a new sheet to paste the picture With ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) ' Paste the picture .Paste ' Resize the picture to fit the chart dimensions .Shapes(.Shapes.Count).Width = chartWidth .Shapes(.Shapes.Count).Height = chartHeight ' Save the screenshot as a file .Shapes(.Shapes.Count).CopyPicture xlScreen, xlPicture .ChartObjects.Delete .Export "Screenshot.png" .Delete End With MsgBox "Screenshot saved as Screenshot.png." End Sub ``` 这个代码会将选定的数据范围创建为一个图表对象,然后将其复制为图片,并将其保存为一个文件。你可以将代码中的 `Range("A1:F10")` 替换为你需要截图的区域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值