css实践记录标题 | 青训营

112 阅读4分钟

css语法规则

属性名中不能含有空格,通过空格分隔属性值

css出现错误或者无法解析时,会被自动会略

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

h1(选择器 selector) {
  color(属性 property): red(属性值 value);
  font-size: 5em;(声明 declaration)
}
<!-- hi{}整体称为css规则集 -->

引入方式

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

<!--外部链接-->
<link rel="stylesheet" href="styles.css" >

<!--嵌入-->
<style>
	p{margin;}
</style>

<!--内联 需要尽量避免使用-->
<p style="margin">aaa</p>

选择器

全局选择器

*表示全局选择器

对文档所有内容生效

注意:==first-child==* 只选择特定类型的第一个子元素,而 *== :*first-child==* 选择所有类型的第一个子元素。*

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

* {
    margin: 0;
}

element选择器

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

p,li {
  color: green;
}

class选择器

用. 表示class选择器

可与element一起使用

,连接两个不同选择器(称为 选择器组)

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

li.special,
span.special {
  color: orange;
  font-weight: bold;
}

id选择器

only have one

用#表示id选择器

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

#logo{
	color: orange;
}

属性选择器

a[title]

a[href="example.com"]

p[class~="special"]

div[lang|="zh"]

子字符串

大小写敏感(i)

详见:属性选择器 - 学习 Web 开发 | MDN (mozilla.org)

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

[disabled]{
	color: orange;
}

伪类选择器

状态伪类

: 表示状态伪类选择器

针对anchor

由是否访问,鼠标悬浮状态等决定

伪元素::开头

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

a:link {
  color: pink;
}
a:visited {
  color: green;
}

结构伪类

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

/*只对li中的 所有后代中的 em 生效 */
li em {
  color: rebeccapurple;
}

<!-- 对h1p 同时生效 -->
h1 + p {
  font-size: 200%;
}
。。。

dom节点位置选择器

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

li:first-child{
	color: orange;
}

选择器的层叠cascade优先级specificity

层叠:对于同一种选择器(同优先级),后出现某个的style 会覆盖 之前的某个style

优先级:不同优先级的,优先级高的选择器对应的style会生效

特意度:

继承:一般和字体相关属性 可以继承,和模型(如宽度)不可以继承

显式继承:使原本不可继承的属性 变为 可继承(inherit)

初始值:元素不可继承 或 找不到继承属性时 使用(initial)

函数

代表以函数出现的数字

算的结果并不是可以事先计算并作为静态值输入

calc函数:进行简单计算

transform函数:有多个取值

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

.box {
  width: calc(90% - 30px);
  transform: rotate(0.8turn)
}

规则

@import 将一个样式表导入另一个 CSS 样式表

@media,它被用来创建媒体查询

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

@import "styles2.css";

@media (min-width: 30em) {
  body {
    background-color: blue;
  }
}

简写属性

颜色

red green blue:rgb( , , ); #000000

hue(色相)Saturation(饱和度) Lightness(亮度): hsl(0,50%,50%)

alpha(不透明度)

字体

font-family 字体族:

为了适应不同设备 ,使之拥有不同字体,

前面字体在设备中拥有时,忽略后面代码;不拥有时,会检查后一字体是否拥有

建议英文字体 写道 中文字体 之前

font-size

px,em

%(相对于父元素 字体的大小)

font-weight

100,200...,900 表示字体粗细

font-height

行高:例 行高1.6是 两基准线 距离 为 字体大小的1.6倍

布局

  • 常规流

      行级

      块级

      表格布局

      flexbox

      grid布局

  • 浮动

  • 绝对值

盒模型(box)

  • width: 长度,百分数(相对于box的百分数),auto(根据浏览器其他属性决定)

  • height:长度,百分数(... , 容器有指定高度时生效),auto(内容值计算得出)

  • padding:padding-top padding-bottom padding-right padding-left

  • border:... ,botder-width border-style border-color

  • margin:margin-auto(水平居中) margin collapse(垂直方向margin 会合并 即取最大)

  • box-sizing:其中的长宽 需要包含padding以及border

  • overflow:

块级 行级

  • 块级

      不和其他盒子并排摆放

      适用所有盒模型属性

  • 行级

      与其他盒子放在一行;或拆开为多行

      盒模型中width height 不适用

  • 同一个父级元素里面 不允许同时出现块级 和 行级(此时会用匿名块级将行级包裹)

flex box

使用: display:flex;将元素从上到下 或者 从左到右 排放

对齐align

弹性布局:grow, basis , shrink

换行

grid布局

划分网格

  • grid-template-colums

  • grid-template-rows

  • 注:auto,1fr(frame 即份)

grid line

float

为了实现 文字环绕效果

绝对定位

  • position

      static

      relative:根据原本位置 进行 偏移

      absolute:脱离 常规流(难道其他的 就是 不脱离 常规流吗);相对于最近的 feistatic祖先进行定位???

      fixed:相对于窗口 进行 定位

      stick