《css 揭秘》读书笔记

虚树星云
• 阅读 1504

目标

如何用 css 解决难题

收获

尽量减少代码重复

1

用相对值

font-size: 20px;
line-height: 30px;

// 应该改成
font-size: 20px;
line-height: 1.5;

相对值很多 em 和 百分比

2

假设有个按钮 bg 颜色是 colorsA,让 bg 变亮或变暗,可以把半透明的黑色和白色叠加到上面。这样 bg 可随时换都能达到变亮或变暗的目的。

background: #58a linear-gradient(hsla(0, 0%, 100%, .2), transparent)

less做法是通过 lighten 或者 darken 设置一个值

darken(#428bca, 6.5%)

3

代码容易维护和代码量少不可兼得。

// 代码量少,但可读性可维护上差
border-width: 10px 10px 10px 0;

// 可读性可维护上好很多
border-width: 10px;
border-left-width: 0;

合理使用简写

前者是简写,可以确保背景是 red。但如果是用展开式的单个属性,那背景可能是一个渐变团,一张毛的图片或者其他任意东西。

background: red;

background-color: red;

合理使用简写是一种良好的防卫性编码方式,可以抵御未来的风险。

calc

calc 的 + - 两侧需要有空格

calc(100% - 10px); calc(100% + 10px)

连续的图像边框

1

老式信封

《css 揭秘》读书笔记

2

蚂蚁行军

椭圆

1

border 可以单独指定水平和垂直半径

border-radius: 100px / 75px;

《css 揭秘》读书笔记

2

4分之一椭圆

border-radius: 100% 0 0 0;

《css 揭秘》读书笔记

平行四边形

1

嵌套元素方案

2

伪元素方案

z-index: -1; 的使用很经典

切角

background: linear-gradient(-45deg, transparent 15px, #58a 0);

《css 揭秘》读书笔记

想加个角标,达到这个效果,需要再来一个linear-gradient,同时给不同的linear-gradient 分配不同的 background-size。

《css 揭秘》读书笔记

background:
        linear-gradient(to top left, transparent 50%, rgba(0,0,0,.4) 0) 100% 100% no-repeat,
        linear-gradient(-45deg, transparent 20px, #58a 0);
    background-size: 2em 2em, auto;

投影

普遍认识的投影是

box-shadow: 2px 3px 4px black;

这让大家误解不能对单边 box-shadow。因为鲜为人知的 第四个长度参数

box-shadow: 0px 3px 4px -4px black;

《css 揭秘》读书笔记

双层投影

box-shadow: 5px 0 5px -5px black, -5px 0px 5px -5px black;

《css 揭秘》读书笔记

毛玻璃效果

毛玻璃

自定义复选框

不多介绍,weui 也有相关案例 weui 复选框

《css 揭秘》读书笔记

滚动提示

现在越来越多的移动端都是这样处理,滚动提示

《css 揭秘》读书笔记

其他

《css揭秘》对应的github地址 https://github.com/cssmagic/C...

demo http://play.csssecrets.io/

图灵图书在封底都提供优惠码低价购买电子书

她github https://github.com/LeaVerou

点赞
收藏
评论区
推荐文章
刚刚好 刚刚好
3年前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
深度了解CSS里面字体规则、行高和垂直对齐方式
大家熟知的Lineheight和verticalalign是简单的CSS属性。如此简单,以至于我们大多数人都确信完全理解它们的工作原理和使用方法。真的是这样么,我觉得事实并非如此。它们确实很复杂,也是CSS中难点之一,因为它们在创建C
使用皕杰报表遇到的问题小结
一.单元格换行问题reportres\skin\table.css下.sswordbreak:breakall;lineheight:1;在单元格属性,WEB相关设置,CSS样式名里添加ss,选择不作为表达式处理。二.在皕杰报表单元格中显示特殊字符在使用皕杰报表的时候经常遇到特殊字符的输入,比如显示小方块或小方块里带√号,那么这些特殊符合如何输入呢?1、
徐小夕 徐小夕
5年前
《前端实战总结》之使用纯css实现网站换肤和焦点图切换动画
今天我们来继续复盘一些工作中常用的css技巧和知识,以便我们可以更加优雅的用css实现富有动感的网站.你将收获网站换肤设计方案介绍:target伪类介绍和用法以及如何使用css实现网站换肤transition动画以及如何用纯css实现焦点图动画效果展示1.网站换肤(https://imghelloworld.ossc
Stella981 Stella981
4年前
Less 嵌套
本节我们学习Less中的嵌套,嵌套应该很容易理解,HTML语言中就支持标签的嵌套。我们在使用CSS时,如果想要为多层嵌套的元素设置样式,要么给元素加上一个类选择器或ID选择器,要么使用后代选择器。例如:.xkd{fontsize:14px;}.xkdp{lineheight:25
Stella981 Stella981
4年前
Less功能特性
(1)变量   我们常常在CSS中看到同一个值重复多次,这样难易于代码维护constbgColor"skyblue";$(".postcontent").css("backgroundcolor",bgColor);$("wrap").css("backgroundcolor",bgColor);
Stella981 Stella981
4年前
Python+Selenium练习篇之5
前面介绍了,XPath,id,class,linktext,partiallinktext,tagname,name七大元素定位方法,本文介绍webdriver支持的最后一个方法:by\_css。css和XPath类似,也需要掌握一些语法,才能写出正确的,完整的css选择表达式。相关脚本代码如下:codingu
Stella981 Stella981
4年前
Linux 指令总结(持续更新)
<pstyle"color:AD5D0F;fontweight:bold;fontsize:20px;fontfamily:'微软雅黑';"Linux命令</p<pstyle"fontsize:15px;fontweight:bold;textindent:2em;letterspacing:1px;font
Stella981 Stella981
4年前
CSS 布局 ,文档流,定位,中划线,表格属性,line
CSS知识汇总verticalalign:top|middle|bottom//用于图片时,(如文字)其他元素相对于图片的上,中,下对齐divlineheight:200px;//设置lineheight的高度和div的高度一样,则div里的文字10Px上下居中对齐divheight:200px;divfontsiz
Wesley13 Wesley13
4年前
JavaIO
<divclass"output\_wrapper"id"output\_wrapper\_id"style"fontsize:15px;color:rgb(62,62,62);lineheight:1.8;wordspacing:2px;letterspacing:2px;fontfamily:'Helvet
Stella981 Stella981
4年前
Nginx在Windows平台的配置与使用
<divclass"output\_wrapper"id"output\_wrapper\_id"style"fontsize:16px;color:rgb(62,62,62);lineheight:1.6;wordspacing:0px;letterspacing:0px;fontfamily:'Helvet