CSS

正经人谁学CSS啊

一、本堂课重点内容:

  • 了解CSS(是什么、如何使用、如何工作、一些重要属性键值、如何调试)
  • 深入了解CSS(哪条规则生效、选择器特异度、CSS求值过程、CSS继承、布局、块级与行级)

二、详细知识点介绍:

走进前端技术栈-CSS

什么是CSS

  • Cascading Style Sheets
  • 用来定义页面元素的样式(字体、位置、动画效果等)

CSS组成

  • 选择器Selector
  • 属性Property
  • 属性值Value
  • 声明Declaration 🌰: selector { property: value; (声明语句) }

CSS使用

内联、嵌入、外链

image-20230218121629136

CSS的工作

image-20230218121638505

选择器

找出页面中的元素,以便给他们设置样式。

使用多种方式选择元素:按照标签名、类名或id,按照属性,按照DOM树中的位置

选择器类型
  • 通配选择器 🌰:* {color:red; font-size: 20px}
  • 标签选择器
  • id选择器
  • 类选择器(可出现多次,常用)
  • 属性选择器

属性🌰:<input value="haha" disabled> <style>[disabled] {background: #eee;}</style>

带值属性🌰:<input type="passworld"> <style>input[type="passworld"] {color: red;}</style>

符合条件值属性🌰:<a href="#top"回到顶部></a> <style>a[href^="#"] {color: red;}</style>

  • 伪类(pseudo-classes)——不基于标签和属性定位元素

    • 状态性伪类🌰

      image-20230218122353962

    • 结构性伪类🌰 (直接组合)

      image-20230218122406549

    • 其他类型组合image-20230218122417953

选择器组

🌰:body, h1, h2 {margin: 0; padding: 0;}

颜色

RGB
  • rgb(值,值,值)
  • #8fac87(00-ff值)
HSL——Hue色相 Saturation饱和度 Lightness亮度
  • hsl(0-360, 100%, 100%)
一些颜色名

image-20230218122428812

alpha透明度
  • rgba(值,值,值,0-1值)
  • #ff000078(0-1转化成0-255)
  • hsla(同上,0透明 1不透明)

字体

字体族

font-family 🌰:font-family:Optima,Georgia,Serif;

经常放多个字体的原因

不同客户使用的设备支持拥有和支持的字体不一样,有哪个用哪个。

通用字体族

image-20230218122436470

使用Web Fonts

image-20230218122443241

字体裁切

适当裁切字体,保证存储合适大小

字体大小

font-size(px,em,%)

字体效果

font-style(normal,italic斜体)

字体粗细/字重

font-weight(100-900,其中400:normal,700:bold)

注意
  • 字体后面一定要添加一个字体族,以防万一!!
  • 英文字体尽量写在中文字体前面
  • 字重与字体密切相关

排版

行高

line-height(1.6 在自身字体大小的倍数)

对齐

text-align(right,left,center,justify)

间距

spacing 属性类型:

  • letter-spacing:字间距
  • word-spacing:单词间距
缩进

text-indent(px)

文段格式

text-decoration(none,underline,line-through,overline)

空白符处理

white-space 属性值:

  • normal:默认,空白会被浏览器忽略
  • nowrap:文本不换行,会在同一行继续,直到
  • pre:空白保留,类似<pre标签
  • pre-wrap:保留空白符序列,但是正常地进行换行
  • pre-line:合并空白符序列,但是保留换行符
  • inherit:规定应该从父元素继承white-space属性值

调试CSS

【检查】页面

深入CSS(一)

选择器样式优先级

Inline style(内联样式) > Internal style sheet(内部样式) > External style sheet(外部样式)>!important > 内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器 > 通配选择器

🌰:

  • 内联样式:写在标签属性style的样式,如

  • ID选择器,如#id{…}

  • 类选择器,如 .class{…}

  • 属性选择器,如 input[type=”email”]{…}

  • 伪类选择器,如a:hover{…}

  • 伪元素选择器,如 p::before{…}

  • 标签选择器,如 input{…}

  • 通配选择器,如 *{…}

选择器的特异度Specificity

通过比较元素使用选择器类型和数量判断选择器的特异度

image-20230218122452047

使用策略
复用

image-20230218122501623

继承

扩展-CSS属性的继承性分类(光码不看没有用)

  • 不可继承的:display、margin、border、padding、background、height、min-height、max- height、width、min-width、max-width、overflow、position、left、right、top、 bottom、z-index、float、clear、table-layout、vertical-align、page-break-after、 page-bread-before和unicode-bidi。
  • 所有元素可继承:visibility和cursor。
  • 内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、 font-family、font-size、font-style、font-variant、font-weight、text- decoration、text-transform、direction。
  • 块状元素可继承:text-indent和text-align。
  • 列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。
  • 表格元素可继承:border-collapse。

显示继承

把不可继承的变成可继承的,属性值:inherit

属性的初始值initial
CSS运算过程

cdpn.io/webzhao/deb…

布局Layout

听累了写累了,整点截图喘口气↓

常规流

image-20230218122508756

属性关系

image-20230218122516618

border属性

image-20230218122523744

padding属性略
margin属性

margin:auto:水平居中

1
margin collapse
box-sizing:border-box非常常用↓

image-20230218122530721

overflow
  • visible
  • hidden
  • scrool

深入CSS(二)

块级和行级

不行了真的不行了,以后还是得用自己的工具写文档

image-20230211095206059

三、课后个人总结:

1.跟着视频顺一遍真的很有用 2.选一款适合自己的写文档的工具很重要,不要图省事 3.写文档是个仔细活,需精进 4.不愧是CSS(脑子真的转不动了不知道怎么总结了,明天早上想好了写评论里)

四、引用参考:

牛客真题1

牛客真题2