notes
  • Introduction
  • 语言
    • JS
      • JS原型到原型链
      • JS继承的实现
      • this对象
      • Promise基本概念
      • Promise实现
      • Promise实战
      • JS的EventLoop
      • JS容易出现误区的运算符
      • JS容易出现误区的操作符
      • JS深拷贝
      • JS节流与防抖
      • ES5实现原生/ES6方法
    • TS
      • 声明文件
      • 项目配置
    • CSS
      • CSS引入方式以及优先级计算
      • BFC神奇背后的原理-文摘
      • 回流reflow与重绘repaint
      • 三栏式布局
      • 垂直居中
      • 清除浮动的方法
      • 移动端适配方案
      • 纯CSS斜切角实现
      • CSS揭秘
      • 背景图片轮播
      • CSS绘制序列帧动画
      • transform实现一个多面体
    • HTML
  • ES6
  • Node.js
    • xxx
  • 前端框架
    • Vue.js
      • Vue双向数据绑定原理
      • Vue-Router原理及实现
    • React
    • AngularJS
  • 工程构建
    • Webpack
      • 01-webpack概述及背景
      • 03-webpack热更新原理
      • 04-splitChunks原理分析
      • 05-webpack工作流程
      • 07-webpack构建流程
      • 07-webpack构建流程
      • 10-webpack 如何进行性能分析
    • Gulp
    • Lint
      • ESLint
      • TSLint
    • Bable
  • 工程化
    • 模块化
    • 组件化
    • 规范化
      • 编码规范
    • 自动化
  • 运维
    • Nginx
    • GIT
    • CDN
    • VPS
    • DBA
  • 小程序
  • 跨端
  • 测试
  • 计算机技术
    • 计算机网络
      • 同源策略到前端跨域解决方案
      • TCP数据传输
      • TCP和UDP的区别
      • HTTP协议概述
      • HTTP缓存详解
      • HTTPS以及SSL建立过程
      • HTTPS的七个误解(译文)
      • cookie与Session机制区别以及Cookie SessionStorage LocalStorage异同
      • HTTP状态码Status
      • DNS原理入门
      • 网络攻击与防御
      • HTTP转发与重定向
      • 登录认证设计
    • 操作系统
      • shell脚本命令
    • Linux
      • Linux命令大全
      • vim命令
    • 浏览器
      • 浏览器内核、JS 引擎、页面呈现原理及其优化
      • 九种浏览器端缓存机制概览
      • 性能优化-网络请求方面
      • webkit解析CSS过程详解
  • 前端面试
    • 算法
Powered by GitBook
On this page
  • 投影
  • 染色效果
  • 毛玻璃效果
  • 折角效果
  • 自定义复选框
  • 自适应内部元素
  • 有content的三角形或者多边形。
  1. 语言
  2. CSS

CSS揭秘

Previous纯CSS斜切角实现Next背景图片轮播

Last updated 5 years ago

投影

这个其实一般的需求都可以满足,在CSS揭秘一书中讲到两种用法,

单侧投影:就是利用box-shadow属性的五个值,其中第三个值表示模糊半径,第四个值表示内外延伸,复制向内延伸,正值向外延伸,,通过配合这四个值实现单侧投影。

不规则投影:box-shadow经常和border-radius一起使用,但是border-radius会对一些伪元素或半透明的装饰不起作用,这样box-shadow也就不起作用了,遇到地这种情况,可以使用添加filter滤镜。

染色效果

其实就是使用滤镜,关于滤镜,以前接触比较少,

filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();

一个典型的应用场景:使用hover属性移入移出的时候,改变图片的颜色,

  • 方案一是使用两张图片,作用不同的背景图,问题也显而易见,

  • 方案二是使用滤镜,改变图片的色调,滤镜有很多种方法,参考: ,CSS揭秘中一个 ,使用混合模式过滤,其他模式的过程还可以在过渡过程中添加动画。

毛玻璃效果

这个效果非常有用,在demo中有 ,

基本原理使用一个伪元素before重新覆盖背景,然后再对背景使用blur处理,再对外毛边使用overflow隐藏,内毛边使用margin负值隐藏,实现毛玻璃效果,注意这里body和before的背景图要设置为cover和fixed,如果不死是fixed要更麻烦一点。

折角效果

在CSS中 之前专门用了一篇讲折角的实现,主要使用的背景的纯色渐变效果,在配上background-position实现多个角的效果。

自定义复选框

自适应内部元素

min-content 。这个关键字将解析为这个容器内部最大的不可断行元素的宽度(即最宽的单词、图片或具有固定宽度的盒元素)。使用以下两行简单的CSS 代码就可以把figure 设置为恰当的宽度,并让它水平居中:

figure {
    width: min-content;
    margin: auto;
}

有content的三角形或者多边形。

display: inline-block;
margin-right: 50px;
width: 200px;
height: 70px;
background: #58a;
background:
            linear-gradient(45deg, transparent 25px, #58a 0)bottom left  ,
            linear-gradient(-45deg, transparent 25px, #58a 0)bottom right,
            linear-gradient(-135deg, transparent 25px, #58a 0)top right  ,
            linear-gradient(135deg, transparent 25px, #58a 0)top left  ;
background-size: 51% 51% ;
background-repeat: no-repeat;

在使用表单的时候,用到单选框,复选框,如果不用插件的话,可能只能使用自带的复选框样式,使用CSS的方法解决这个问题,当 元素与复选框关联之后, 也可以起到触发开关的作用,考虑将之前input的内容隐藏掉,给label添加一个伪类样式,这样就可以实现自定义的复选框样式,这样的方法也可以适用于一个开关按钮。但是要注意一个问题,影藏input不能使用display:none,这样会它从键盘 tab 键切换焦点的队列中完全删除,使用position:absolute, clip:reat(0,0,0,0)隐藏。CSS揭秘

image

使用linear-gradient函数进行颜色渐变,具体代码

http://www.runoob.com/cssref/css3-pr-filter.html
例子
重现
线上demo
代码地址
参考