css Cascading Style Sheet 层叠样式表
作用 :实现网页布局,美化页面元素
CSS 在文档中的三种方式
1 行内样式/内联样式
特点:在具体的html标签中引入css 代码
语法:
所有的html标签都具有一个style属性,属性值就可以使用css样式规则
<标签 style="CSS样式规则"><标签>
css样式规则:
由css属性与值组成 ,属性名与值之间使用:隔开,每一条CSS语句以分号结束
color:red;
常见的CSS属性
1.font-size :设置字体大小,取值为像素值
2 color:设置文本颜色,取值颜色的英文单词
3 background-color 设置背景颜色
2 文档内嵌
1 将css代码从标签中抽离出来,单独写在一起,在html文档中使用<style></style>引入样式表
<style>标签可以在文档的任意地方使用
2 样式表语法:
css选择器
标签选择器:根据给定的标签名,匹配文档中所有的该 元素,并应用样式
3 外部样式表/ 外链方式
优点:
1 真正实现样式与结构的分离,便于维护
2 可以实现样式的复用
使用:1 ,创建外部的css文件
2 在html文档中使用
<link rel="stylesheet">引入样式表文件
3 在样式表中添加样式,通过选择器书写样式
2 样式表特点
1 层叠性
多个css样式共同作用于元素
2 继承性
父元素中设置的样式,子元素可以继承下来
大部分文本相关的属性,都可以被继承,块级元素的宽度与父元素保持一致;
3 样式表的优先级
只有发生样式冲突时,才考虑优先级
优先级从低到高:
1 继承样式
2 浏览器的缺省设置(默认样式)
3 文档内嵌方式 / 外链方式 设置的样式
相同的优先级,发生 样式俚, 由代码的书写顺序决定最终样式,后来者居上
4 行内样式优先级最高
3 选择器介绍:
作用:根据指定的选择模式匹配文档中的元素,并为其设置样式
2 分类 :标签选择器 / 元素选择器
语法:标签名{属性:值;}
使用:
常用于清除页面默认样式,以及设置基础样式
2 根据元素的class属性值进行匹配:
语法:以英文,开关,后面跟上class属性值
注意:
1 写选择器时,不要随便出现任何符号
2 类名自定义,禁止以数字开头,可以出现 数字 字母 尽量 见名知意
3 每个元素都具备class属性,也可以使用多个类名,多个类名之间使用空格隔开
3 根据元素的id属性值匹配元素
每个元素都具备id属性,并且id属性具有唯一性
语法:
以#开头,跟 上id 属性值
#id属性值{}
使用:通常页面中具有唯一性的元素,都可以使用id 进行标识,并使用id 选择器添加样式
页面中具有唯一性的元素:外围结构标签
注意:
1 。id 属性具有唯一性,不能重复使用相同的id值。在使用js获取页面元素时,ID是元素唯一的标识,如果出现重复,后面的元素都获取不到
2 。id 选择器与class选择器的区别:
id 具有唯一性,id 选择器定义的样式不能被复用class可以重复使用,类选择器定义的样式可以复用
3 。 具有唯一性的元素都可以使用ID选择器设置样式,外部的结构标签使用id 标识,内部的标签使用 class标识
4 群组选择器
为一组元素统一设置样式
5 后代选择器
依托元素的层级关系匹配后代元素。后代元素包含直接子元素和间接子元素
语法:
选择器1 选择器2{样式规则}
6 子代选择器
依托元素的层级关系,匹配直接子元素
语法:
选择器1 > 选择器2{}
表示在选择器1对应的元素中,匹配满足选择器2的直接子元素
7 伪类选择器
1 作用:针对元素的不同状态设置样式
2 分类:
1 超链接伪类选择器
主要针对超链接的不同状态设置样式
:link 超链接访问前的状态
: visited 超链接访问后的状态
2 动态伪类选择器
1 。 :hover 表示鼠标悬停时的状态
下拉菜单的制作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> ul{ display: none; } .list_:hover ul{ color: red; display: block; } </style> <body> <div class="list_">下拉菜单 <ul style="list-style: none;padding-left: 0;"> <li>下拉菜单1</li> <li>下拉菜单2</li> <li>下拉菜单3</li> <li>下拉菜单4</li> </ul> </div> </body> </html>
2 。:active表示鼠标点按时的状态
3 。 :focus表示获取焦点时的状态,常见于输入框接收用户输入时,就表示获取到焦点
3 使用:
1 伪类选择器必须与其他选择器结合使用,伪类选择器是给元素不同的状态设置样式
2 设置超链接四种状态下的样式
a:link{} 访问前状态
a:visited{} 访问后状态
a:hover{} 悬停状态
a:active{} 活动状态
书写顺序:LoVe/HAte 爱恨原则
3 表单元素获取焦点(针对输入框)
input: focus{
}
1 外边距
1 外边距
2 垂直方向上的外边距,会发生合并取较大的值
水平方向上的外边距,会发生叠加,元素之间的距离较大
3 为子元素添加距上的外边距,作用于父元素上:
解决:
1 为父元素设置上边框(可以使用透明色)
2 为父元素添加顶部的内边距padding-top:0.1px;
2 内边距
1 元素内容与元素边框之间的距离,称为内边距
2 属性:padding
取值:像素值或百分比
1 padding:10px;设置上右下左四个方向的内边距
2 padding:10px ,20px
设置上下内边距为10,左右内边距为20
3 padding:10px,20px,30px;
设置上下内边距分别为10 30 ,左右内边距为20
4 padding:10px 20px 30px 40px
设置上右下左四个方向的内边距
3 单方向内边距的设置
1 属性:
padding-top:内容与元素顶部边框之间的距离
padding-right: 内容与元素右边边框之间的距离
padding-bottom 内容与元素右边框之间的距离
padding-left 内容与元素左边框之间的距离
2 取值为像素值
4 默认带有内边距的元素
ol ul input td ..
5 清除浏览器默认内外边距
body,h1,h2,h3,h4,h5,h6,p,ul,ol,input{margin:0;padding:0}
6 设置盒模型的计算方式
1 属性:box-sizing
作用:指定盒模型的计算方式
取值:
1.content-box:默认值
元素的width height属性只用来规定内容的尺寸,如果元素设置内外边框和边框,最终在文档中占据的尺寸由各种值相加得到
在父元素中设置字体大小为0,解决子元素水平方向上的间隙问题,需要在子元素中重新设置字体大小、
设置box-sizing为border-box时,需要单独考虑外边距
2 border-box:
元素的width height属性,规定的是包含边框,内边距和内容在内的尺寸
4 元素的显示设置
1 设置元素的可见性
属性 visibility
取值:
1 visible 默认值,元素可见
2 hidden 设置元素隐藏 ,元素在文档中仍然占位
2 转换元素类型
属性:display
取值:
1 block :转换为块元素
2 inline:转换为行内元素
3 inline-block:转换行内块元素
特殊取值:
4 none : 实现元素隐藏,元素在文档中不占位,其他元素会相应的移动
实现元素隐藏与显示:
display:none:隐藏
display:block:显示
5 背景相关的属性
1 background-color
设置背景颜色,取颜色值
注意:
1 所有元素默认的背景颜色都是透明色,新建窗口的白色不是body的背景色,是浏览器渲染的结果
2 背景颜色是从元素的边框位置开始绘制的,如果元素添加内边距,都会被渲染成相应的背景颜色
2 背景图片
1 设置背景图片
属性:background-image
取值:url()
注意:1 背景图片的尺寸如果大于元素尺寸,图片仍然按照原始尺寸显示,超出元素的部分不可见
2 背景图片的尺寸小于元素尺寸,浏览器会自动对背景图片重复平铺,直到铺满元素
3 背景图片与背景颜色一样,不影响元素正常内容的显示
图片尺寸不够时,浏览器会自动沿水平和垂直两个方向对图片进行重复平铺,直到铺满元素
属性:backgroun-repeat
取值:
1 repeat:默认值,沿水平和垂直方向平铺
2 repeat-x 沿水平方向平铺
3 repeat-y 沿垂直方向平铺
4 no-repeat :设置背景图片不重复平铺
3 设置背景图片的位置
1 属性:background-position 结合精灵图实现元素背景图片调整,这种技术叫【精灵技术】
2 取值:x y
1 取像素值:
x:表示背景图片水平方向的偏移距离
正值表示图片向右偏移
负值表示图片向左偏移
y:背景图片垂直方向的偏移距离
正值表示向下偏移
负值表示图片向上偏移
2 取百分比
参照元素尺寸计算水平和垂直偏移距离
1 0% 0% 背景图片显示在元素左上角
2 50% 50% 背景图片显示在元素中间
3 100% 100% 背景图片显示在右下角
3 方位值确定背景图片的位置
x:left / center / right
y: top / center / bottom
如果某一个方向缺失,默认为center
4 设置背景图片的大小
1 属性: background-size
2 取值:x y
x y 分别表示背景图片的宽和高
1 像素值
2 百分比:参照元素宽高尺寸计算背景图片的大小
3 cover :表示将图片等比放大至完全覆盖元素
超出部分不可见
4 contain : 表示将图片等比拉伸至刚好被元素容纳
不能走出元素尺寸,可能会造成背景图片无法完全覆盖元素的效果
5 背景属性简写
1 属性:background
2 取值:color url() repeat position
注意:
1 背景属性按照一定顺序设置
2 background-size 单独设置
3 可以省略属性值,单独设置颜色,或者背景图片
6 文本相关的属性
1 字体相关的属性
属性:font-size
取值:像素值或em 1em=16px
2 字体的精细程度
属性:font-weight
取值:
1 关键字 light / normal(正常) / bold(加粗)
2 整百数值 100-900
100(lighter) ~ 400 (normal) ~ 900(bolder)
3 字体名称
1 属性:font-family
2 取值:字体名称
注意:
1 如果字体名称是中文或者由多个英文单词组成, 需要使用引号引起来
font-family:"微软雅黑";
font-family:“Microsoft YaHei”
font-family:serif;
2 同时指定多个字体名称,之间使用英文逗号间隔,当浏览器不支持第一种字体时,会按照顺序依次以后面指定字体名称显示
et:
font-family:"黑体","微软雅黑","宋体"
4 字体样式(是否采用斜体)
1 属性:font-syle
2 取值:
1 normal 正常显示
2 italic 斜体显示
3 oblique 倾斜显示
注意:oblique可以将字体倾斜一定角度,默认倾斜效果与italic斜体没有差别
5 字体属性简写
1 属性:font
2 取值:style weight size family;
注意 :
1 同时设置四个属性值时,参照给定顺序书写
2 font-family font-size 是必填项,不能省略
2 文本相关的属性
1 文本颜色
1 属性:color
2 取值:颜色值
2 文本装饰线
1 属性:text-decoration
2 取值:
1 underline:下划线
2 overline :上划线
3 line-through:删除线
4 none:取消装饰线
3 文本水平对齐方式
1 属性:text-align
2 取值:
1 left / center / right
2 justify 两端对齐
4 设置行高
行高指的是一行文本所占的高度
1 属性:line-height
2 取值:像素值 或em
用法:
1 设置行高与元素高度相同,实现一行文本的垂直居中
2 line -height > height ,文本会下移
3 line-height < height, 文本会上移
注意: 文本内容在当前行中始终是垂直居中的,
特殊取值:
取无单位的数值,表示当前字体大小的倍数,由此计算行高
p{font-size:20px;line-height:2;} (当前行高为字体大小的2倍,40px)
7 表格相关的属性
1 基础样式是通用的
2 独有的css属性:
1 边框合并
属性:border-collapse
取值:
1 seperate :默认值,单元格边框与表格边框相分离
2 collapse:设置表格边框与单元格边框合并
注意:
1 .td 不支持margin
2 .border-collapse 只能在table中使用,独有属性,其它元素不能使用它
2 设置边框边距
属性:border-spacing
取值: h-value v-value
1 h-value:水平方向边框之间的距离
2 v-value :垂直方向边距之间的距离
两个值之间使用空格隔开
注意:
边框边距只能在边框分离状态下设置,合并时无法使用