CSS | 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的的第2天

CSS

CSS规则 = 选择器 + 声明块

css h1{ color:red; background-color:lightblue; text-align: center; }

选择器

选择器:选中元素

  1. ID选择器

```html

这是一个段落

```

  1. 元素选择器

```html

这是一个标题

```

  1. 类选择器

```html

```

  1. 通配符选择器

*,选中所有元素

html <style> *{ margin: auto; } </style>

  1. 属性选择器

根据属性名和属性值选中元素

css /* 选中所有具有href属性的元素 */ [href]{ color:red; }

  1. 伪类选择器

选中某些元素的某种状态

1)link: 超链接未访问时的状态

css a:link { color: chocolate; }

2)visited: 超链接访问过后的状态

css a:visited { color: rgb(113, 133, 0); }

3)hover: 鼠标悬停状态

css /* 选中鼠标悬停时的a元素 */ a:hover{ color:red; }

4)active:激活状态,鼠标按下状态

css /* 鼠标按下时的a元素 */ a:active{ color:#008c8c; }

  • 爱恨法则

link > visited > hover > active

```html

Document
在这里插入图片描述
  • 特殊的两个CSS取值:
    • inherit:手动(强制)继承,将父元素的值取出应用到该元素
    • initial:初始值,将该属性设置为默认值

盒模型

box:盒子,每个元素在页面中都会生成一个矩形区域(盒子)

| 行盒 | 块盒 | |--|--| |display等于inline的元素 | display等于block的元素 | |在页面中不换行 |独占一行 | |span、a、img、video、audio | 容器元素、h1~h6、p|

display默认值为inline (没有声明display时)

盒子的组成部分

在这里插入图片描述

无论是行盒、还是块盒,都由下面几个部分组成,从内到外分别是:

  1. 内容 content

width、height,设置的是盒子内容的宽高

内容部分通常叫做整个盒子的内容盒 content-box

  1. 填充(内边距) padding

盒子边框到盒子内容的距离

padding-left、padding-right、padding-top、padding-bottom

简写属性

  • padding: 上 右 下 左

填充区+内容区 = 填充盒 padding-box

  1. 边框 border

边框 = 边框样式 + 边框宽度 + 边框颜色

  • 边框样式:border-style
  • 边框宽度:border-width
  • 边框颜色:border-color

边框+填充区+内容区 = 边框盒 border-box

  1. 外边距 margin

边框到其他盒子的距离

margin-top、margin-left、margin-right、margin-bottom

速写属性margin

  • 比较块盒、行盒、行块盒
  • 块盒
    • 可以设置宽高大小
    • 默认宽度为100%
    • 独占一行
    • p ul li h1~h6 div form table
  • 行盒
    • 无法设置宽高
    • 元素大小随内容变化
    • 所有元素默认排在一行
    • i b span a
  • 行块盒
    • 可以设置宽高大小
    • 能排在一行显示
    • img input

盒模型应用

改变宽高范围

默认情况下,width 和 height 设置的是内容盒宽高。

衡量设计稿尺寸的时候,往往使用的是边框盒,但设置width和height,则设置的是内容盒

解决方法: 1. 精确计算 2. CSS3:box-sizing

例:

css <style> .text{ width: 100px; height: 200px; padding-left: 20px; border: solid 1px red; } </style>

效果如下 在这里插入图片描述 修改如下 css <style> .text{ width: 100px; height: 200px; padding-left: 20px; border: solid 1px red; box-sizing: border-box; } </style> 结果如下 在这里插入图片描述

改变背景覆盖范围

默认情况下,背景覆盖边框盒

可以通过==background-clip==进行修改 css .text{ width: 200px; height: 600px; padding: 10px; border: 5px dashed red; background: #008c8c; background-clip: padding-box; } 效果如下 在这里插入图片描述

溢出处理

==overflow==,控制内容溢出边框盒后的处理方式

visible:可见(默认) hidden:隐藏 scroll:滚动条(可通过overflow-y(x):使滚动条只纵向(横向)出现) auto:滚动条自动出现

在这里插入图片描述

断词规则

==word-break==,会影响文字在什么位置被截断换行

  • normal:普通。CJK字符(文字位置截断),非CJK字符(单词位置截断)

  • break-all:截断所有。所有字符都在文字处截断

  • keep-all:保持所有。所有文字都在单词之间截断

空白处理

==white-space: nowrap==(不换行)

html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> li{ border-bottom: 1px dashed #ccc; line-height: 2; border-left: 3px solid #008c8c; padding-left: 10px; margin: 1em 0; width: 300px; white-space: nowrap;/*不换行 */ overflow: hidden;/* 溢出隐藏 */ text-overflow: ellipsis;/*文字溢出的部分用用圆点代替*/ } </style> </head> <body> <ul> <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</li> <li>Debitis facilis aperiam nam autem. Sed, quisquam velit.</li> <li>Mollitia consequuntur veritatis doloribus odit qui fuga id!</li> <li>Itaque quam, dolores perferendis reprehenderit harum laboriosam! Alias?</li> <li>Enim laborum quas rem distinctio corrupti quo ad?</li> <li>Deleniti voluptate laboriosam quos distinctio fuga, at sint!</li> <li>Enim labore culpa soluta placeat harum, iste ex.</li> <li>Error quibusdam quidem minus voluptas, similique aliquid iste.</li> <li>Nemo nam sit architecto facere non, quae similique?</li> <li>Placeat et cumque maxime minus, ducimus hic esse.</li> </ul> </body> </html> 效果如下 在这里插入图片描述

white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 只能控制单行文本

  • 取消空白折叠: white-space: pre;

行盒的盒模型

常见的行盒:包含==具体内容==的元素

span、strong、em、i、img、video、audio

显著特点
  1. 盒子沿着内容延伸
  2. 行盒不能设置宽高

调整行盒的宽高,应该使用字体大小、行高、字体类型间接调整

  1. 内边距(填充区)

水平方向有效,垂直方向仅会影响背景,不会实际占据空间。

  1. 边框

水平方向有效,垂直方向不会实际占据空间。

  1. 外边距

水平方向有效,垂直方向不会实际占据空间。

行块盒

==display:inline-block== 的盒子

  1. 不独占一行
  2. 盒模型中所有尺寸都有效

空白折叠

空白折叠,发生在行盒(行块盒)内部 或 行盒(行块盒)之间

可替换元素 和 非可替换元素

大部分元素,页面上显示的结果,取决于元素内容,称为非可替换元素

少部分元素,页面上显示的结果,取决于元素属性,称为可替换元素

可替换元素:img、video、audio

绝大部分可替换元素均为行盒

可替换元素类似于行块盒,盒模型中所有尺寸都有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值