虽然现在的带宽速度已经足够加载图片,但是使用css来生成三角形仍然可以压缩页面资源大小以及获得比粗暴插入图片更好的样式。
利用css盒模型的border创建三角形
1 2 3 4 5 6 7 8 9 10 11
| <div></div> <style> div { width: 0; height: 0; border: 20px solid; border-color: transparent transparent red; } </style>
|
不过这样得到的三角形其他三个部分仍然占用空间,只是我们把它设置为了透明。
再将border-top
的width
设置为0即可:
1 2 3 4 5 6 7 8 9 10
| <div></div> <style> div { width: 0; height: 0; border-width: 0 20px 20px; border-style: solid; border-color: transparent transparent red; } </style>
|
利用两个三角形重叠形成三角形环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <div class="tri_big"> </div> <style> div.tri_big { position: relative; width: 0; height: 0; border-width: 0 20px 20px; border-style: solid; border-color: transparent transparent red; } div.tri_big:after { content: ''; position: absolute; left: -16px; top: 3px; width: 0; height: 0; border-width: 0 16px 16px; border-style: solid; border-color: transparent transparent yellow; } </style>
|
绘制左/右直角三角形
右直角三角形将border-left
设置为0
1 2 3 4 5 6 7 8 9 10 11
| <div class="tri"></div>
<style> div.tri { width: 0; height: 0; border-width: 0 20px 20px 0; border-style: solid; border-color: transparent transparent red; } </style>
|
左直角三角形将border-right
设置为0
1 2 3 4 5 6 7 8 9 10 11
| <div class="tri"></div>
<style> div.tri { width: 0; height: 0; border-width: 0 0 20px 20px; border-style: solid; border-color: transparent transparent red; } </style>
|