开发中常用CSS总结
在 HTML 里表示空格。是HTML 转义字符。&entityName
(Entity),用字体表示一个符号。网上有现成的转义器。- link 标签 不加 rel=”stylesheet”,则引入样式表无效。
- 行内元素必须设置
display: inline-block
,才能设置宽高,包括 高宽,最大高宽 和 最小高宽 - html 标签 和 body 标签 默认高度为 0 ,因为是块级标签,因此 默认宽度是屏幕宽度。但是 给 html 标签 或者 body 标签 设置 背景色,背景色会填充 整个屏幕。demo demo2 。若同时 给 html 和 body 设置背景色,则 html 背景色 会覆盖 body 背景色。demo3。
- 给 html 标签 设置
height: 100% / 100vh;
,则 html 标签 和 屏幕一样高 ,body 不会继承 html 的高度。demo 。此时继续给 body设置height: 100% / 100vh;
,那么 body 也和 屏幕 一样高。demo。或者 单独给 body设置height:100vh;
,body 也和 屏幕 一样高。demo demo2 - 首页内容居中 demo
- div, span 标签没有默认的样式,其他的标签都有默认的样式。我们可以用开发者工具来查看某标签的默认样式,在浏览器界面-右键-检查-Elements。
- 浏览器默认字体大小是16px。
- 用开发者工具调试.html文件,直接改直接就能看到结果!
- 当你不知道一个 [CSS属性]的取值时,就去查MDN, google [关键词 MDN],上面还有很多例子供你学习,但是作为一个工程师,还是直接练出来比较适合我们。所以CSS3根本不用背。我们只要能实现我们的功能就可以了,会英文和工具最好,记太多也记不住,半查半蒙。
- 不同系统渲染出来的字体颜色是有差别的。
- css样式优先级:用户写的样式 > 浏览器的默认样式 > 标签自己默认的颜色样式
- 样式继承:当子元素有相同样式的时候,我们 把这些样式写在 父亲或者爷爷 元素上,那么 子元素 就会继承 长辈的样式,从而简化CSS代码,注意不是所有样式都能继承。
- 浏览器会把标签之间的所有的空格换行都归结为一个空格。例如我们为了好看总是给标签换行,因此两个span标签之间是有空格的,只不我们肉眼看不见,只需要把两个span标签挨在一块写,就能消除空格。但是如果你是不需要空格那么大的距离,而两个字之间有需要保持一定的像素,可以通过加margin-right实现。
- 选择器过于简单,可能会影响后面的样式
- 每个标签都有一个盒子模型,可打开开发者工具查看
- 内联元素的高度不可测。给内联元素设置宽高会默认失效,设置line-height也会失效。设置padding生效。设置左右margin生效,设置上下margin不生效。设置边框、背景、文字颜色都生效。值得注意的是内联元素内的直接文本应该是上下左右都是居中的,也就是在开发过程中,不存在设置内联元素里的直接文本居中需求。建议不要span内包裹文字同时又包裹一个span,不利于写样式。
- 当要实现左右两行字的中心线平齐的时候,我们只需要左右两边的字 高度相等,文字处于中间,就这两个话就很值得去亲身实践一下,第一高度相等,意味者 左右两边的祖先标签盒子模型(这个需要判断)的高度是相等的,也就是上下的padding、border、margin再加上里面元素的高度(它的所有后代)才是这个祖宗标签盒子的高度,将光标移到对应的祖宗标签处就能看到浏览器自动计算出来的高度,而左右两边的祖宗必须是同一级的,比如都是爷爷或者他们只有body这个父亲形如这种。第二,文字处于中间,那么**最里层的孙子标签的上下padding、border、margin若有值则必须相等,字方可处于中间,否则偏上偏下,偏左偏右也是同理。有了这两步,左右两部分的中心线就出在同一水平线上了。
- 介绍一种手法,写CSS样式的时候,从内到外写,先写里面,看最后宽度和高度差多少,最后用padding撑起来,从而保持了整个盒子的宽度和高度。
- CSS改bug的时候是环环相扣的,你修复了一个问题,就可能引发另一个问题。修改bug的时候要冷静。
- 新手容易犯的错误,在实际开发中,不到迫不得已,width和height能不写就不写,写了就很容易出bug。因为只要需求一变,你一改就是bug,所以我们最好采取一种通用的容错率比较高的方法,比如子元素超出父元素。
- 加阴影box-shadow,元素看起来更立体google:css shadow generator,调样式,复制现成的样式代码。
- 加动画transition: all 0.3s;给所有变化 transform加入过渡动画和过渡时间。
- 加鼠标悬停手指点击形状。cursor: pointer;
- border 调试大法。加border进行调试,不然看不来标签在哪里。或者 background 加背景颜色调试大法
- 配套使用。当设置display: inline-block;需要加上vertical-align: top;来去除底层多出的空间。????
- 设置背景图片:background-image:
url(../img/girl.jpg)
- 设置背景图片水平垂直居中:background-position: center center;
- 设置背景图片按比例缩放:background-size: cover
- 渐变色,调元素的线性渐变色,google:css linear-gradient generator,调样式,复制现成的样式代码。
- 工具 线性渐变代码生成器 ,写CSS就是会很多工具,不然有时候=代码都自己写就很麻烦。
- 伪元素 不是元素,可以看做一个span。伪元素默认是inline元素。常常使用
selector::before
selector::after
伪元素的用法1: 使用selector::after
伪元素清除浮动 demo
伪元素的用法2: 给 元素 之前 或者 之后 加内容。demo
伪元素用法3: before 和 after伪元素都可以代替 div ,通过设置 伪元素display: block
,此时伪元素就可以当一个块级元素看待,独占一行。局限是伪元素里不能再有伪元素。 - 伪类是一个分号,如:hover :nth-child,它是不存在的,表示标签的某种状态。伪元素是两个分号,如: ::before ::after,伪元素是真实存在的,但是不是一个元素,它可以替代一个元素的作用。
- CSS有很多杂碎的东西,要多去试就能学到更多的东西。
- 对页面某一块,先实现内容,再加CSS样式,即先html,后CSS。
- 从里往外写CSS样式,最后加padding,margin撑起来。
- CSS样式复用
选择器,选择器{CSS样式}
- id是唯一标识一个标签的,class是一个大类。
- 状态机,js切换左中右三种状态, css 负责样式
- display:inline-block; vertical-align: top;是配套使用的,设置了inline-block,就要同时设置后者。inlne-block可以让标签宽度等于文档流元素,另起一行。
通过这12次课的学习,我们对 CSS 有了一个基本的了解:
- 控制文档流:利用好默认的宽度和高度规则
- 控制 z-index:堆叠上下文和堆叠顺序
- 理解 BFC
- 理解 IFC
- 理解 Float 布局和 Flex 布局
- 理解响应式
- 掌握动态 REM 方案
- 掌握 icon 的使用
- 掌握 Bootstrap 的使用
了解这些理论有助于帮助你更好地理解 CSS。想要把 CSS 用得炉火纯青,还是需要多做出一些惊艳的作品。
去哪里找惊艳的作品我们推荐过:
每周去这些网站看看,然后把好玩的 demo 自己动手实现一下,过不了多久,你就会理解 CSS 的美。