css 的常用案例

Css 的几个常用案例

1. css 编写三角形
<!-- 三角形 -->
  <div class='triangle-page'>
    <div class="triangle-top"></div>
    <div class="triangle-right"></div>
    <div class="triangle-bottom"></div>
    <div class="triangle-left"></div>
  </div>
/* 三角形样式-上-右-下-左 */
.triangle-page {
  width: 50%;
  margin: 0 auto;
}
.triangle-top {
  width: 0;
  height: 0;
  border-right: 50px solid transparent;
  border-left: 50px solid transparent;
  border-top: 50px solid red;
}
.triangle-right {
  width: 0;
  height: 0;
  border-top: 50px solid transparent;
  border-bottom: 50px solid transparent;
  border-right: 50px solid blue;
}
.triangle-bottom {
  width: 0;
  height: 0;
  border-right: 50px solid transparent;
  border-left: 50px solid transparent;
  border-bottom: 50px solid yellow;
}
.triangle-left {
  width: 0;
  height: 0;
  border-top: 50px solid transparent;
  border-bottom: 50px solid transparent;
  border-left: 50px solid green;
}

效果图

<!-- 直角三角形 -->
<div class="right-triangle">
  <div class="left-top"></div>
  <div class="left-bottom"></div>
</div>
/* 直角三角形 */
.right-triangle {
  width: 50%;
  margin: 0 auto;
}
.right-triangle .left-top {
  width: 0;
  height: 0;
  border-top: 50px solid #ccc;
  border-right: 50px solid transparent;
}
.right-triangle .left-bottom {
  width: 0;
  height: 0;
  border-bottom: 50px solid #ccc;
  border-right: 50px solid transparent;
}
2. css编写燕尾型
<!-- 燕尾型 -->
  <div class="container" style="margin-top: 25px;">
    <div class="step"></div>
  </div>
/* 单个-燕尾型 */
.container .step {
  background-color: #0979CB;
  position: relative;
  display: inline-block;
  width: 120px;
  height: 40px;
}
.step::before {
  content: '';
  position: absolute;
  left: -10px;
  background: white;
  width: 40px;
  height: 40px;
  transform: rotate(-45deg);
  z-index: 1;
  box-shadow: 3px 3px 0px 0px white;
}
.step::after {
  content: '';
  position: absolute;
  right: -20px;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 20px solid #0979CB;
}
<!-- 多个-燕尾型 -->
<div class="step-container" style="margin-top: 25px;">
  <div class="step step1"></div>
  <div class="step2"></div>
  <div class="step2"></div>
  <div class="step2"></div>
</div>
/* 单个-燕尾型 */
.step-container {
  display: flex;
  overflow: hidden;
  align-items: center;
}
.step-container div.step,
.step-container div.step2 {
  background-color: #0979CB;
  position: relative;
  display: inline-block;
  flex-basis: 100px;
  height: 40px;
}
.step-container div.step:after,
.step-container div.step2:after {
  content: '';
  position: absolute;
  right: -26px;
  background: #0979CB;
  width: 40px;
  height: 40px;
  transform: rotate(-45deg);
  z-index: 1;
  box-shadow: 3px 3px 0px 0px white;
}
.step-container div.step2 {
  background-color: #ccc;
}
.step-container div.step2:after {
  background: #ccc;
}
.step-container div.step1:before {
  content: '';
  position: absolute;
  left: -10px;
  background: white;
  width: 40px;
  height: 40px;
  transform: rotate(-45deg);
  z-index: 1;
  box-shadow: 3px 3px 0px 0px white;
}

燕尾型

3. css编写多边形

(1)平行四边形

<!-- 平行四边形 -->
<div class="parallelogram">
   <div class="paralle"></div>
 </div>
.parallelogram  {
  width: 50%;
  margin: 0 auto;
}
.parallelogram .paralle {
  width: 150px;
  height: 100px;
  background: red;
  /* 旋转的度数 */
  /* transform: skew(-45deg); */
  transform: skew(20deg);
  /* 起始位置 */
  transform-origin: left top;
}

(2)梯形

<!-- 梯形 -->
<div class="trapezoid">
  <div class="trape"></div>
</div>
/* 梯形 */
.trapezoid {
  width: 50%;
  margin: 0 auto;
  margin-top: 20px;
}
.trapezoid .trape {
  width: 100px;
  height: 0;
  /* border-top: 100px solid greenyellow; */
  border-bottom: 100px solid greenyellow;
  border-left: 100px solid transparent;
  border-right: 100px solid transparent;
}

(3)五边形

<div class="pentagon">
   <div class="pent"></div>
</div>
/* 五边形 */
.pentagon {
  width: 50%;
  margin: 0 auto;
  margin-top: 20px;
}
.pentagon .pent {
  position: relative;
  width: 54px;
  border-width: 50px 18px 0;
  border-style: solid;
  border-color: aqua transparent;
}
.pentagon .pent::before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  top: -85px;
  left: -18px;
  border-width: 0 45px 35px;
  border-style: solid;
  border-color: transparent transparent aqua;
}

(4)六边形

<!-- 六边形 -->
<div class="hexagon">
  <div class="hexa"></div>
</div>
/* 六边行 */
.hexagon {
  width: 50%;
  margin: 0 auto;
  margin-top: 50px;
}
.hexagon .hexa {
  position: relative;
  width: 100px;
  height: 50px;
  background: burlywood;
}
.hexagon .hexa::before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  top: -25px;
  left: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 25px solid burlywood;
}
.hexagon .hexa::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  bottom: -25px;
  left: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-top: 25px solid burlywood;
}

(5)五角形

<!-- 五角星 -->
  <div class="five-star">
    <div class="star"></div>
  </div>
/** 五角星 */
.five-star {
  width: 50%;
  margin: 0 auto;
  margin-top: 90px;
}
.five-star .star {
  position: relative;
  width: 0;
  height: 0;
  border-left: 100px solid transparent;
  border-right: 100px solid transparent;
  border-bottom: 70px solid red;
  transform: rotate(35deg);
  display: block;
}
.five-star .star::before {
  position: absolute;
  width: 0;
  height: 0;
  border-left: 30px solid transparent;
  border-right: 30px solid transparent;
  border-bottom: 80px solid red;
  transform: rotate(-35deg);
  content: '';
  top: -45px;
  left: -65px;
  display: block;
}
.five-star .star::after {
  position: absolute;
  width: 0;
  height: 0;
  border-left: 100px solid transparent;
  border-right: 100px solid transparent;
  border-bottom: 70px solid red;
  transform: rotate(-70deg);
  top: 3px;
  left: -105px;
  display: block;
  content: '';
}

(6)爱心

<!-- 爱心 -->
  <div class="heart-box">
    <div class="heart"></div>
  </div>
/** 爱心 */
.heart-box {
  width: 50%;
  margin: 0 auto;
  margin-top: 90px;
}
.heart-box .heart {
  position: relative;
  width: 100px;
  height: 90px;
}
.heart-box .heart::before,
.heart-box .heart::after {
  position: absolute;
  content: '';
  width: 50px;
  height: 80px;
  background: red;
  top: 0;
  left: 50px;
  border-radius: 50px 50px 0 0;
  transform: rotate(-45deg);
  transform-origin: 0 100%;
}
.heart-box .heart::after {
  left: 0;
  transform: rotate(45deg);
  transform-origin: 100% 100%; 
}
4. css伪类的妙用
<!-- 对话框 -->
  <div class="dialog-box">
    <div class="dialog"></div>
  </div>
/* 对话框 */
.dialog-box {
  width: 50%;
  margin: 0 auto;
  margin-top: 50px;
}
.dialog-box .dialog {
  position: relative;
  width: 120px;
  height: 80px;
  background: #ccc;
  border-radius: 10px;
}
.dialog-box .dialog::before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  top: 26px;
  right: 100%;
  border-top: 13px solid transparent;
  border-bottom: 13px solid transparent;
  border-right: 26px solid #ccc;
}
5. css浮动的清除

(1)浮动产生的原因
一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了。
简单地说,浮动是因为使用了float:left或float:right或两者都是有了而产生的浮动。(如下图)
浮动原因

<div class="float-reason">
    <div class="left-box"></div>
    <div class="right-box"></div>
</div>
.float-reason {
  border: 1px solid red;
  width: 50%;
}
.float-reason .left-box {
  float: left;
  width: 40%;
  height: 100px;
  border: 1px solid black;
}
.float-reason .right-box {
  float: right;
  width: 40%;
  height: 100px;
  border: 1px solid black;
}

(2)浮动产生的影响

  1. 背景不能正常显示
  2. 边框不能撑开
  3. margin和padding值不能正确显示
    (3)清除浮动的方法
    新建一个样式选择器CSS命名为“.clear”,并且对应选择器样式为“clear:both”,然后我们在父级“”结束前加此div引入“class=“clear””样式。这样即可清除浮动。
<div class="float-reason">
  <div class="left-box"></div>
  <div class="right-box"></div>
  <div class="clear"></div>
</div>
/* 追加 */
.clear {
  clear: both;
}
  1. 对父级CSS选择器加overflow:hidden样式,可以清除父级内使用float产生浮动。优点是可以很少CSS代码即可解决浮动产生。
.float-reason {
  border: 1px solid red;
  width: 50%;
  overflow: hidden; // 父级增加
}

清除浮动后

6. css实现图片旋转
<div class="rotate-box">
 <img class="rotate-img" src="../../static/images/small.png" alt="">
</div>
.rotate-img {
  transform: rotate(360deg);
  -webkit-transform: rotate(360deg);
  animation: rotation 5s linear infinite;
  -moz-animation: rotation 5s linear infinite;
  -webkit-animation: rotation 5s linear infinite;
  -o-animation: rotation 5s linear infinite;
}
@-webkit-keyframes rotation{
  from {-webkit-transform: rotate(0deg);}
  to {-webkit-transform: rotate(360deg);}
}

图片旋转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值