HTML、CSS技术总结

常见的语义化标签:

1. 标题标签 h1-h6

2. 段落标签 p

3. 换行标签 br

4. 水平线标签 hr

5. i斜体标签(iconfont字体图标的容器来使用) i

6. em 标签 斜体字 注重文本的语调加重

7. b标签 粗体字 加粗

8. strong 粗体 强调重要内容

9. blockquote 长引用标签

10. q 短引用

11. sub 文本下角标

12. sup 文本上角标

13. del 删除线

14. ins 插入线

元素的分类

- 行内元素

1.行内元素不会独占一行,会在一行上集中排列,直到该行无法排列为止

2.通常是包裹其他的行内元素以及文本信息

3.不允许设置元素的宽、高,行内元素的宽高由其内容决定!

- 块元素

1.块元素会独占页面的一行排列显示

2.块元素中可以嵌套任何的块元素(p元素除外,p元素不能嵌套其他的块元素!)或者行内元素或者文本信息

3.可以设置元素的宽和高,默认的宽度是其父元素的宽度!

- 行内块元素

1.可以设置宽高

2.不会独占一行

div和span元素

div和span元素两个都不具备任何的语义!

        div是典型的块级元素,div通常是作为一种布局容器使用!

        span是典型的行内元素,span通常是作为行内元素以及文本信息的容器使用!

列表标签

列表标签:HTML中将列表类型分为三类,有序列表(ol)、无序列表(ul)、定义列表(dl)

1. 有序列表

1.铅笔

2.橡皮擦

3.文具盒

有序列表在html中的表示是使用ol标签,列表中的每一项是使用li标签来表示

2. 无序列表

#铅笔

#橡皮擦

#文具盒

无序列表在html中的表示是使用ul标签,列表中的每一项是使用li标签来表示

3. 定义列表 (类似于解释型列表)

img标签

img标签(图片标签):利用img标签向文档内引入外部(网络资源/本地资源)的图片资源

img标签是一个单标签(自结束标签)

img标签的属性:

src属性:外部资源的地址路径

alt属性:对图片的描述属性,文字信息的描述,当图片加载不成功时,alt属性才会发生作用

width属性:调整图片的宽度 单位是px 像素单位

height属性: 调整图片的高度 单位是px 像素单位

注意:调整图片的宽度或者高度时,只需要调整其中一个即可,另一个会自适应调整!

但是,在正常的开发中我们不会使用width属性和height属性!

超链接

a标签的属性:

href属性:指定跳转的目标路径

- 值可以是一个外部网站的地址

- 也可以是内部页面的地址

traget属性:

- _blank:新网页以新窗口的方式打开

- _self: 默认值,新网页在当前窗口中打

a标签的三种跳转方式:

1. 跳转到其他网页!(外部的或者本地的)

2. 跳转到当前页面的任意位置(锚点跳转,了解)

3. 暂时禁用跳转(#javaScript:;)

css简介

1、 行内样式(内联样式)

- 在html中每一个元素身上都存在一个全局属性,style ,通过style属性来设置元素的样式

- 该方式存在的问题:

- 使用内联样式的方式,样式只能对一个标签元素生效

- 如果有需求需要大量的整改页面的样式时,内联样式的修改是很麻烦的一件事情

- style属性的优先级特别高!不利于后续选择器进行修改!

总结:在开发中切记一定不要使用style属性来设置样式!

2、 内部样式表

- 在HTML文档中,通过style标签来设置文档相关的css样式属性

- 存在的问题:

样式的复用率不高,建议开发中尽可能的不要使用该方式,在学习阶段可以使用

3、 外联样式文件 最佳方式

新建一个.css的样式文件,在该文件中编写相应的css样式属性

然后引入到有需要的html文档中进行使用!

html文档中引入css文件是利用link标签进行样式表的引入!link标签位置写于head标签中!

选择器

基础选择器:

元素选择器:通过元素的标签名进行选择,该方式会选择页面中所以同名的元素

格式: div p span a h1 等都属于元素选择器

id选择器:通过标签元素的id属性值,来选择对应的元素,注意id属性是唯一的(类似于人的身份证号)

格式: #id值

类选择器: 通过标签元素的class属性值,来选择同类别的元素!

注意:这里的同类别,不是说 div 和 div是同类别(并不是说标签名相同的才是同类别元素)

同类别是指各元素的class值是相同的!

class值不唯一!

div class=demo

span class=demo

格式: .class值

通配符选择器: 选择页面中所以的元素

格式: *

复合选择器:是由两个或多个基础或其他选择器共同构成的!称为复合选择器!

- 交集选择器: 同时满足多个选择器的元素才能被选中

语法: 选择器1选择器2选择器3 {}

注意:各选择器之间没有任何的符合包括空格

- 并集选择器: 被选择的元素只需要满足其中一种选择器即可被选中!

语法: 选择器1,选择器2,选择器3 {}

注意:各选择器之间是用,逗号进行分隔

关系选择器!

子代选择器:

格式: 选择器1>选择器2>选择器3...

注意:子代选择器主要是看直接的父子关系!

后代选择器:

格式: 选择器1 选择器2 选择器3 ...

注意:后代选择器主要是看重祖先和后代元素的关系,(父元素和子元素都是特殊的元素)

总结:后代选择器所包含的范围更广!因为子元素也是特殊的后代元素!

子代选择器它只会去看父元素下的子元素!它不会管元素下的其他后代元素!

兄弟选择器:

格式:

- 1. 选择器1+选择器2 选中指定元素后面的第一个兄弟元素

- 2. 选择器1~选择器2 选中指定元素后面的所以兄弟元素

结构伪类选择器:

伪类: 不存在的类,是一些特殊的类!代表的是元素的某种状态

在css中可以将伪类进行分类,分成两大类:

结构型伪类:与hmlt结构相关的类

动态伪类: 与用户的交互相互的类

伪类的语法一般是: :伪类名

注意:伪类选择器大多数情况下不会单独进行使用,通常和其他选择器配合使用!

结构伪类(常用的):

:first-child 父元素下的第一个子元素

:last-child 父元素下的最后一个子元素

:nth-child() 父元素下的第n各子元素

注意:以上这些伪类都是将父元素下的所有子元素进行排序的!包括不同类型的节点!

:first-of-type 父元素下同类型的子元素进行排序中的第一个子元素

:last-of-type 父元素下同类型的子元素进行排序中的最后一个子元素

:nth-of-type() 父元素下同类型的子元素进行排序中的任意的子元素

注意: 以上的三个伪类的功能和之前的三个伪类是类似的,不同点是他们只在同类型元素中进行排序

动态伪类:

动态伪类主要是和用户的交互相关

常用的动态伪类:

:link 用来表示没有被访问过的超链接(只能用于a标签)

:visited 用来表示已经被访问过的超链接(只能用于a标签)

:hover 表示鼠标移入到某元素内 (用于任何元素)

:active 表示点击某元素 (用于任何元素)

伪元素通常是使用: ::伪元素名

::first-letter 表示第一个字母

::first-line 表示第一行

::selection 表示选中的内容

注意:以下两个伪元素必须搭配css中的content属性进行使用!

::before 元素的最开始的位置

::after 元素的末尾位置

选择器优先级

各选择器之间的权重值:从低到高

继承的样式 : 无限低

通配符选择器: 0,0,0,0

元素选择器: 0,0,0,1

类/属性/伪类选择器: 0,0,1,0

id选择器: 0,1,0,0

行内样式(标签的style属性): 1,0,0,0

!important 无穷大(注意该方式慎用!)

文档流

1、元素遵循文档流的规则(元素在文档流中的表现)

块元素的特点:

1.块元素会在页面中独占一行(自上而下垂直排列)

2.默认宽度是其父元素的宽度(子元素的宽度默认是填满父元素)

3.默认高度是被自身的内容撑开/或者靠自身的子元素/或者设置一些相关的css属性

行内元素的特点:

1.行内元素不会独占页面的一行,只占自身大小的区域

2.行内元素在页面中是从左往右水平排列的,当一行无法容纳时才会自动换行

3.行内元素的默认宽度和默认高度都是由自身的内容决定的!(行内元素不能设置width和height属性)

行内块元素的特点:

1.可以设置宽高

2.不会独占一行

2、元素不遵循文档流的规则(元素不在文档流中的表现 脱离文档流)

1.元素脱离文档流后,不再占据文档流的实际位置!

2.元素脱离文档流后,元素的层级会自动提高!

3.元素脱离文档流后,将不在区分块元素,行内元素,行内块元素!统一视为一种元素,脱离文档流的元素

4.元素脱离文档流后,默认的宽度和高度由内容决定的!也可以自行设置宽高!

float:left; 浮动元素的特点、脱离文档流元素的特点

盒模型

盒模型(盒子模块、框模型):

- css将网页中的所有元素都看作成一个矩形盒子

- 元素设置为矩形的盒子后,对页面的布局就变成了将不同的盒子摆放到合适的位置!

- 每一矩形盒子都是由以下几个部分组成:

1.内容区 (content)

2.内边距 (padding)

3.边框 (border)

4.外边距 (margin)

盒模型-内容区:

盒子模型中的内容区是用于排列所有的子元素以及文本内容的区域,内容区的大小由csss的width和hight决定

内容区的大小也会影响整个盒子的大小

盒模型-边框:

边框属于盒子的边缘部分,边框以内属于盒子内部,超过边框的就是盒子外部区域,边框的大小将会影响到整个盒子的大小

css中设置盒子的边框,由以下三个属性决定:

边框的宽度: border-width

边框的颜色: border-color

边框的样式: border-style

利用css提供的简写属性: border:1px solid red 同时设置了宽度、颜色、样式,这三个值没有顺序关系

- border-width 可以同时指定四个方向的边框宽度,也可以定向指定,根据值的不同

border-width:

值的情况:

四个值: 上 右 下 左 border-width: 10px 20px 30px 40px

三个值: 上 左右 下 border-width: 10px 20px 10px

两个值: 上下 左右 border-width: 10px 20px

一个值: 上下左右 border-width: 10px

- border-color 用法和border-width是一样的

- border-style 边框的样式:

值的情况:

- solid 实线

- dotted 点状虚线

- dashed 虚线

- double 双实线

- none 无边框(默认值)

盒模型-内边距:

- 内边距是指内容区与边框之间的距离

- 每个盒子一共由四个方向的内边距

可以分别通过css属性设置:

padding-top 上内边距

padding-right 右内边距

padding-left 左内边距

padding-bottom 下内边距

大多数情况下使用简写方式: padding:

根据值数量的不同,效果不同:

四个值: 上 右 下 左

三个值: 上 左右 下

两个值: 上下 左右

一个值: 上下左右

注意:内边距的大小设置会影响盒子可见框的大小

盒模型-外边距

- 外边距不在盒模型自身上,

- 外边距不会影响盒子可见框的大小

- 每个盒子具备四个方向的外边距:

margin-top 上外边距 设置正值或者负值

margin-right 右外边距

margin-left 左外边距

margin-bottom 下外边距

除了以上四个属性可以设置外边距之外,还可以利用简写形式margin同时为盒子的四个方向设置外边距

margin属性的用法和padding是一模一样的

元素类型的转换

元素的类型转换,

块元素 ==》 行内元素,行内块元素

行内元素 ==》 块元素,行内块元素

通过css的样式属性,display实现转换

可选值:

inline: 设置为行内元素

block: 设置为块元素

inline-block: 设置行内块元素

table: 设置为表格元素 了解

none: 将元素设置为不显示(是完全不存在于页面,不是简单的隐藏)

对应元素的隐藏设置,可以利用display:none进行切换

还可以visibility属性来设置元素的显示状态

可选值:

- visible 默认值,元素正常显示

- hidden 元素在页面中隐藏 元素不在页面中显示,但是元素依然占据着页面的位置!

高度塌陷最优解

.clearfix::after,

.clearfix::before{

content: '';

display: table;

clear: both;

}

定位

相对定位:

当元素的position属性值,设置为relative则对该元素开启了相对定位模式!

- 相对定位元素的特点:

1.元素开启了相对定位后,如果不设置偏移量元素是不会发生任何变化的

2.相对定位是参照于元素在文档流中的位置进行定位的 (参照自身原本的位置,为基准)

3.相对定位会提升元素的层级

4.相对定位不会使元素脱离文档流

5.相对定位不会改变元素的性质,块还是块,行内还是行内,....

总结:相对定位是对页面布局影响最小的定位方式!

绝对定位

- 当元素的position属性值设置为absolute就为元素开启了绝对定位

- 绝对定位元素的特点:

1.开启绝对定位后,如果不设置偏移量元素的位置不会发生变化

2.开启绝对定位后,元素会从文档流中脱离

3.绝对定位会改变元素的性质,(脱离文档流的元素)

4.绝对定位会让元素提升层级

5.绝对定位元素是相对于其最近的开启了定位的包含块来定位的

口诀:‘子绝父相’

固定定位:

- 将元素的position值设置为fixed则开启了固定定位

- 固定定位也是一种特殊的绝对定位,所有固定定位的特点基本上和绝对定位的特点的一致!

注意:唯一不同是固定定位永远参照于浏览器的视口进行定位

粘滞定位:

- position设置为 sticky开启粘滞定位

- 粘滞定位和相对定位的特点基本一致

- 不同点是粘滞定位可以在元素到达某个位置时将其固定

元素背景相关的css属性

1. 设置元素的背景颜色 bg-color */

background-color: red; */

2.设置元素背景图片 bg-image */

背景图片的设置,与元素大小有关

- 如果背景图片小于元素,则背景图片会自动在元素中平铺并且将元素填满

- 如果背景图片大于元素,将会一个部分背景在元素显示

- 背景图与元素大小一致,正好就显示背景图!

3.图片的背景重复方式的设置 bg-repeat

可选值:

1. repeat 默认值,背景会沿着元素x轴y轴双方向重复

2. repeat-x x轴方向重复

3. repeat-y y轴方向重复

4. no-repeat 背景图片不重复

background-repeat: no-repeat;

4.图片的位置设置 bg-positon x,y

图片位置的指定两种方式:

- 具体的坐标值

- 方位词 top left right

background-position: top center;

5.设置背景展示的范围 bg-clip

可选值:

- border-box 默认值 背景在边框的下方

- padding-box 背景不会在边框,只出现在内容区和内边距

- content-box

background-clip: content-box;

6.背景图片的大小设置

bg-size

注意:背景图片的大小设置,一般只设置一个值另一个值自适应!防止破坏图片比例!

- cover 之间将元素铺满,比例不变

- contain 铺满元素,但是通过单向设置图片的大小,保证图片比例不变情况下!尽量的平铺元素

background-size: contain;

简写属性 bg

background: url('./OIP-C.png') top center no-repeat;

flex弹性盒

flex (弹性盒):

- 是css中的又一种高级的布局手段,它主要用来替代浮动的!

- flex可以使得元素具有弹性!让元素可以跟随页面发送变化!

- 弹性容器:为一个元素开启了flex时,该元素就是弹性容器,弹性盒

- 利用css的属性 display 开启

display:flex 将元素设置为块级弹性容器

display:inline-flex 将元素设置为行内块的弹性容器

- 弹性元素(项目元素):弹性容器下的子元素就称作为,弹性元素!项目元素!

元素一旦开启了flex布局,那么该容器就自动生成两个轴线!

分别是主轴和侧轴

- 主轴:默认情况下,主轴就是横向的x轴,方向是从左往右

- 侧轴:默认情况下,侧轴就是纵向的y轴,方式是从上往下

注意:弹性元素,就会在主轴和侧轴上进行排列!

- css的属性设置

- 弹性容器设置相关的css属性

- 以下这些属性都是设置在弹性容器身上的!

1. flex-direciton 指定容器中的主轴和侧重方向!

可选值:

- row 默认值 主轴是x轴 方向是从左往右 ,侧轴是y轴,方向是从上往下

- column 主轴是y轴 方向是从上往下 ,侧轴是x轴,方向是从左往右

2. flex-wrap 设置弹性元素是否在弹性容器中换行

可选值:

nowrap 默认值 弹性元素不会换行

wrap 元素可以进行换行

3. flex-flow 该属性是 direciton和wrap属性的简写!

4. justify-content 分配主轴上的空白空间

可选值:

flex-start 元素从主轴的起点排列 默认值

flex-end 元素从主轴的终点排列

center 元素居中排列

space-around 空白分布到元素的两侧

space-between 空白均匀分布的元素之间 ,开始元素顶格容器边缘,末尾元素顶格容器的边缘

space-evenly 空白均匀分布到元素

5. align-items 设置元素在侧轴上对齐的方式

可选值:

- streth 默认值, 如果元素未设置高度或者宽度,则将元素沿着侧轴填满

- flex-start 元素不会拉伸,沿着侧轴起点对齐

- flex-end 元素不会拉伸,沿着侧轴终点对齐

- center 侧轴居中对齐

- baseline 文本基线对齐 了解

6. align-content 分配侧轴上的空白空间 ,

注意:该属性只能用于容器开启了换行模式才能生效 flex-wrap:wrap

可选值:

flex-start 所有元素向侧轴的起点对齐

flex-end 所有元素向侧轴的终点对齐

center 所有元素向侧轴的中间对齐

space-around 空白分布到元素的两侧

space-between 空白均匀分布的元素之间

stretch 空白单向向元素一侧分配,产生间隙

- 弹性元素的属性:

1. order 排序 数值越小 排列越靠前 默认为0

2. flex-grow 指定弹性元素的伸展系数 元素的扩充 默认情况元素不会自动扩充

3. flex-shrink 指定弹性元素的压缩 当空间不够时对元素进行压缩 默认压缩系数是1

4. flex-basis 指定元素的初始值大小,元素的宽高属性! 该属性要优于元素的宽高属性!

5. flex 属性是 flex-grow , flex-shrink , flex-basis 的简写

- flex

auto : 1 1 auto

none : 0 0 auto

6. align-self 该属性是用来覆盖当前弹性元素上的aline-items属性值的,特殊化的对待

- flex-start

- flex-end

- center

- baseline 了解

- stretch 拉满侧轴

注意: 弹性元素既可以作为某一个弹性容器的弹性元素,也可以作为其他元素的弹性容器!

元素一旦变成弹性元素后,则不再区分行元素,块元素,行内块元素

骰子练习

颜色值

预置文本: 代表颜色的英文单词

transparent: 透明

background-color: transparent;

rgb值: 在计算机图形学中,红(red)绿(green)蓝(blue)是计算机的三原色

使用rgb函数来定义一个颜色值,其中第一个参数代表红色,第二个参数代表绿色,第三个参数代表蓝色

每个参数的取值范围是:0~255 (256是一个字节的大小Byte)

background-color: rgb(74, 40, 40);

rgba值: rgb代表红绿蓝,a(alpha通道)代表透明度,取值范围0~1,值越大,越不透明

background-color: rgba(204, 20, 20, 0.5);

HSL值: H色调 S饱和度(灰度) L代表亮度

background-color: hsl(0, 36%, 41%);

十六进制值: 以井号开头

十六进制数由1~10超过10的部分由A~F表示

前两个数代表红色,中间两个数代表绿色,最后两个数代表蓝色

background-color: #2233ff; 如果颜色值成对出现,可以简写为: #23f

background-color: #f00;

带透明度的十六进制

background-color: #ff00ff7b;

项目仿写:

小米首页

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值