css你应该知道的小操作!

37 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第27天,点击查看活动详情 >


css动画与JS动画的差异

渲染线程分为 main thread 和 compositor thread,如果 css 动画只改变 transform 和 opacity, 这时整个 CSS 动画得以在 compositor trhead 完成(而 JS 动画则会在 main thread 执行,然 后出发 compositor thread 进行下一步操作),特别注意的是如果改变 transform 和 opacity 是不会 layout 或者 paint 的。

区别: 功能涵盖面,JS 比 CSS 大 实现/重构难度不一,CSS3 比 JS 更加简单,性能跳优方向固定 对帧速表现不好的低版本浏览器,css3 可以做到自然降级 css 动画有天然事件支持 css3 有兼容性问题

多行文本实现省略号

display: -webkit-box ;
-webkit-box-orient:vertical ;
// 设置为显示几行
-webkit-line-clamp:3 ;
overflow:hidden;

几种隐藏方式的差别

opacity=0,该元素隐藏起来了,但不会改变页面布局,并且,如果该元素已经绑定一些 事件,如 click 事件,那么点击该区域,也能触发点击事件的

visibility=hidden,该元素 隐藏起来了,但不会改变页面布局,但是不会触发该元素已经绑定的事件

display=none, 把元素隐藏起来,并且会改变页面布局,可以理解成在页面中把该元素删除掉一样。

清除浮动的实现方式

方法一:使用带 clear 属性的空元素 在浮动元素后使用一个空元素如,并在 CSS 中赋 予.clear{clear:both;}属性即可清理浮动。

方法二:使用 CSS 的 overflow 属性 给浮动元素的容器添加 overflow:hidden;或 overflow:auto;可以清除浮动,另外在 IE6 中还 需要触发 hasLayout ,例如为父元素设置容器宽高或设置 zoom:1。 在添加 overflow 属性后,浮动元素又回到了容器层,把容器高度撑起,达到了清理浮动 的效果。

方法三:给浮动的元素的容器添加浮动 给浮动元素的容器也添加上浮动属性即可清除内部浮动,但是这样会使其整体浮动,影 响布局,不推荐使用。

方法四:使用邻接元素处理 什么都不做,给浮动元素后面的元素添加 clear 属性。

方法五:使用 CSS 的:after 伪元素 结合:after 伪元素(注意这不是伪类,而是伪元素,代表一个元素之后最近的元素)和 IEhack ,可以完美兼容当前主流的各大浏览器,这里的 IEhack 指的是触发 hasLayout。 给浮动元素的容器添加一个 clearfix 的 class,然后给这个 class 添加一个:after 伪元素实 现元素末尾添加一个看不见的块元素(Block element)清理浮动。

如果有哪里描述不准确或者有问题,欢迎大佬指正!
(≖ᴗ≖)✧