1.HTML-CSS样式表的优先级
当一个HTML元素有一个以上的样式时,作用的优先级如下:
- 在一个HTML元素内,内联样式优先级最高,会覆盖外部样式和内部样式以及浏览器默认样式
- 在head里添加的内部样式和引入的外部样式,后添加和引入的优先级高
- 浏览器默认样式的优先级最低
2.css选择器类别
2.1简单选择器
根据元素名称、ID、类别来选择元素
- ID选择器:使用一个HTML元素的id属性来选择一个特定的元素。用【#id名称】表示。id名称不可用数字开头
- 类选择器:可以选择具有特定的class属性的HTML元素。用【.类名称】表示。class属性可以用多个样式的叠加;如class="样式1 样式2 ......"
- 分组选择器:选择所有具有相同样式的HTML元素,元素之间用,隔开。
- 通用选择器:选择页面的所有元素,用*{}设置
以上几种可参照下图
2.2组合选择器
根据元素之间的特定关系来选择
选择器分类 | 选择器定义语法 | 例子 | 例子说明 |
后代选择器(匹配指定元素后代的所有元素) | element element | div p | 选择<div>元素内所有的<p>元素 |
子选择器 | element>element | div>p | 选择所有父元素是<div>元素的<p>元素 |
相邻的兄弟选择器 | element+element | div+p | |
一般兄弟选择器 | element~element | div~p |
2.3伪类选择器
根据某种状态来选择元素
基本语法为:其他基础选择器:鼠标行为{
常用的伪类选择器 | 语法 | 注意: 1.冒号和后面的鼠标行为,没有任何空格,必须连接在一起 2.四个伪类选择器必须按照表格介绍的顺序书写(见表格左边),否则浏览器中部分样式不能实现 3.伪类选择器全部一起使用的情况,主要是应用在超链接上,偶尔也会在其他标签上 |
鼠标点击前 | :link | |
鼠标点击后(鼠标点击并移开后的样式) | :visited | |
鼠标悬停(鼠标悬停或划过元素时的样式) | :hover | |
鼠标点击时(鼠标点击瞬间元素的样式) | :active |
2.4伪元素选择器
为一个元素的指定部分设置样式。主要用来设置元素内文本的首字母,首行的样式,或是在元素内容之前或之后插入内容
作用 | 注意 | |
::first-letter | 文本首个字符添加特殊样式 | before和after必须content配合使用 |
::first-line | 文本首行添加特殊样式 | |
::before | 元素之前插入内容 | |
::after | 元素之后插入内容 | |
::selection | 更改选中文本的样式 |
2.5css属性选择器
根据一个属性或者属性值来选择元素
3.css文本
3.1大小写转换
3.2文本对齐方式和文本间距
文本对齐 | 方式 | 语法 |
水平对齐 | 水平居左 | text-align:left; |
水平居右 | text-align:right; | |
水平居中 | text-align:center; | |
文本左右边界一致,每行文本均对齐 | text-align:justify | |
垂直对齐 | 基线对齐 | vertical-align:baseline |
文本顶部对齐 | vertical-align:text-top | |
文本底部对齐 | vertical-align:text-bottom | |
下角标对齐 | vertical-align:sub | |
上角标对齐 | vertical-align:super |
文本间距 | 方式 | 语法 |
指定文本第一行缩进 | text-indent:
| |
行与行之间的高度 | 推荐使用第二种 | |
文本中单词的间距 | word-spacing: | |
元素内部的空白处理 | white-space: 常用的值:nowrap:不管包含文本的元素宽度是多少,文本都不会换行,直到遇到<br>标签 |
3.3css文本装饰
以下介绍的语法可以用:text-decoration:种类,颜色,样式,厚度代替(注意:文本线条装饰值是必须设置的,其他三个可根据需要设定,四个属性顺序可任意)。
去除链接下划线语法:text-decoration:none;
- 给文本添加线条装饰,可以给文本添加多个线条修饰,语法为:text-decoration-line:种类1 种类2 ...(注意:每个值之间用空格隔开),线条种类如下图:
- 为装饰线指定颜色,语法为:text-decoration-color:颜色值
- 为装饰线指定样式,语法为:text-decoration-style:样式;风格值如下图
- 为装饰线设定线条厚度,语法为:text-decoration-thickness:厚度;厚度属性值如下图:
3.4 css字体
下列所述可直接用上图的语法代替,font-size,font-family必须设置
1.css字体和字号
- 字体设置,语法为:font-family:字体名称(注意:若定义的字体在电脑中不存在,浏览器会使用默认字体)默认字体亦可以自己定义,语法为:font-family:"字体名称1","字体名称2",...,字体名称n
- 字号设置,语法为:font-size:值(值可以设置绝对大小(单位为px),相对大小(单位为em,%,rem))。em,%根据父元素计算大小,rem根据根元素计算大小(html文档中html元素是根元素)
字体 | 字体名称 | 字体图 |
英文字体 | Serif(有衬线字体) | |
Sans-serif(无衬线字体) | ||
Monospace(单空格字体或等宽字体) | ||
Cursive(草书字体) | ||
Fantasy(幻想字体) | ||
常用的中文字体 | Microsoft Yahei(微软雅黑 应用于win系统) | |
PingFang SC(苹方简 应用于Mac系统) |
2.css字体风格和样式简写
字体风格 | 语法 | 属性 |
---|---|---|
斜体 | font-style: |
|
字体粗细 | font-weight |
|
小型大写字母(小一号的大写字母,属性只对英文生效) | font-variant |
|
3.css谷歌字体和Icon图
谷歌字体引入方式如下图:
Icon引入方式及使用如下图
3.5css选择器的权重
css选择器优先级:行内样式>ID选择器>类选择器>元素选择器>通用选择器
选择器选择的范围越小,越精确,优先级就越高。
3.6css设置边框
1.边框样式
指定显示什么边框,如下图
当表格单元格相邻边框产生冲突时,优先级:border-style:hidden>border-style:solid>border-style:none
设置元素的上、下、左、右边框样式:border-top-style,border-bottom-style,border-left-style,border-right-style
可以混合简写设置元素的边框样式,如下四种方法(设置的顺序是固定的):
- border-style:dotted solid double,dashed;(顺序依次是:上边,右边,下边,左边,)
- border-style:dotted solid double;(顺序依次是:上边,左右边,下边)
- border-style:dotted solid;(顺序依次是:上下边,左右边)
- border-style:dotted;(顺序依次是:上下左右边)
2.边框宽度
语法:border-width:(可设置单位【px、em】或者使用三个预定义的值:【thin(薄)、medium(中)、thick(厚)】)
宽度也可混合简写设置,用法同边框样式
3.边框颜色
语法:border-color:颜色值或者使用transparent设置透明度
颜色也可混合简写设置,用法同边框样式
可以在border属性中指定border-width,border-style,border-color。语法为:border:5px solid red;
border-style必须设置,其两个可省略;省略后采用1像素、黑色线这两个默认值
4.css列表
在 HTML 中,列表主要有两种类型:
- 无序列表(<ul>)- 列表项用的是项目符号标记
- 有序列表(<ol>)- 列表项用的是数字或字母标记
CSS 列表属性使您可以:
- 为有序列表设置不同的列表项标记
- 为无序列表设置不同的列表项标记
- 将图像设置为列表项标记
- 为列表和列表项添加背景色
list-style-type
属性指定列表项标记的类型,可用的列表标记如下图:list-style-image
属性将图像指定为列表项标记,语法为: list-style-image: url(图片路径);-
list-style-position
属性指定列表项标记(项目符号)的位置,如下: - "list-style-position: outside;" 表示项目符号点将在列表项之外。列表项每行的开头将垂直对齐。
"list-style-position: inside;"
表示项目符号将在列表项内。由于它是列表项的一部分,因此它将成为文本的一部分,并在开头推开文本。list-style-type:none
属性也可以用于删除标记/项目符号。注意,列表还拥有默认的外边距和内边距。要删除此内容,请在 <ul> 或 <ol> 中添加margin:0
和padding:0。
list-style
属性是一种简写属性。它用于在一条声明中设置所有列表属性。-
设置列表的颜色样式。添加到 <ol> 或 <ul> 标记的任何样式都会影响整个列表,而添加到 <li> 标记的属性将影响各个列表项:
在使用简写属性时,属性值的顺序为:
list-style-type
(如果指定了 list-style-image,那么在由于某种原因而无法显示图像时,会显示这个属性的值)list-style-position
(指定列表项标记应显示在内容流的内部还是外部)list-style-image
(将图像指定为列表项标记)如果缺少上述属性值之一,则将插入缺失属性的默认值。
5.css背景
属性 | 描述 |
---|---|
background | 在一条声明中设置所有背景属性的简写属性。 |
值1:fixed(图片固定) 值2:scroll(同时滚动) | 设置背景图像是固定的还是与页面的其余部分一起滚动(用来声明容器里的背景图片与内容的依附方式)。 |
background-clip | 规定背景的绘制区域。 |
background-color | 设置元素的背景色。 |
background-image | 设置元素的背景图像。 |
background-origin | 规定在何处放置背景图像。 |
background-position:水平上的对齐方式(left center right) 垂直上的对齐方式(top center bottom) | 设置背景图像的开始位置。 |
background-repeat: | 设置背景图像是否及如何重复。 |
注意:如果此属性应用到简写的background属性里面,需要添加背景图片的位置,即使位置不调整,也要添加 0px 0px这一对值。比如:0px 0px/cover | 规定背景图像的尺寸。 |
6.css轮廓
轮廓 | 设定的值 |
outline-style 属性指定轮廓的样式 |
|
outline-width 属性指定轮廓的宽度 |
|
outline-color 属性用于设置轮廓的颜色 |
|
outline 属性是用于设置以下各个轮廓属性的简写属性:(outline 属性可指定一个、两个或三个值。值的顺序无关紧要。) |
|
outline-offset 属性在元素的轮廓与边框之间添加空间。元素及其轮廓之间的空间是透明的。 |
7.css边距和宽高
7.1.外边距
margin
属性是以下各外边距属性的简写属性:
margin-top
margin-right
margin-bottom
margin-left
有以下几个值:
7.2内边距
padding
属性是以下各内边距属性的简写属性:
padding-top
padding-right
padding-bottom
padding-left
7.3css宽高
height
和 width
属性用于设置元素的高度和宽度。height 和 width 属性不包括内边距、边框或外边距。它设置的是元素内边距、边框以及外边距内的区域的高度或宽度。
height
和 width
属性可设置如下值:
auto
- 默认。浏览器计算高度和宽度。length
- 以 px、cm 等定义高度/宽度。%
- 以包含块的百分比定义高度/宽度。initial
- 将高度/宽度设置为默认值。inherit
- 从其父值继承高度/宽度。
8.css盒模型
8.1.元素的宽度和高度的计算:
元素的总宽度应该这样计算:
元素总宽度 = css设置的宽度 + 左内边距 + 右内边距 + 左边框 + 右边框 + 左外边距 + 右外边距
元素的总高度应该这样计算:
元素总高度 = css设置的高度高度 + 上内边距 + 下内边距 + 上边框 + 下边框 + 上外边距 + 下外边距
8.2怪异盒模型
设置方法:box-sizing:border-box;(若此属性的值为content-box即为标准盒模型)
元素的总宽度应该这样计算:
盒子的宽度=css样式设置的宽度值+左边距+右边距
元素的总高度应该这样计算:
盒子的高度=css样式设置的高度值+上边距+下边距
9.css布局
9.1.css布局显示属性
- display指定一个元素如何显示以及是否显示。
还可以设置display:none;来隐藏元素,隐藏的元素占用的空间会消失。
visibility:hidden也可以用来隐藏元素,隐藏的元素占用的空间不会消失。
亦可以通过visibility:visible重新显示元素。
块级元素重一个新行开始并占据可用的全部宽度,display的默认值为block。注意:
内联元素(行内元素)不重新的一行开始,只占用必要的宽度,display的默认值为inline。注意:
通过样式可以改变元素的默认显示类型,通过【display:值】设定。
设置一个元素的display属性只能改变该元素的显示方式,而不能真正的改变html元素的类型。比如:一个具有display:inline;的块元素还是不允许在它的内部有其他块元素。
使用display:inline-block;能够实现块元素在一行上显示排列。
- css嵌套规则:
参考文章:HTML中标签的嵌套原则_我不是安徒生的博客-CSDN博客_标签嵌套
9.2css溢出
overflow
属性指定在元素的内容太大而无法放入指定区域时是剪裁内容还是添加滚动条。
overflow
属性可设置以下值:
visible
- 默认。溢出没有被剪裁。内容在元素框外渲染hidden
- 溢出被剪裁,其余内容将不可见scroll
- 溢出被剪裁,同时添加滚动条以查看其余内容auto
- 与scroll
类似,但仅在必要时添加滚动条
overflow-x
和 overflow-y
属性规定是仅水平还是垂直地(或同时)更改内容的溢出:
overflow-x
指定如何处理内容的左/右边缘。overflow-y
指定如何处理内容的上/下边缘。
text-overflow语法:text-overflow : clip | ellipsis
- clip :不显示省略标记(.….),而是简单的裁切
- ellipsis :当对象内文本溢出时显示省略标记(.….)
- 要想实现显示不完内容将显示省略号代替,还需要html nobr标签完成( nobr禁止换行标签)
9.3浮动
float 属性
float
属性用于定位和格式化内容,例如让图像向左浮动到容器中的文本那里。float
属性可以设置以下值之一:
- left - 元素浮动到其容器的左侧
- right - 元素浮动在其容器的右侧
- none - 元素不会浮动(将显示在文本中刚出现的位置)。默认值。
- inherit - 元素继承其父级的 float 值
9.4清除浮动
clear
属性指定哪些元素可以浮动于被清除元素的旁边以及哪一侧。
clear
属性可设置以下值之一:
- none - 允许两侧都有浮动元素。默认值
- left - 左侧不允许浮动元素
- right- 右侧不允许浮动元素
- both - 左侧或右侧均不允许浮动元素
- inherit - 元素继承其父级的 clear 值
如果一个元素比包含它的元素高,并且它是浮动的,它将“溢出”到其容器之外:
然后我们可以向包含元素添加 overflow: auto;,来解决此问题;或者使用clear属性。
10.css定位
10.1.css布局定位
position 属性
position
属性规定应用于元素的定位方法的类型。有五个不同的位置值:
- static()
- relative(相对定位)
- fixed(固定定位)
- absolute(绝对定位)
- sticky(粘性定位)
对应的定位方式有以下特点,如下图:
粘性定位不起作用的原因有以下几点:
10.2.css定位的堆叠顺序
重叠元素
在对元素进行定位时,它们可以与其他元素重叠。z-index
属性指定元素的堆栈顺序(哪个元素应放置在其他元素的前面或后面);元素可以设置正或负的堆叠顺序。