css animation动画完成后隐藏_温故而知新之CSS学习

9c5cede957a05e6160bb4c68ba8db158.png

1、BFC:Block Formatting Context(块级格式化上下文)
BFC 布局规则

  • 内部的 Box 会在垂直方向一个接一个地放置
  • Box 垂直方向的距离由 margin 决定。属于同一个 BFC 的两个相邻 Box 的 margin 会发生重叠
  • 每个盒子(块盒与行盒)的 margin box 的左边,与包含块 border box 的左边相接触,即使存在浮动也是如此
  • BFC 的区域不会与 float box 重叠
  • BFC 就是页面上的一个隔离的独立容器,容器里面的子元素不会影响外面的元素。反之也是如此
  • 计算 BFC 的高度时,浮动元素也参与计算


如何创建 BFC

  • 根元素或其他包含他的元素
  • 浮动元素(元素的 float 不是 none)
  • 绝对定位元素(元素具有 position 为 absolute 或 fixed)
  • 内联块(元素具有 display: inline-block
  • 表格单元格(元素具有 display: table-cell ,HTML 表格单元格默认属性)
  • 表格标题(元素具有 display: table-caption,HTML 表格标题默认属性)
  • 具有 overflow 且值不是 visible 的块元素
  • 弹性盒子(flex 或 inline-flex)
  • display: flow-root
  • column-span: all

BFC 的作用

  1. 利用 BFC 避免 margin 重叠
  2. 自适应两栏布局
  3. 清除浮动

2、CSS3广泛运用

过渡:使动作变得更加流畅

transition: CSS属性, 花费时间, 效果曲线(默认是 ease), 延迟时间(默认是 0);

transition的animation-timing-function值(既效果曲线值)

描述
linear规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。
ease规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
ease-in规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
cubic-bezier(_n_,_n_,_n_,_n_)在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

动画:实现动作交互效果

animation: name duration timing-function delay iteration-count direction;
 
描述
_[animation-name](https://www.w3school.com.cn/cssref/pr_animation-name.asp "CSS3 animation-name 属性")_规定需要绑定到选择器的 keyframe 名称。。
_[animation-duration](https://www.w3school.com.cn/cssref/pr_animation-duration.asp "CSS3 animation-duration 属性")_规定完成动画所花费的时间,以秒或毫秒计。
_[animation-timing-function](https://www.w3school.com.cn/cssref/pr_animation-timing-function.asp "CSS3 animation-timing-function 属性")_规定动画的速度曲线。(同过渡的规则)
_[animation-delay](https://www.w3school.com.cn/cssref/pr_animation-delay.asp "CSS3 animation-delay 属性")_规定在动画开始之前的延迟。
_[animation-iteration-count](https://www.w3school.com.cn/cssref/pr_animation-iteration-count.asp "CSS3 animation-iteration-count 属性")_规定动画应该播放的次数。
_[animation-direction](https://www.w3school.com.cn/cssref/pr_animation-direction.asp "CSS3 animation-direction 属性")_规定是否应该轮流反向播放动画。

CSS3 @keyframes 规则

如需在 CSS3 中创建动画,您需要学习 @keyframes 规则。

@keyframes 规则用于创建动画。在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。

Internet Explorer 10、Firefox 以及 Opera 支持 @keyframes 规则和 animation 属性。

Chrome 和 Safari 需要前缀 -webkit-。

注释:Internet Explorer 9,以及更早的版本,不支持 @keyframe 规则或 animation 属性。

 @keyframes myfirst
 {
 from {background: red;}
 to {background: yellow;}
 }
@-moz-keyframes myfirst /* Firefox */
{
from {background: red;}
to {background: yellow;}
}

@-webkit-keyframes myfirst /* Safari 和 Chrome */
{
from {background: red;}
to {background: yellow;}
}

@-o-keyframes myfirst /* Opera */
{
from {background: red;}
to {background: yellow;}
}

为了得到最佳的浏览器支持,您还可以始终定义 0% 和 100% 选择器。

@keyframes myfirst
{
0%   {background: red; left:0px; top:0px;}
25%  {background: yellow; left:200px; top:0px;}
50%  {background: blue; left:200px; top:200px;}
75%  {background: green; left:0px; top:200px;}
100% {background: red; left:0px; top:0px;}
}

想要让css动画停留在最后一帧,可以直接添加

animation-fill-mode: forwards;

阴影

box-shadow: 水平阴影位置 垂直阴影位置 模糊距离 阴影的大小 阴影的颜色 阴影的方向(默认是从里到外,设置inset就是从外到里);

我较为常用的阴影效果

box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.1);
复制代码

边框圆角

border-radius: n1, n2, n3, n4;  四个角的弧度值,也可以填1个

3、link和@import比较

  • link 是从 html 引入的,@import 是从 css 引入的
  • link 会在浏览器加载页面是同步加载 css;页面加载完成后再加载 @import 的 css
  • 优先级 link > @import
  • @import 是 css2.1 加入的语法,只有 IE5+ 才可识别,link 无兼容问题

4、将一个块级元素水平居中有几种方法?分别是什么?

水平居中:

利用选择器选择到该元素,

1.添加属性 margin:auto;

2.设置父元素相对定位,子元素position: absolute;left:50%;同时margin-left值为-(子元素宽度的一半),因为设置top值时是相对于盒子左部,所以想要居中还要往上移动半个盒子的宽度度才能实现;

3.父级元素添加display:flex;justify-contet:center;

垂直居中:

1.父级元素添加display:flex; aiign-items:center;

2.设置父元素相对定位,子元素position: absolute;top: 50%;同时margin-top值为-(子元素高度的一半),因为设置top值时是相对于盒子顶部,所以想要居中还要往上移动半个盒子的高度才能实现。

3.这种方法和第一种差不多,在父容器中设置display:flex;子元素设置align-self: center;

4.在父容器中再加上一个子元素,把它的高度设为去掉盒子高度后的一半,实际上就是设置了一个隐藏块元素,把实际上显示的块元素“挤”到垂直居中的位置;

5. 设置父元素为相对定位,子元素为绝对定位,同时设置子元素的top,bottom,left,right值为0,最后设置margin:auto;这能实现块元素的垂直+水平居中

6. 设置父容器为display: table-cell;vertical-align: middle;

5、CSS隐藏手机端滚动条

应用如下 CSS 可以隐藏滚动条:

.element::-webkit-scrollbar {display:none}

6、CSS控制文字,超出部分显示省略号

如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。

overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;

但是这个属性只支持单行文本的溢出显示省略号,如果我们要实现多行文本溢出显示省略号呢。接下来重点说一说多行文本溢出显示省略号,如下。

实现方法一:

display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;

适用范围:

因使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;

注:

  1. -webkit-line-clamp用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的WebKit属性。常见结合属性:
  2. display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
  3. -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。

实现方法二:

p{position: relative; line-height: 20px; max-height: 40px;overflow: hidden;}
p::after{content: "..."; position: absolute; bottom: 0; right: 0; padding-left: 40px;
background: -webkit-linear-gradient(left, transparent, #fff 55%);
background: -o-linear-gradient(right, transparent, #fff 55%);
background: -moz-linear-gradient(right, transparent, #fff 55%);
background: linear-gradient(to right, transparent, #fff 55%);
}

适用范围:

该方法适用范围广,但文字未超出行的情况下也会出现省略号,可结合js优化该方法。

  1. 将height设置为line-height的整数倍,防止超出的文字露出。
  2. 给p::after添加渐变背景可避免文字只显示一半。
  3. 由于ie6-7不显示content内容,所以要添加标签兼容ie6-7(如:…);兼容ie8需要将::after替换成:after。

后记

欢迎各位留言指导,谢谢

web的前端:一篇总结得超全的前端进阶文章!入门、技巧、方法、书籍、网站...​zhuanlan.zhihu.com
133b83049c051c937907da986d70d1e0.png
作者:小菜迟暮
链接: https:// juejin.im/post/68774421 38012352525
来源:掘金
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值