目录
- 一、CSS介绍
- 二、CSS语法
- 三、CSS 的引入方式
- 3.1 行内引入样式
- 3.2 内部引入样式
- 3.3 外部引入样式
- 四、CSS选择器
- 1、基本选择器
- 4.1 标签元素选择器
- 4.2 ID选择器
- 4.3 类选择器
- 4.4 通用选择器
- 2. 组合选择器
- 2.1 儿子选择器
- 2.2 后代选择器
- 2.3 毗邻选择器
- 2.4 兄弟选择器
- 3.属性选择器
- 4.分组选择器
- 5.伪类选择器
- 6.伪元素选择器
- 7.选择器的优先级
- 1、基本选择器
- 五、CSS相关属性
- 5.1 宽和高
- 5.2 字体相关属性
- 1.文字字体
- 2.字体大小
- 3.字体粗细
- 4.文本颜色
- 5.3 文字属性
- 1.文字对齐
- 2. 文字装饰
- 3.首行缩进
- 4.文字间距
- 5.4 背景属性
- 1.背景颜色
- 2.背景图片
- 5.5 边框
- 5.6 边框的圆角
- 5.7 display属性
- 5.8 盒子模型
- 1 margin 外边距
- 2. padding内填充
- 5.9 float 浮动
- 5.10 clear 清除浮动
- 5.12 overflow溢出属性
- 5.13 定位(position)
- 1. relative(相对定位)
- 2. absolute(绝对定位)
- 3.fixed(固定定位)
- 5.14 Z-index(模态框,层叠)
- 5.15 opacity(透明度)
一、CSS介绍
CSS(Cascading Style Sheet ,层叠样式表):定义如何显示HTML元素,也就是HTML的样式表
当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)
二、CSS语法
每一个CSS样式由两个部分组成:选择器和声明。
声明又包括属性和属性值,每个声明又包括属性和属性值。每个声明之后用分号结束。
CSS的注释是/*这里是注释*/
:再次提醒注释是代码之母
三、CSS 的引入方式
3.1 行内引入样式
行内式是在标签内标记的style属性中设定CSS样式。不推荐大规模使用。
我是行内映入的样式,颜色是,字号22pxcolor
3.2 内部引入样式
内部样式是将CSS样式集中写在网页的
标签对的标签对中。格式如下:
title
3.3 外部引入样式
外部样式就是将css写在一个单独的文件中,然后在页面用link标签进行引入即可。推荐使用此方式。
四、CSS选择器
1、基本选择器
4.1 标签元素选择器
4.2 ID选择器
我是ID属性为p1
4.3 类选择器
注意1:样式类名不要以数字开头(有的浏览器不认识)
注意2:标签中的class属性如果有多个,要用空格分隔。
我是类属性为c1
4.4 通用选择器
我是*
我是*
2. 组合选择器
2.1 儿子选择器
我的父级是div元素
我的父级是a标签
2.2 后代选择器
Title
我的父级是div元素
我的父级是a标签
我是a标签的后代标签
2.3 毗邻选择器
2.4 兄弟选择器
我是儿子标签
我是儿子p标签
我是兄弟p标签
我是a的儿子p标签
3.属性选择器
# 不常用的属性选择器
4.分组选择器
当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。
我是红色
我是红色
我是红色
我不是红色
我是红色
5.伪类选择器
我是class="il"内部的p标签
我是class="il"内部的p标签
我是class="il"内部的p标签
6.伪元素选择器
first-letter
常用的给首字母设置特殊样式:
before
after
7.选择器的优先级
继承:继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。
此时页面上所有标签都会继承body的字体颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0。
当然:继承是CSS重要的一部分,我们甚至不用去考虑它为什么能够这样,但CSS继承也是有限制的。有一些属性不能被继承,如:border, margin, padding, background等。
选择器的优先级
内联样式 |
---|
id选择器 |
类选择器 |
元素选择器 |
我们可以通过:!important 方式来强制让样式生效,但并不推荐使用。因为如果过多的使用!important会使样式文件混乱不易维护。
五、CSS相关属性
5.1 宽和高
width属性可以为元素设置宽度
height属性可以为元素设置高度
块级标签才能设置宽度,内联标签的宽度由内容来决定
5.2 字体相关属性
1.文字字体
font-family可以把多个字体名称作为一个“回退”系统来保存,如果浏览器不支持第一个字体,则会尝试下一个字体,浏览器会使用它可识别的第一个值
2.字体大小
3.字体粗细
值 | 描述 |
---|---|
normal | 标准粗细 |
bold | 粗体 |
bolder | 更粗 |
lighter | 更细 |
100~900 | 设置具体粗细,400等同于normal,而700等同于bold |
inherit | 继承父元素字体的粗细值,默认值, |
4.文本颜色
颜色是通过CSS最经常的指定:
- 十六进制值 - 如: #FF0000
- 一个RGB值 - 如: RGB(255,0,0)
- 颜色的名称 - 如: red/blue/green
还有rgba(255,0,0,0.3),第四个值为alpha, 指定了色彩的透明度/不透明度,它的范围为0.0到1.0之间。
5.3 文字属性
1.文字对齐
text-align 属性规定元素中的文本的水平对齐方式。
值 | 描述 |
---|---|
left | 左边对齐 默认值 |
right | 右对齐 |
center | 居中对齐 |
justify | 两端对齐 |
我的左对齐
我是右对齐
我是居中对齐
我是两端对齐
2. 文字装饰
text-decoration 属性用来给文字添加特殊效果。
值 | 描述 |
---|---|
none | 默认。定义标准的文本。 |
underline | 定义文本下的一条线。 |
overline | 定义文本上的一条线。 |
line-through | 定义穿过文本下的一条线。 |
inherit | 继承父元素的text-decoration属性的值。 |
我文字的下方设置了一条横线
我文字上方设置了一条横线
我文字中间穿过了一条横线
我的文本默认是在下方有一条横线的,现在通过文字装饰去掉了
- 标题1
- 标题2
- 标题3
3.首行缩进
将段落的第一行缩进 32像素:text-indent属性
我是首行缩进了32个像素
4.文字间距
letter-spacing属性
我的每个字间距为10个像素
5.4 背景属性
1.背景颜色
backgrout-color
我是有背景颜色的
2.背景图片
普通的背景图片,当图片没有页面那么大的时候,会默认平铺真个网页
background-image: url('1.jpg')
设置平铺的背景图片
backgrount-repeat:属性
repeat(默认):背景图片平铺排满整个网页
repeat-x:背景图片只在水平方向上平铺
repeat-y:背景图片只在垂直方向上平铺
no-repeat:背景图片不平铺
backgrount:##336699 url('1.png') no-repeat left top;
5.5 边框
属性
- border-width:边框的粗细
- border-style:边框是实线还是虚线
- border-color:边框的颜色
我加了边框
.claer:after{content: ""; display: block; clear: both;}
5.12 overflow溢出属性
值 | 描述 |
---|---|
visible | 默认值。内容不会被修剪,会呈现在元素框之外。 |
hidden | 内容会被修剪,并且其余内容是不可见的。 |
scroll | 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 |
auto | 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。 |
inherit | 规定应该从父元素继承 overflow 属性的值。 |
- overflow(水平和垂直均设置)
- overflow-x(设置水平方向)
- overflow-y(设置垂直方向)
5.13 定位(position)
1. relative(相对定位)
相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。
注意:position:relative的一个主要用法:方便绝对定位元素找到参照物。
2. absolute(绝对定位)
定义:设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
重点:如果父级设置了position属性,例如position:relative;,那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题,即父级为自适应的,那我子元素就设置position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left用百分比宽度表示。
另外,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。
3.fixed(固定定位)
fixed:对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。而其层叠通过z-index属性 定义。 注意点: 一个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这 是一个常识性的知识点,因为这是两个不同的流,一个是浮动流,另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。
在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。
我在这里
5.14 Z-index(模态框,层叠)
设置对象的层叠顺序。
- z-index 值表示谁压着谁,数值大的压盖住数值小的,
- 只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
- z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
- 从父现象:父亲怂了,儿子再牛逼也没用
我我我
5.15 opacity(透明度)
用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。