破晓 发表于 2016-8-18 16:26:56

Sass绘制多边形

来源:http://www.w3cplus.com/preprocessor/creat-css-polygon-wiht-border-and-clip-path-property.html<p></p><div><br></div><div><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;"><a href="http://www.w3cplus.com/blog/tags/112.html" target="_blank" style="box-sizing: inherit; color: rgb(41, 180, 240); text-decoration: none; background: transparent;">CSS画图形</a>在Web运用中时常看到,比如三角形、五角星,心形,Ribbon等。不过以前使用CSS绘制图形一般都是借助于<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">border</code>来绘制,但这样的方式受到一定的限制,而且实用价值也有所限制。这篇文章将介绍使用CSS的<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">clip-path</code>来完成正多边形的绘制,并且借助CSS预处理器Sass给这两种方法定义对应的混合宏和函数,实现正多边形的开发。</p><h2 style="box-sizing: inherit; margin-bottom: 15px; font-size: 1.4em; color: rgb(0, 163, 207); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(221, 221, 221); padding-bottom: 5px; font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">border和多个元素绘制多边形</h2><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">使用<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">border</code>和多个HTML元素绘制三角形,Ribbon等对于我们来说还是易事,也是常见的事,并且实用性、可扩展性并不受到太多限制。但对于一个多边形来说,那就相对而言会麻烦很多了。比如一个正六边形。比如下面的一个示例:</p><pre class="ruby" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="ruby" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">.hexagon {
    <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">width:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">100</span>px;
    <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">height:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">55</span>px;
    <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">background:</span> red;
    <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">margin:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">150</span>px auto;
    <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">position:</span> relative;

    &amp;<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">:before</span>,
    &amp;<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">:after</span> {
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">content:</span> <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">""</span>;
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">position:</span> absolute;
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">width:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">height:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
    }

    &amp;<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">:before</span> {
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">top:</span> -<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">25</span>px;
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">left:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
      border-<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">left:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span>px solid transparent;
      border-<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">right:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span>px solid transparent;
      border-<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">bottom:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">25</span>px solid red;
    }
    &amp;<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">:after</span> {
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">bottom:</span> -<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">25</span>px;
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">left:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
      border-<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">left:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span>px solid transparent;
      border-<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">right:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span>px solid transparent;
      border-<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">top:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">25</span>px solid red;
    }
}
</code></pre><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="dXZgyq" src="http://codepen.io/airen/embed/dXZgyq?height=400&amp;theme-id=0&amp;slug-hash=dXZgyq&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">将这个示例扩展一下,采用SCSS来写,原理还是使用<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">border</code>和多个HTML元素配合:</p><pre class="perl" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="perl" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$PI</span>:    <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">3.141592653589793</span>;

<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">@mixin</span> border-polygon(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span>, <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$color</span>: <span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#000, $radius: 64px) {</span>
    position: relative;
    height: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">2.5</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">*$</span>radius;
    width: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">2.5</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">*$</span>radius;

    div {
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$halfWidth</span>: tan(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$PI</span> / <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span>) * <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$radius</span> + <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">1</span>; <span class="regexp" style="box-sizing: inherit; color: rgb(42, 161, 152);">/* + 1.5 to account for anti-aliasing */</span>
      border-top: <span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$radius} solid $color;</span>
      border-left: <span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$halfWidth} solid transparent;</span>
      border-right: <span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$halfWidth} solid transparent;</span>
      position: absolute;
      left: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%;</span>
      top: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%;</span>
      transform-origin: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">100</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%;</span>

      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">@for</span> <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span> from <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span> through <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span> {
            &amp;:nth-child(<span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$i}) {</span>
                transform: translate(-<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%,</span> -<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">100</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%)</span> rotate(<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">360</span>deg / <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span> * <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span>);
            }
      }
    }
}
</code></pre><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">调用定义好的mixin:<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">border-polygon</code>:</p><pre class="ruby" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="ruby" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$maxNum</span><span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">10</span>;
<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">@for</span> <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span> from <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">1</span> through <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$maxNum</span> {
    <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span><span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">:</span> <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span> + <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">3</span>;
    .<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">polygon:</span>nth-of-type(<span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$i})::after {</span>
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">content:</span> <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">"<span class="subst" style="box-sizing: inherit; color: rgb(203, 75, 22);"><span class="subst" style="box-sizing: inherit;">#{<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="variable" style="box-sizing: inherit;">$num</span></span>}</span></span>"</span>;
    }
    .borders .<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">polygon:</span>nth-of-type(<span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$i}) {</span>
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">@include</span> border-polygon(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span>, <span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#c00);</span>
    }
}
</code></pre><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">添加一些额外的CSS,看到的效果如下:</p><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="XKqxNV" src="http://codepen.io/airen/embed/XKqxNV?height=400&amp;theme-id=0&amp;slug-hash=XKqxNV&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><blockquote style="box-sizing: inherit; padding: 15px 20px; margin-bottom: 25px; border-left-width: 5px; border-left-style: solid; border-left-color: rgb(0, 163, 207); color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; background: rgb(246, 246, 246);"><p style="box-sizing: inherit; font-size: 16px; line-height: 30px;"><strong style="box-sizing: inherit;">特别声明</strong>:在定义SCSS的mixin时,里面用到了多个数学函数,而SCSS并未直接提供原生的函数,因此需要手工定义对应的SCSS函数。不过有一个优秀的SCSS库可以直接拿来使用。这个库就是<a href="https://github.com/terkel/mathsass" target="_blank" style="box-sizing: inherit; color: rgb(41, 180, 240); text-decoration: none; background: transparent;">mathsass</a>。</p></blockquote><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">为了扩展其可用性,添加多个元素并且配合伪类或伪元素来做多一个多边形,就拿六边形来说吧:</p><pre class="xml" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="xml" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="tag" style="box-sizing: inherit;">&lt;<span class="title" style="box-sizing: inherit; color: rgb(38, 139, 210);"><span class="title" style="box-sizing: inherit;">div</span></span> <span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="attribute" style="box-sizing: inherit;">class</span></span>=<span class="value" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;">"hexagon"</span></span>&gt;</span>
    <span class="tag" style="box-sizing: inherit;">&lt;<span class="title" style="box-sizing: inherit; color: rgb(38, 139, 210);"><span class="title" style="box-sizing: inherit;">a</span></span> <span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="attribute" style="box-sizing: inherit;">href</span></span>=<span class="value" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;">"##"</span></span>&gt;</span><span class="tag" style="box-sizing: inherit;">&lt;/<span class="title" style="box-sizing: inherit; color: rgb(38, 139, 210);"><span class="title" style="box-sizing: inherit;">a</span></span>&gt;</span>
    <span class="tag" style="box-sizing: inherit;">&lt;<span class="title" style="box-sizing: inherit; color: rgb(38, 139, 210);"><span class="title" style="box-sizing: inherit;">div</span></span> <span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="attribute" style="box-sizing: inherit;">class</span></span>=<span class="value" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;">"corner-1"</span></span>&gt;</span><span class="tag" style="box-sizing: inherit;">&lt;/<span class="title" style="box-sizing: inherit; color: rgb(38, 139, 210);"><span class="title" style="box-sizing: inherit;">div</span></span>&gt;</span>
    <span class="tag" style="box-sizing: inherit;">&lt;<span class="title" style="box-sizing: inherit; color: rgb(38, 139, 210);"><span class="title" style="box-sizing: inherit;">div</span></span> <span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="attribute" style="box-sizing: inherit;">class</span></span>=<span class="value" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;">"corner-2"</span></span>&gt;</span><span class="tag" style="box-sizing: inherit;">&lt;/<span class="title" style="box-sizing: inherit; color: rgb(38, 139, 210);"><span class="title" style="box-sizing: inherit;">div</span></span>&gt;</span>
<span class="tag" style="box-sizing: inherit;">&lt;/<span class="title" style="box-sizing: inherit; color: rgb(38, 139, 210);"><span class="title" style="box-sizing: inherit;">div</span></span>&gt;</span>
</code></pre><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">CSS这样写:</p><pre class="perl" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="perl" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">.hexagon{
    width: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">150</span>px;
    height: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">86</span>px;
    position: relative;
    margin: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">150</span>px auto;
    background: <span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#ccc   url("https://unsplash.it/300/300/?random") no-repeat center;</span>
    background-size:auto <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">173</span>px;

    a {
      width: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">100</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%;</span>
      height: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">100</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%;</span>
      position: absolute;
      top: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
      left: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
    }

    div {
      position: absolute;
      top: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
      left: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
      width: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">100</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%;</span>
      height: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">100</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%;</span>
      background: inherit;
      z-<span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);">index</span>: -<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">2</span>;
      overflow: hidden;
      backface-visibility: hidden;

      &amp;:before {
            width: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">173</span>px;
            height: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">173</span>px;
            content: <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">''</span>;
            position: absolute;
            background: inherit;
            top: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
            left: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
            z-<span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);">index</span>: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">1</span>;
            backface-visibility: hidden;
      }
    }

    .corner-<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">1</span>{
      z-<span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);">index</span>: -<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">1</span>;
      transform: rotate(<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">60</span>deg);

      &amp;:before {
            transform: rotate(-<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">60</span>deg) translate(-<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">87</span>px, 0px);
            transform-origin: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
      }
    }
    .corner-<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">2</span> {
      transform: rotate(-<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">60</span>deg);

      &amp;:before {
            transform: rotate(<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">60</span>deg) translate(-<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">48</span>px, -<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">11</span>px);
            bottom: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span>;
      }
    }
}
</code></pre><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">效果如下:</p><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="xOjaQX" src="http://codepen.io/airen/embed/xOjaQX?height=400&amp;theme-id=0&amp;slug-hash=xOjaQX&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">其实现原理不说多,用一张图来说事:</p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;"><img src="http://cdn.w3cplus.com/cdn/farfuture/CTUcesiiL5ztkwdK0B6_mbLN5IZDxsDnnd8WikvNrUE/mtime:1469462668/sites/default/files/blogs/2016/1607/hexagon.jpg" alt="Sass绘制多边形" title="Sass绘制多边形" style="box-sizing: inherit; border: 1px solid; vertical-align: top; max-width: 100%; height: auto; padding: 2px; margin-left: auto; margin-right: auto; display: block; background: rgb(238, 238, 238);"></p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">注: 上图来源于<a href="http://www.queness.com/author/kevin" target="_blank" style="box-sizing: inherit; color: rgb(41, 180, 240); text-decoration: none; background: transparent;">@Kevin Liew</a>写的《<a href="http://www.queness.com/post/13901/create-beautiful-hexagon-shapes-with-pure-css3" target="_blank" style="box-sizing: inherit; color: rgb(41, 180, 240); text-decoration: none; background: transparent;">CREATE BEAUTIFUL HEXAGON SHAPES WITH PURE CSS3</a>》一篇教程中。</p><h2 style="box-sizing: inherit; margin-bottom: 15px; font-size: 1.4em; color: rgb(0, 163, 207); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(221, 221, 221); padding-bottom: 5px; font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">clip-path和单个元素绘制多边形</h2><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">使用<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">border</code>和多个HTML元素,虽然免强能实现我们所需要的效果,并且通过SCSS的扩展,也能很容易绘制任意多边形。但还是较为麻烦。</p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">值得庆幸的是,CSS有一个新属性<a href="http://www.w3cplus.com/css3/introducing-css-clip-path-property.html" target="_blank" style="box-sizing: inherit; color: rgb(41, 180, 240); text-decoration: none; background: transparent;"><code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">clip-path</code></a>可以让我们在一个HTML的元素上绘制任意多的多边形。</p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">下面来看看<a href="http://www.oxxostudio.tw/" target="_blank" style="box-sizing: inherit; color: rgb(41, 180, 240); text-decoration: none; background: transparent;">OXXO.STUDIO</a>的《<a href="http://www.oxxostudio.tw/articles/201503/css-clip-path.html" target="_blank" style="box-sizing: inherit; color: rgb(41, 180, 240); text-decoration: none; background: transparent;">運用&nbsp;<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">clip-path</code>&nbsp;的純 CSS 形狀變換</a>》一文中提供的几个示例。先来看看这几个示例:</p><h3 style="box-sizing: inherit; margin-top: 20px; margin-bottom: 15px; font-size: 1.3em; color: rgb(0, 183, 233); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正三角形</h3><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;"><img src="http://cdn1.w3cplus.com/cdn/farfuture/YqmtYZ9spHNHngxssabYAXr8OPzba71SftROIZGn6ro/mtime:1469465950/sites/default/files/blogs/2016/1607/20150330_1_07.jpg" alt="正三角形" title="正三角形" style="box-sizing: inherit; border: 1px solid; vertical-align: top; max-width: 100%; height: auto; padding: 2px; margin-left: auto; margin-right: auto; display: block; background: rgb(238, 238, 238);"></p><pre class="css" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="css" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="tag" style="box-sizing: inherit; color: rgb(133, 153, 0);">div</span><span class="rules" style="box-sizing: inherit;"><span class="rules" style="box-sizing: inherit;">{
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">width</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">100</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">height</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">87</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">background</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit;">#c00</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">-webkit-clip-path</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;"><span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;">polygon(<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%, <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">50</span></span>%<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%)</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
<span class="rule" style="box-sizing: inherit;"><span class="rule" style="box-sizing: inherit;">}</span></span></span><span class="rule" style="box-sizing: inherit;"></span></span>
</code></pre><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="kXJAzJ" src="http://codepen.io/airen/embed/kXJAzJ?height=400&amp;theme-id=0&amp;slug-hash=kXJAzJ&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><h3 style="box-sizing: inherit; margin-top: 20px; margin-bottom: 15px; font-size: 1.3em; color: rgb(0, 183, 233); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正四边形(正方形)</h3><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;"><img src="http://cdn.w3cplus.com/cdn/farfuture/zqk5GAFuzxx24O6-0mGulwPdGyLWQGisHerNtgRHPps/mtime:1469465950/sites/default/files/blogs/2016/1607/20150330_1_08.jpg" alt="正四边形" title="正四边形" style="box-sizing: inherit; border: 1px solid; vertical-align: top; max-width: 100%; height: auto; padding: 2px; margin-left: auto; margin-right: auto; display: block; background: rgb(238, 238, 238);"></p><pre class="css" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="css" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="tag" style="box-sizing: inherit; color: rgb(133, 153, 0);">div</span><span class="rules" style="box-sizing: inherit;"><span class="rules" style="box-sizing: inherit;">{
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">width</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">100</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">height</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">100</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">background</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit;">#069</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">-webkit-clip-path</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;"><span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;">polygon(<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>%, <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>%)</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
<span class="rule" style="box-sizing: inherit;"><span class="rule" style="box-sizing: inherit;">}</span></span></span><span class="rule" style="box-sizing: inherit;"></span></span>
</code></pre><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="xOjyrr" src="http://codepen.io/airen/embed/xOjyrr?height=400&amp;theme-id=0&amp;slug-hash=xOjyrr&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><h3 style="box-sizing: inherit; margin-top: 20px; margin-bottom: 15px; font-size: 1.3em; color: rgb(0, 183, 233); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正五边形</h3><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;"><img src="http://cdn2.w3cplus.com/cdn/farfuture/pqZSYYGthdWoK1wEKYTVhacZw5G1fMnIvf6ENnfFWNY/mtime:1469465950/sites/default/files/blogs/2016/1607/20150330_1_09.jpg" alt="正五边形" title="正五边形" style="box-sizing: inherit; border: 1px solid; vertical-align: top; max-width: 100%; height: auto; padding: 2px; margin-left: auto; margin-right: auto; display: block; background: rgb(238, 238, 238);"></p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正五边形需要计算一下,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">59/(59+95)=38.31%</code>,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">31/(81*2)=19.14%</code>:</p><pre class="css" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="css" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="tag" style="box-sizing: inherit; color: rgb(133, 153, 0);">div</span><span class="rules" style="box-sizing: inherit;"><span class="rules" style="box-sizing: inherit;">{
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">width</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">162</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">height</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">154</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">background</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit;">#095</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">-webkit-clip-path</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;"><span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;">polygon(<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">38.31</span></span>%, <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">50</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">38.31</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">80.86</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">19.14</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%)</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
<span class="rule" style="box-sizing: inherit;"><span class="rule" style="box-sizing: inherit;">}</span></span></span><span class="rule" style="box-sizing: inherit;"></span></span>
</code></pre><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="GqGRkj" src="http://codepen.io/airen/embed/GqGRkj?height=400&amp;theme-id=0&amp;slug-hash=GqGRkj&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><h3 style="box-sizing: inherit; margin-top: 20px; margin-bottom: 15px; font-size: 1.3em; color: rgb(0, 183, 233); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正六边形</h3><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;"><img src="http://cdn2.w3cplus.com/cdn/farfuture/w8BqvyvtVPFtoEprNgFgS7SKiQ7gpzofWj47Z0dtcaQ/mtime:1469465950/sites/default/files/blogs/2016/1607/20150330_1_10.jpg" alt="正六边形" title="正六边形" style="box-sizing: inherit; border: 1px solid; vertical-align: top; max-width: 100%; height: auto; padding: 2px; margin-left: auto; margin-right: auto; display: block; background: rgb(238, 238, 238);"></p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正六边形的计算比较简单,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">50/(100+50*2)=25%</code>,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">150/(100+50*2)=75%</code>:</p><pre class="css" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="css" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="tag" style="box-sizing: inherit; color: rgb(133, 153, 0);">div</span><span class="rules" style="box-sizing: inherit;"><span class="rules" style="box-sizing: inherit;">{
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">width</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">200</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">height</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">174</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">background</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit;">#f80</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">-webkit-clip-path</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;"><span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;">polygon(<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">25</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>%, <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">75</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">50</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">75</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">25</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">50</span></span>%)</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
<span class="rule" style="box-sizing: inherit;"><span class="rule" style="box-sizing: inherit;">}</span></span></span><span class="rule" style="box-sizing: inherit;"></span></span>
</code></pre><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="grKOrL" src="http://codepen.io/airen/embed/grKOrL?height=400&amp;theme-id=0&amp;slug-hash=grKOrL&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><h3 style="box-sizing: inherit; margin-top: 20px; margin-bottom: 15px; font-size: 1.3em; color: rgb(0, 183, 233); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正七边形</h3><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;"><img src="http://cdn.w3cplus.com/cdn/farfuture/qWNVQmcK0OKxXjK-fGZk2mUVK5AqK2PhpC7jPkiKYSQ/mtime:1469465950/sites/default/files/blogs/2016/1607/20150330_1_11.jpg" alt="正七边形" title="正七边形" style="box-sizing: inherit; border: 1px solid; vertical-align: top; max-width: 100%; height: auto; padding: 2px; margin-left: auto; margin-right: auto; display: block; background: rgb(238, 238, 238);"></p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正七边形是这里计算需要的步数是最多的:<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">22/(100+62*2)=10.09%</code>,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">202/(100+62*2)=90.18%</code>,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">43/(43+97+78)=19.72%</code>,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">(43+97)/(43+97+78)=64.22%</code>,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">62/(100+62*2)=27.68%</code>,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">(100+62)/(100+62*2)=72.32%</code>:</p><pre class="css" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="css" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="tag" style="box-sizing: inherit; color: rgb(133, 153, 0);">div</span><span class="rules" style="box-sizing: inherit;"><span class="rules" style="box-sizing: inherit;">{
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">width</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">224</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">height</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">218</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">background</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit;">#09c</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">margin</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="value" style="box-sizing: inherit;"> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">50</span></span>px auto;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">-webkit-clip-path</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;"><span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;">polygon(<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">50</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>%, <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">90.18</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">19.72</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">64.22</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">72.32</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">27.68</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">64.22</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">10.09</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">19.72</span></span>%)</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
<span class="rule" style="box-sizing: inherit;"><span class="rule" style="box-sizing: inherit;">}</span></span></span><span class="rule" style="box-sizing: inherit;"></span></span>
</code></pre><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="GqGRjj" src="http://codepen.io/airen/embed/GqGRjj?height=400&amp;theme-id=0&amp;slug-hash=GqGRjj&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><h3 style="box-sizing: inherit; margin-top: 20px; margin-bottom: 15px; font-size: 1.3em; color: rgb(0, 183, 233); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正八边形</h3><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;"><img src="http://cdn1.w3cplus.com/cdn/farfuture/8ehlA5qdB7gu86pTUJOBXi5u41K3LlFdwmbwteMU4x8/mtime:1469465951/sites/default/files/blogs/2016/1607/20150330_1_12.jpg" alt="正八边形" title="正八边形" style="box-sizing: inherit; border: 1px solid; vertical-align: top; max-width: 100%; height: auto; padding: 2px; margin-left: auto; margin-right: auto; display: block; background: rgb(238, 238, 238);"></p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">正八边形的计算如下:<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">71/(100+71*2)=29.34%</code>,<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">(71+100)/(100+71*2)=70.66%</code>:</p><pre class="css" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="css" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="tag" style="box-sizing: inherit; color: rgb(133, 153, 0);">div</span><span class="rules" style="box-sizing: inherit;"><span class="rules" style="box-sizing: inherit;">{
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">width</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">242</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">height</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="number" style="box-sizing: inherit;">242</span></span></span><span class="value" style="box-sizing: inherit;">px;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">background</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="value" style="box-sizing: inherit;"><span class="hexcolor" style="box-sizing: inherit;">#f69</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
    <span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="rule" style="box-sizing: inherit;"><span class="attribute" style="box-sizing: inherit;">-webkit-clip-path</span></span></span><span class="rule" style="box-sizing: inherit;">:<span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;"><span class="value" style="box-sizing: inherit;"><span class="function" style="box-sizing: inherit;">polygon(<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">29.34</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>%, <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">70.66</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">29.34</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">70.66</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">70.66</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">29.34</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">100</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">70.66</span></span>%,<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>% <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">29.34</span></span>%)</span></span></span><span class="value" style="box-sizing: inherit;">;</span></span></span><span class="value" style="box-sizing: inherit;"></span></span>
<span class="rule" style="box-sizing: inherit;"><span class="rule" style="box-sizing: inherit;">}</span></span></span><span class="rule" style="box-sizing: inherit;"></span></span>
</code></pre><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="PzaoWp" src="http://codepen.io/airen/embed/PzaoWp?height=400&amp;theme-id=0&amp;slug-hash=PzaoWp&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">上面演示了使用<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">clip-path</code>制作正三边形至正八边形的方法,并且有些正多边形需要通过一定的计算。如果每个都这样人肉去计算,着实让人感到蛋疼。接下来,向大家介绍如何使用SCSS来实现:</p><pre class="perl" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="perl" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">@mixin</span> clip-polygon(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span>, <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$color</span>, <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$radius</span>: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">64</span>px) {
    position: relative;
    width: <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$radius</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">*2</span>;
    height: <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$radius</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">*2</span>;
    background: <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$color</span>;
    <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$points</span>: ();
    <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">@for</span> <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span> from <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">0</span> to <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span> {
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$angle</span>: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">360</span>deg/<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">2</span>/<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span> + <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">360</span>deg / <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span> * <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span>;
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$pointX</span>: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span>% + <span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);">sin</span>(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$angle</span>)<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">*50</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%;</span>
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$pointY</span>: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span>% + <span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);">cos</span>(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$angle</span>)<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">*50</span><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">%;</span>
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$points</span>: append(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$points</span>, unquote(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$pointX</span>+<span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">" "</span>+<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$pointY</span>), <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">"comma"</span>);
    }
    clip-path: polygon(<span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$points});</span>
}
</code></pre><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">使用SCSS定义了一个<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">clip-polygon</code>的mixins,这样一来可以通过<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">@include</code>来调用定义好的<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">clip-polygon</code>:</p><pre class="ruby" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="ruby" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$maxNum</span><span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">:</span> <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">10</span>;
<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">@for</span> <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span> from <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">1</span> through <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$maxNum</span> {
    <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span><span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">:</span> <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span> + <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">2</span>;
    .<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">polygon:</span>nth-of-type(<span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$i})::after {</span>
      <span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">content:</span> <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">"<span class="subst" style="box-sizing: inherit; color: rgb(203, 75, 22);"><span class="subst" style="box-sizing: inherit;">#{<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="variable" style="box-sizing: inherit;">$num</span></span>}</span></span>"</span>;
    }
    .clippaths .<span class="symbol" style="box-sizing: inherit; color: rgb(203, 75, 22);">polygon:</span>nth-of-type(<span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$i}) {</span>
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">@include</span> clip-polygon(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span>, <span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#c00);</span>
    }
}
</code></pre><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">最后的效果如下:</p><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="VjxErN" src="http://codepen.io/airen/embed/VjxErN?height=400&amp;theme-id=0&amp;slug-hash=VjxErN&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">上面的示例效果,直接通过SCSS快速实现了正三边形至正十二边形效果。</p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">除了通过使用SCSS定义混合宏之外,还可以使用SCSS的<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">function</code>来实现:</p><pre class="php" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="php" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">@<span class="function" style="box-sizing: inherit;"><span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);"><span class="function" style="box-sizing: inherit;"><span class="keyword" style="box-sizing: inherit;">function</span></span></span><span class="function" style="box-sizing: inherit;"> <span class="title" style="box-sizing: inherit; color: rgb(38, 139, 210);"><span class="title" style="box-sizing: inherit;">polygon</span></span><span class="params" style="box-sizing: inherit;"><span class="params" style="box-sizing: inherit;">(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="variable" style="box-sizing: inherit;">$points</span></span>, <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);"><span class="variable" style="box-sizing: inherit;">$startPoint</span></span>: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);"><span class="number" style="box-sizing: inherit;">0</span></span>)</span></span> {</span></span>
    <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$angle</span>: (<span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">360</span>deg / <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$points</span>);
    <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$coords</span>: <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">''</span>;
    @<span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);">for</span> <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$point</span> from <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$startPoint</span> through (<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$points</span> + <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$startPoint</span> - <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">1</span>) {
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$pointAngle</span>: <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$angle</span> * <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$point</span>;
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$x</span>: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span>% + (percentage(sin(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$pointAngle</span>)) / <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">2</span>);
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$y</span>: <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">50</span>% - (percentage(cos(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$pointAngle</span>)) / <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">2</span>);
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$coords</span>: <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$coords</span> + <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$x</span> + <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">' '</span> + <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$y</span>;
      @<span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);">if</span> <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$point</span> != <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$points</span> + <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$startPoint</span> - <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">1</span> {
            <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$coords</span>: <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$coords</span> + <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">', '</span>;
      }
      <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$point</span>: <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$point</span> + <span class="number" style="box-sizing: inherit; color: rgb(42, 161, 152);">1</span>;
    }
    <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$polygon</span>: <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">'polygon('</span> + <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$coords</span> + <span class="string" style="box-sizing: inherit; color: rgb(42, 161, 152);">')'</span>;
    @<span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);">return</span> unquote(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$polygon</span>);
}
</code></pre><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">然后在调用定义好的<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">polygon()</code>,而且这个函数具有两个参数<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">$points</code>,这个参数指的是正多边形的边数;<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">$startPoint</code>指的是开始点,其默认值为<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">0</code>:</p><pre class="bash" style="box-sizing: inherit; overflow: auto; font-family: monospace, monospace; padding: 0.5em; color: rgb(131, 148, 150); margin-bottom: 20px; line-height: 20px; background: rgb(0, 43, 54);"><code class="bash" style="box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; padding: 0.5em; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$numPoints</span>: 10;
@<span class="keyword" style="box-sizing: inherit; color: rgb(133, 153, 0);">for</span> <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span> from 1 through <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$numPoints</span> {
    <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span>: <span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$i</span> + 2;
    .clippaths .polygon:nth-of-type(<span class="comment" style="box-sizing: inherit; color: rgb(88, 110, 117); font-style: italic;">#{$i}) {</span>
      clip-path: polygon(<span class="variable" style="box-sizing: inherit; color: rgb(181, 137, 0);">$num</span>);
    }
}
</code></pre><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">配上一些样式,最后效果如下:</p><div style="box-sizing: inherit; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 20px; margin-bottom: 20px;"><iframe id="XKqxYY" src="http://codepen.io/airen/embed/XKqxYY?height=400&amp;theme-id=0&amp;slug-hash=XKqxYY&amp;default-tab=result&amp;user=airen" scrolling="no" frameborder="0" height="400" allowtransparency="true" allowfullscreen="true" class="cp_embed_iframe undefined" style="box-sizing: inherit; width: 940px; overflow: hidden;"></iframe></div><h2 style="box-sizing: inherit; margin-bottom: 15px; font-size: 1.4em; color: rgb(0, 163, 207); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(221, 221, 221); padding-bottom: 5px; font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">总结</h2><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">分别整理了使用CSS的<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">border</code>和<code style="box-sizing: inherit; font-family: Menlo, Monaco, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: 1em; padding: 1px 3px; margin-right: 3px; margin-left: 3px; border: 1px solid rgb(204, 204, 204); background: rgb(221, 221, 221);">clip-path</code>属性分别使用多个和单个HTML元素绘制正多边形的效果,而且结合CSS的预处理器SCSS定义相应的混合宏和函数来实现正多边形的效果。从而解放我们的生产力,提高开发效果。</p><p style="box-sizing: inherit; margin-bottom: 25px; font-size: 16px; line-height: 30px; color: rgb(64, 64, 64); font-family: &quot;Microsoft YaHei&quot;, 微软雅黑, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">最后,如果您有更好的方案或者更好的想法,欢迎在下面的评论中与我们一起分享。</p></div>
页: [1]
查看完整版本: Sass绘制多边形