zoukankan      html  css  js  c++  java
  • CSS3 Shape ---使用形状改变旁边内容的布局

    注意

    本文所实现的功能,在浏览器的支持上并不好,除chrome浏览器外其余的大部分浏览器均不支持,虽然可以使用polyfill解决,但也不能很好的支持,有时也会出错

    polyfill使用方法

    下载polyfill,将其放入工程中,然后引用就可以了:<script src='js/shapes-polyfill.js'></script>。具体使用方法,参考GitHub

    用途

    本文主要介绍使用Shape形状改变旁边内容的布局,这里的内容主要是指文字。

    描述CSS中集合图形的使用,对于level 1(候选标准)来说,可以使用形状属性改变形状旁边内容流布局。

    属性

    shape-outside

    使用形状改变旁边内容的布局流,这里的内容指的是文字。

    语法

    shape-outside:none|[<basic-shape>||<shape-box>]|<image>

    使用形状改变旁边内容的布局流,默认值为none

    <basic-shape>:使用基本shapes函数绘制基本形状

    <shape-box>:利用盒模型得到形状

    <image>:从外部图像中获取形状

    注意:只适用于float元素

    shape-inside

    使用相撞改变内部内容的布局流(语法暂时不稳定不推荐使用

    shape-margin

    形状与旁边内容的距离

    shape-image-threshold

    适用于从外部图像中获取形状,设置阈值。即设置文字覆盖到图片的什么位置。如下图

     正常情况下,显示如下

    设置了shape-image-threshold为10的情况显示如下

    绘制基本形状

    绘制矩形

    语法

    inset()=inset(<shape-arg>{1,4}[round<border-radius>]?)

    • inset可以接受1-4个参数,类似于margin四个值的指定(上右下左)。
    • border-radius为可选参数,定义矩形的圆角

    绘制圆形

    语法

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

    • 默认为一个圆心在元素中心的的圆
    • shape-radius为可选参数,代表圆的半径。可以为数字、百分比,不可为负数;还可以为closest-side(近端)、farthest-side(远端)两个关键字。
    • position为可选参数,代表圆心位置

    绘制椭圆形

    语法

    ellipse() = ellipse( [<shape-radius>{2}]? [at <position>]? )

    • 默认为一个圆心在元素中心的的圆。
    • shape-radius为可选参数,两个值分别代表x轴、y轴半径。可以为数字、百分比,不可为负数;还可以为closest-side(近端)、farthest-side(远端)两个关键字。
    • position为可选参数,代表圆心位置

    绘制多边形

    语法

    polygon() = polygon( [<fill-rule>,]? [<shape-arg> <shape-arg>]# )

    • fill-rule为可选参数,代表多边形的填充规则。可以接受nonzero、evenodd作为参数。
    • shape-arg代表多边形顶点坐标,每一对表示一个点,至少需要三个点

    绘制多边形可以使用chrome(谷歌)浏览器CSS Shapes Editor for Chrome插件进行可视化手动设置。在chrome浏览器中的开发者工具(Ctrl+Shift+I)可以看到

    利用盒模型得到形状

    语法

    <shape-box> =  border-box | padding-box | content-box | margin-box

    盒模型其实就是通过css设置的盒子样式,主要是对边框进行设置

    例子

    border:10px solid #000;
    border-radius:50%;
    margin:20px;
    <!-- 使用margin-box,以上设置,margin会有作用 -->
    shape-outside:margin-box;
    <!-- 使用padding-box,以上设置,margin不会有作用 -->
    shape-outside:padding-box;

    从外部图像中获取形状

     语法

    shape-outside: url("");

    • url是图片路径
    • 使用外部图像得到形状,需要图像具有一个alpha通道。
    • 图像中alpha超过阈值的像素将会被用来定义形状。
    • 阈值由shape-image-threshold属性指定,默认值为0

    因Demo中设计到多个文件,这里提供demo源码下载

  • 相关阅读:
    开源博客平台WordPress十岁啦!
    (转载)C# Attribute 用法备忘
    hibernate入门
    Hibernate对象关系映射基础
    struts2UI标签
    struts2文件上传2(多文件)
    struts2验证(手工)
    通过修改注册表改变txt文件的默认打开方式
    struts2验证(XML)
    Struts国际化
  • 原文地址:https://www.cnblogs.com/xiaobaizhiqian/p/8337869.html
Copyright © 2011-2022 走看看