分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

CSS揭秘(三)形状

发布时间:2023-09-06 01:48责任编辑:傅花花关键词:CSS

Chapter 3

 1. 椭圆

椭圆的实现主要依靠 border-radius 属性,该属性确定边框切圆角的半径大小,可以指定数值 px,也可以使用百分比显示

而且该属性非常灵活,四个角可以分别设置

width: 200px;height:200px; ???????????????????//正方形--------------------------------------------------------border-radius:100px; ?????????//圆形border-radius:50%/50%; ????//水平半径 / 垂直半径--------------------------------------------------------border-radius:50px/20px; ???//椭圆边角
--------------------------------------------------------
border-radius:50%/100% 100% 0 0 ?//半椭圆,底部垂直圆角为0时水平圆角也自动为0,无需再次指定

                  

2. 平行四边形

平行四边形的实现依靠 transform:skew()实现,可以自己选择倾斜的方向X轴还是Y轴

要解决的问题是:如何在容器倾斜的情况下保持内容不变?

<a href="#yolo" class="button"><div>Click me</div></a>---------------------------------------------------.button { transform: skewX(45deg); }.button > div { transform: skewX(-45deg); } ?//文字设置反向倾斜以抵消容器带来的倾斜.button { ???display: inline-block; ???padding: .5em 1em; ???border: 0; margin: .5em; ???background: #58a; ???color: white; ???text-transform: uppercase; ???text-decoration: none; ???font: bold 200%/1 sans-serif;}
.button { ????????????????????????????????//宿主元素 ???position: relative; ???display: inline-block; ???padding: .5em 1em; ???border: 0; margin: .5em; ???background: transparent; ???color: white; ???text-transform: uppercase; ???text-decoration: none; ???font: bold 200%/1 sans-serif;}.button::before { ?????????????????????????//伪元素 ??????content: ‘‘; /* To generate the box */ ???position: absolute; ???top: 0; right: 0; bottom: 0; left: 0; ???z-index: -1; ???background: #58a; ???transform: skew(45deg);}

//想要变形元素而不变形内容可以使用

3. 简单的饼图

饼图实现有两种方式:渐变与SVG

渐变结合伪元素实现旋转,要注意超过50%之后要反转伪元素背景色;

通过这种方式还可以做动态旋转动画,用作加载进度的显示

<div class="pie"></div>--------------------------------------------------------------------------------------------.pie { ???width: 100px; height: 100px; ???border-radius: 50%; ???background: yellowgreen; ???background-image: linear-gradient(to right, transparent 50%, currentColor 0); ???color: #655;}.pie::before { ???content: ‘‘; ???display: block; ???margin-left: 50%; ???height: 100%; ???border-radius: 0 100% 100% 0 / 50%; ???background-color: inherit; ???transform-origin: left; ???transform:rotate(0.15turn); ???//设置旋转角度}

 SVG实现是先画圆和描边,然后在描边的下层再画一个更大的圆

虚线描边属性 stroke-dasharray 的第一个参数表示虚线长度,第二个为虚线之间的间隙长度

<svg width="100" height="100"><circle r="25" cx="50" cy="50"/><svg>------------------------------------------svg { ???transform: rotate(-90deg); ???background: yellowgreen; ???border-radius: 50%;}circle { ???fill: yellowgreen; ???stroke: #655; ???stroke-width:50; ??????????????//该宽度为半径的两倍 ???stroke-dasharray:50 160; ??????//第二个参数为周长}

CSS揭秘(三)形状

原文地址:https://www.cnblogs.com/sleeping-dog/p/8686104.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved