目录
一、简单的网页结构
二、常用标签
三、列表
四、CSS引入方式
五、常用选择器
1、标签(元素)选择器
2、id选择器
3、class选择器
4、通配选择器
5、复合选择器
6、关系选择器
7、属性选择器
8、伪类选择器
9、a元素的伪类
10、伪元素选择器
11、继承
12、选择器的权重
六、元素之间的转换
七、字体
字体的样式
字体的分类
字体的其他样式
八、盒子模型
1、什么是盒模型
2、影响盒模型大小
3、设置内边距
4、外边距
5、布局
6、外边距的重叠
7、元素的盒模型
九、浮动
设置浮动特点
解决高度塌陷的方法
清除浮动
十、定位
1、开启定位
2、开启定位后,元素具有特点
开启绝对定位
开启固定
开启粘滞定位
一、简单的网页结构
<!DOCTYPE html>
文档声明 告诉浏览器我们写的代码是按照html文档类型来写的,浏览器在编译代码时,也要按照html规范来编译,防止出现怪异模式
<html></html>
html根标签 一个页面就一个根标签 所有的内容都要写在根标签里面,开始标签和结束标签中间
<head> </head>
head标签 帮助浏览器编译代码,里面的内容,用户一般看不到
<body> </body>
body标签 是书写网页主体内容,用户看到的所有内容, 文字,图片,音视频等等都写在body
<!-- chinese lorem 假文
jw+数字
-->
有作洪锐领,招承如。
<!-- lorem+数字 -->
Lorem ipsum dolor sit amet.
<title></title>
title标签:网站的标题
可以帮助推广部门进行网站推广,非常重要,一般具体内容都是推广部门来定的
<meta/>
meta标签是根据其配置的属性和属性值来确定功能, 设置一些元信息
属性和属性值写在开始标签和自标签内部的
charset属性="charset属性值"
charset属性 设置字符集
utf-8 字符集的类型-万国码
gb、gbk等
编码:将汉字图片音视频等等转成二进制的过程
解码:将二进制又转成汉字图片音视频等
乱码:编码和解码参考的标准不统一,就会出现乱码
二、常用标签
1、标题标签
h1-h6
默认样式:字体加粗,从h1-h6,字体是逐步放小,行与行之间的间距比较大,独占一行
语义:表示一个标题
可以帮助推广部门做推广
其中h1的语义最重,一般情况下一个页面就一个h1
常用的是h1-h3
<h1> 一级标题 </h1>
<h2> 二级标题 </h2>
<h3> 三级标题 </h3>
<h4> 四级标题 </h4>
<h5> 五级标题 </h5>
<h6> 六级标题 </h6>
2、段落标签 p
默认样式:行与行之间有间隔,独占一行
语义:表示一个段落
注意:p中间一般只放文本或者图片
3、强调标签
strong 文本加粗强调
em 文本倾斜强调
4、center
语义:使内容居中
默认样式:会独占一行
5、br 强制换行
6、hr 分割线
7、del 删除线 不会独占一行
8、div 没有任何语义的标签,会独占一行
9、span 没有任何语义的标签 不会独占一行
能够用有语义标签的时候一定要用对应的标签
三、列表
将一组一组数据列在一起
1、有序列表
用ol创建 li表示每个列表项
默认样式:默认加项目符号123,列表项前面有一定间距
2、无序列表
用ul创建,li表示每个列表项
默认样式:加项目符号黑心圆,列表项前面有一定间距
3、定义列表
用dl创建,dt表示下定义,dd表示具体内容
注意:1、常用的ul,ol,在实际开发过程中,不会特别区分有序或者无序
2、ul li;ol li;dl dt dd;是相对固定的结构,里面一般情况下不嵌套其他子元素
3、ul ol li dl dt dd 都是块元素
4、ul ol 有一个属性 type属性,可以更改项目符号
ol type 属性
可选值:1 默认
A 、a、I、i
ul type 属性
可选值: disc 黑心圆
square 实心方块
circle 空心的圆
5、列表可以相互嵌套使用
6、列表的默认样式一般情况下,是不需要,后期写样式之前需要去除
四、CSS引入方式
第一种方式:内联样式/行内样式
写在开始标签或者自结束标签内部,写一个style属性,将css样式写在属性值
可以写多组样式,但一定要用;隔开
优点是有针对性
缺点:
1、html结构和css样式耦合了,不好看
2、不好修改
3、使用js不好修改,后期维护也不行
不建议使用
第二种方式:内部样式表
写在head标签内,写一个style标签,在style标签内,通过选择器,选中对应的内容
在{ } 内设置css样式,可以写多组样式,用 ; 隔开
优点: 方便修改
缺点:1、css样式还是写在html文件内部,会导致代码量很多
2、不方便复用
第三种方式:外部样式表
在html文件的外面新建一个.css文件,在css文件内,选中对应的内容,写css样式
通过在html文件head标签写link标签,引入对应的css文件
或在style标签内,@import url ( 文件名 .css );
推荐使用
五、常用选择器
1、标签(元素)选择器
作用:通过对应的标签名选中内容
语法:标签名 { }
注意:会波及其他的同标签名的内容
2、id选择器
作用:通过id属性值,选中对应的内容
语法:#id属性值 { }
注意:id属性值不能以数字,汉字开头,而且id属性值不能复用
3、class选择器
作用:通过对应class属性值选中内容,跟id选择器很像,不同的是class属性值可重复使用
语法:.class属性值
注意:最常用的选择器
4、通配选择器
作用:选中页面中所有的标签
语法:*{ }
5、复合选择器
1、交集选择器
作用: 同时符合选择器1选择器2···对应的内容
语法: 选择器1选择器2····{}
注意:如果选择器中有标签选择器,那么标签选择器必须放在第一位
2、并集选择器(群组选择器)
在选择器1或者选择器2或者····里面的内容
语法:选择器1,选择器2,····{}
6、关系选择器
1、子元素选择器
作用:通过指定的父元素找到指定的子元素
语法:父元素 > 子元素 { }
2、后代元素选择器
作用:通过指定的祖先元素找到指定的后代元素
语法:祖先元素 后代元素 { }
3、选择下一个兄弟(紧挨着我的)
作用:通过指定的兄弟找到紧挨弟弟
语法: 兄 + 弟 { }
4、选中指定元素下所有的兄弟
语法:兄 ~ 弟{ }
7、属性选择器
语法:[属性名]{} 选择含有指定属性的元素
[属性名=属性值]{} 选择含有指定属性和属性值的元素
[属性名^=属性值]{} 选择指定属性以指定属性值开头的元素
[属性名$=属性值]{} 选择属性值以指定值结尾的元素
[属性名*=属性值]{} 选择属性值含有某值的元素
8、伪类选择器
:first-child 第一个元素
:last-child 最后一个元素
:nth-of-child 选中第几个元素
特殊实参值
2n / even 偶数
2n+1 / odd 奇数
是按照所有子元素的排列顺序
:first-of-type 第一个元素
:last-of-type 最后一个元素
:nth-of-type( ) 选中第几个元素
特殊实参值
2n / even 偶数
2n+1 / odd 奇数
是按照同类型的子元素排序
9、a元素的伪类
1、:link 用来表示未访问过的链接(正常链接)
2、:visited 用来表示访问过的链接
由于隐私的原因,所以visited只能改颜色
注意::link,:visited 是超链接独有的
3、:hover 用来表示鼠标移入的状态
4、:active 鼠标点击后的状态
:hover :active 适用所有的标签
10、伪元素选择器
伪元素,表示页面中一些特殊的并不真实存在的元素(元素的位置)
::first-letter 表示第一个字母
::first-line 表示第一行
::selection 选中的内容
::before 元素的开始位置
::after 元素的结束位置
before和after必须要结合content使用
11、继承
/* 共同的祖先元素,设置统一的字体大小 */
body{
/* 字体的颜色、字体的大小、行高、字体 */
}
样式的继承(继承祖先的资产)
定义:为一个元素设置的样式,同时也会应用到它的后代元素上
优势:方便我们开发,讲一些通用的样式统一设置到共同的祖先元素上,
子元素的样式都可以获取到样式
注意:并不是所有的样式都会被继承,比如:背景相关的,布局相关等不会被继承
12、选择器的权重
样式冲突 通过不同的选择器选中同一个元素,进行一样的样式设定
发生样式冲突时,应用哪一个样式由选择器的权重(优先级)决定
器的权重:
内联样式 1000
id选择器 100
类选择器(包括伪类选择器) 10
标签选择器 1
通配选择器 0
继承的样式 没有权重
注意: 1、当选择器的权重相同的时候,谁靠下就使用谁
2、多个选择器共同使用,则最终权重是多个选择器权重相加
3、如果选择器是并集选,则选择器的权重是各算各的
4、选择器的权重再累加,也不会超过它的上一级
5、!important 权重最高 写在属性值的后面,中间用空格隔开 后面是分号
慎用:
一般情况在修改框架样式的时候使用
确认是否是选择器权重问题bug的时候
如果设置样式没有生效,要么是没选中,要么是权重的问题,可以用!important来做区分
六、元素之间的转换
display样式名
可选值:
block 将元素转成块元素
inline 将元素转成行内元素
inline-block 将元素转成行内块元素
none 将元素隐藏
flex 弹性盒子
table 表格
注意:最好不要经常转换
设置外边距 margin:0;
设置内边距 padding:0;
去除项目符号 list-style:none;
去掉下划线 text-decoration:none;
七、字体
字体的样式
1:color 设置字体颜色,也可以设置其他颜色
2:font-size
3:font-family可以指定文字的字体
4:@font-face
<style>
/* 自定义字体 */
@font-face {
/* 字体名字 */
font-family: 'yangyang';
/* 字体引入路径 */
src: url(./字体/ZCOOLKuaiLe-Regular.ttf);
}
.p1 {
color: #f00;
font-size: 2em;
/* 设计师会给具体的字体类型 */
font-family: 'yangyang';
}
字体的分类
在网页中将字体分成5大类:
serif ['serif](衬线字体)
sans-serif(非衬线字体)
monospace (等宽字体)
cursive ['kə:siv](草书字体)
fantasy ['fæntəsi](虚幻字体)
可以将字体设置为这些大的分类,当设置为大的分类以后,
浏览器会自动选择指定的字体并应用样式
一般会将字体的大分类,指定为font-family中的最后一个字体 ,用来兜底
字体的其他样式
设置一个文字大小
设置一个字体
设置文字斜体
font-style: ;
可选值:
normal 文本正常显示
italic 文字斜体 常用
oblique 文字斜体
设置文字的加粗
font-weight: ;
可选值:
normal 文本正常显示
bolder 文字加粗
bold 文字加粗
100-900 设置文字粗细效果,100最细 900最粗
设置一个小型大写字母
font-variant: ;
可选值:
small-caps
normal
font简写
font: italic bolder 40px monospace;
必写:字体大小,字体
顺序要求:字体大小必须倒数第二位
字体必须倒数第一位
八、盒子模型
1、什么是盒模型
将一个内容放在页面合适的位置,需要考虑到这个内容大小,位置,形状,就相当于,买一个家具
css将所有内容的形状统一成矩形,然后只需要考虑内容大小
2、影响盒模型大小
影响盒模型大小:内容区,内边距,边框
1、内容区 用来放具体内容
默认情况下
width: 设置内容区的宽度;
height: 设置内容区的高度;
2:边框(border)元素设置边框
边框属于盒子边缘,边框里面属于盒子内部,出了边框都是盒子的外部
设置边框必须指定三个样式
1、 border-width:;
4个值 上 右 下 左
3个值 上 左右 下
2个值 上下 左右
1个值 上下左右
2、 可以单独设置某一边的宽度
border-xxx-width:; top right bottom left
3、 border-width:; 选写的 有默认值:1.5px左右
1、 border-style: ;
可选值:
none 默认值,没有样式
solid 实线
dashed 虚线
double 双线
dotted 圆点虚线
2、单独设置某一边的边框样式
border-XXX-style: ; top right bottom left
3、border-style:;也可跟多个值,规则跟border-width一样
1、 border-color:; 也可跟多个值,规则跟border-width一样
2、单独设置某一边的边框样式
border-XXX-color: ; top right bottom left
3、自定义小箭头
border-color:transparent red transparent transparent;
border简写
1、 border: 10px solid blue;
2、可以单独设置某一边的边框
border-xxx top right bottom left
3 、border:solid;
4、border-XXX: none; top right bottom left
3、设置内边距
1、padding:10px; 指的是盒子的内容区与盒子边框之间的距离
2、padding:; 也可跟多个值,规则跟border-width一样
3、单独设置一边内边距
padding-xxx: ; top right bottom left
4、外边距
margin 用来控制元素与元素之间的距离
1、 margin-top:; 正值元素向下移动 负值元素向上
margin-left: ;正值元素向右移动,负值元素向左
margin-bottom: ;元素自己不动,正值挤着下面的元素向下,负值下面的元素向上
margin-right: 对于块元素,不生效
2、 margin:; 可以跟多个值,规则跟border-width一样
5、布局
1、水平布局
过渡约束
浏览器的一种规则,元素水平方向七个值数值相加,要等于其父元素内容区宽度,
如果不等于,浏览器会进行强制调整,这个过程就叫过度约束
怎么调整:
1、七个值当中没有auto,就调整margin-right
0+0+0+100+0+0+500=600
2、如果有auto,margin-left,width,margin-right可以被设置为auto
1个auto 谁是auto调整谁
margin-left为auto,width,margin-right为固定值
margin-right为auto,width,margin-left为固定值
width为auto,margin-left,margin-left为固定值
0+0+0+auto+0+0+0=600
2个auto
margin-left,width为auto,margin-right为固定值 调整width
width,margin-right为auto,margin-left为固定值 调整width
**** margin-left,margin-right为auto,width为固定值 同时调整margin-left,margin-right
3个auto
margin-left,width,margin-right为auto 调整的width
总结:如果width为auto,就只调整width
2、垂直布局
overflow: ;
可选值:
visible 默认值,文本正常显示
hidden 裁剪多余
auto 根据需要出现滚动条
scroll 双滚动条
overflow-x:;
overflow-y:;
6、外边距的重叠
垂直外边距的重叠
-兄弟元素
两者正值的话,谁大听谁的
一正一负,两者相加
两者负值的话,谁小听谁的
一般情况,兄弟元素的外边距重叠问题不需要特殊解决
-父子元素
如果父子元素的垂直外边距相邻了,则子元素的外边距会传递给父元素
从而会影响到整个页面的布局,必须要处理
解决方案:
1、用透明边框隔开两者的外边距
2、overflow: 非visible的值;(可以开启元素的BFC属性)
7、元素的盒模型
行内元素的盒模型
1: 不能设置width和height,被内容撑开
2: 可以设置padding,但垂直方向padding不会影响页面的布局,不会挤别人
3: 可以设置边框,但是垂直的边框不会影响到页面的布局,不会挤别人
4: 可以设置水平方向的外边距,水平方向的相邻外边距不会重叠,而是求和,但不支持垂直外边距
九、浮动
浮动 :就是使用float样式,使元素脱离文档流
可选值:
none 默认值,不设置浮动
left 向左浮动
right 向右浮动
设置浮动特点
1、一旦元素设置了浮动,元素就会脱离文档流,它原来在文档流得位置,
就会被它下面的元素挤上来
2、如果浮动元素它上面的元素不浮动,则浮动元素无法上移
3、浮动元素也不会超过它前面浮动元素
4、浮动元素不会超出它的父元素
浮动特点二:
当浮动元素遇到了文字,浮动元素不会覆盖文字,
文字会环绕在浮动元素的周围,从而有文字环绕图片的效果
这也是设置浮动最开始的想要的效果
浮动特点三:
当元素设置浮动以后,会完全脱离文档流,元素脱离文档流后,
元素原来在文档流得特点,就都没有了,也就是说不再区分块,行内,行内块
解决高度塌陷的方法
一般情况下,我们是不给父元素设置高度的,让其内部的子元素自动撑开父元素的高度,这样父元素的高度就可以随着子元素高度的变化而变化 ,然而子元素若设置浮动,就会脱离文档流,也就撑不开父元素的高度, 从而导致父元素的高度丢失,影响整个页面布局,这就叫高度塌陷。
解决方案一、给父元素设置自己的高度
但不推荐使用
高度塌陷解决方案二:
页面元素中的隐含属性:Block Formatting Context 即块格式化上下文,简称BFC
当开启元素的BFC以后,元素会变成一个独立的布局区域,不会在布局上影响到外面的元素
BFC 理解为一个封闭的大箱子,箱子内部的元素不会影响到外部。
开启BFC后,元素将会具有如下的特性:
1.父元素的垂直外边距不会和子元素重叠
2.开启BFC的元素不会被浮动元素所覆盖
3.开启BFC的元素可以包含浮动的子元素(可解决高度塌陷)
如何开启元素的BFC
1.设置元素浮动(不推荐)
- 使用这种方式开启,虽然可以撑开父元素,但是会导致父元素的宽度丢失
而且使用这种方式也会导致下边的元素上移,不能解决问题
2.设置元素为inline-block(不推荐)
- 可以解决问题,但是会导致宽度丢失,不推荐使用这种方式
3.将元素的overflow设置为一个非visible的值
4.设置元素绝对定位(暂时没学习)
元素也会脱离文档流,虽然可以撑开父元素,但是会导致父元素的宽度丢失
而且使用这种方式也会导致下边的元素上移,不能解决问题
推荐方式:将overflow设置为hidden是副作用最小的开启BFC的方式。
解决高度塌陷方案三:
可以在浮动元素下面添加一个空白的块元素,由于这个块元素没有浮动,还在文档流中
可以给这个块元素设置清除浮动,让其撑开父元素的高度
缺点是页面多了一个空白的结构
解决高度塌陷方案四:
可以通过after伪类向元素的最后添加一个空白的块元素,然后对其清除浮动,
这样做和添加一个div的原理一样,可以达到一个相同的效果,
而且不会在页面中添加多余的div,这是我们最推荐使用的方式,几乎没有副作用
完善
/*
解决父子外边距重叠
解决高度塌陷
*/
.clearfix::before,
.clearfix::after {
content: "";
display: table;
clear: both;
}
清除浮动
clear可以用来清除其他浮动元素对当前元素的影响
可选值:
none,默认值,不清除浮动
left,清除左侧浮动元素对当前元素的影响
right,清除右侧浮动元素对当前元素的影响
both,清除两侧浮动元素对当前元素的影响,清除对他影响最大的那个元素的浮动
十、定位
1、开启定位
position样式设置定位
可选值:
static 默认值,不开启定位
relative 开启相对定位
absolute 开启绝对定位
fixed 开启固定定位
sticky 开启粘滞定位
2、开启定位后,元素具有特点
position: relative; 开启相对定位
1、元素位置不发生变化,不会脱离文档流
2、开启定位后,元素需要配合偏移量去改变元素的位置
3、相对定位原点是其原来在文档流中的位置
4、开启相对定位后,元素的层级变高了
开启绝对定位
position: absolute;
1、元素会脱离文档流,也就是不会区分块元素,行内元素,行内块元素
2、元素的位置没有发生改变,需要配合偏移量使用
3、绝对定位的原点是参照其包含块来定位的,
一般情况,会给其父元素设置相对定位,叫“父相子绝”,但根据项目需要
4、开启绝对定位,元素的层级也会提高
包含块
1、没有定位的时候,包含块就是其父元素
2、有定位的时候,包含块就是离它最近的,开启定位的祖先元素,
如果其祖先元素,都没有开启定位,那包含块就是根元素(html)
开启固定
position: fixed;
1、开启固定定位,会使元素脱离文档流,就不会区分块元素,行内元素,行内块元素
2、开启固定定位,元素不会随着滚动条的滚动而滚动
3、也是配合偏移量移动元素,元素的原点是浏览器的视口(html根标签)
4、元素的层级也会提高
5、常用的场景
顶部导航,侧边导航,广告···
开启粘滞定位
position: sticky;
1、元素不会脱离文档流
2、元素的位置没有发生改变,也是配合偏移量使用
一般情况是配合top使用,
元素在没有到top值的时候,元素是随着滚动条的滚动而滚动,
当到达设置的top值后,元素就固定了,不会随着滚动条滚动而滚动
3、粘滞原点也是参考浏览视口文章来源:https://www.toymoban.com/news/detail-743098.html
4、层级也会提高文章来源地址https://www.toymoban.com/news/detail-743098.html
到了这里,关于HTML+CSS阶段知识点梳理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!