一、初识CSS
学习目标
-
能够说出什么是CSS
-
熟悉CSS的语法规范
-
掌握CSS的三种引入方式,能够使用3种引入方式写一个红色的小方块
1、什么是CSS?
全称
Cascading Style Sheets 通常称为CSS样式表或层叠样式表(级联样式表)
作用
-
为HTML标记语言提供了一种样式描述
-
即【设置HTML页面中的元素的位置、排版、样式外观等】 如文本内容(字体、大小、对齐方式等)、图片的外形(宽、高、边框等)
CSS语法规范
CSS 规则由两个主要的部分构成:选择器、一条或多条声明。
选择器:通常是需要改变样式的 HTML 标签。
声明组:以大括号{}括起来。
每条声明由一个属性和一个值组成,属性与属性值之间以【冒号】分隔,用【分号】将每个声明分开。
3、CSS引入方法
当读到一个样式表时,浏览器会根据它来格式化 HTML 文档,插入样式表的方法有三种:行间样式表,内部样式表,外部样式
1、行间样式
概述:
-
通过HTML元素的style属性设置样式称为行间样式
-
放在开始标签的内部
-
代码示例
<div style="width:100px;height:100px;background-color:red;">div</div>
-
适用场景:
单个html标签需要设置样式
优缺点:比较直观;相同样式需要重复定义,造成代码冗余;作用范围小,不利于后期代码维护;代码不能复用,结构与样式变现不分离
-
注:任何HTML元素都可以设置行间样式
2、内部样式
-
概述:
在head标签的内部,由style标签包含的样式称为内部样式
-
语法:用style标签对包住样式
-
适用场景:
1.单个HTML文档需要设置样式
优缺点:
相对于行间样式,代码能够复用,作用范围大于行间样式的范围;
结构与表现半分离
-
代码示例
<head> <style> </style> </head>
3、外部样式
-
概述
-
外部样式表是指将CSS编写在扩展名为.css 的单独文件中,使用link标签引用
-
位置:在外部新建的css文件中书写样式(后缀名为.css的文件);
在head标签的内部使用link标签引入在外部新建的css文件
-
头部标签内部使用link标签引用
<head> <link rel="stylesheet" href="./style.css"> </head>
-
说明
-
href="" 资源链接的地址
-
rel表示引入文 件与当前文 档的关系
-
stylesheet为样式表
-
rel="stylesheet"是将本HTML页面和css文件关联起来
-
-
-
-
适用场景:
多个HTML文档具有相同样式时
优缺点
1.适用范围广,可以使用代码的复用;
2.便于修改和维护代码;
3.结构与表现彻底分离
总结:
-
行间样式适用于某个元素拥有特殊样式时使用,结构 表现【不分离】
-
内部样式适用于单个页面拥有特殊样式时使用,结构表现【半分离】
-
外部样式适用于多个页面拥有相同样式时使用,结构表现【相分离】
4、css注释
什么是注释 :
注释即对代码的解释和说明,不会被浏览器解析执行
注释的语法:
CSS中的注释以"注释以/*开头,以*/结尾,开始和结束中间为注释内容 /* css 注释 */
生成快捷方式:
ctrl + /
二、CSS选择器
1、什么是选择器
-
CSS选择器是CSS规则的第一部分,每个CSS规则都以一个选择器或一组选择器为开始
-
CSS 选择器即用于“查找”(或选取)要设置样式的 HTML 元素的模式
-
选择器可以分为基础选择器、复合选择器
2、基本选择器
1、通配(通用)选择器
-
语法 *{ 样式声明 }
-
作用:匹配任意类型的HTML元素
<style> /* 页面上所有元素都被选择 */ *{ background-color:green; } </style> <body> <p>p</p> <div>div1</div> <div>div2 <div>div3</div> </div> </body> /* 一般用于清除浏览器的默认样式 */ margin: 0; padding: 0; 权重是0
2、元素名称(标签)选择器
-
语法: 元素名称{ 样式声明 }
-
作用:选择所有同一元素名称的所有元素
/* 选择body */ body{ background-color:green; } /* 选择页面上所有的div */ div{ width:100px; height:100px; background-color:red; } /* 选择页面上所有的p */ p{ background-color: pink; }
3、类选择器
-
语法
-
HTML中通过class属性定义
<div class="box"></div>
-
css中以点进行标识:.
.类名 { 样式声明; } .box{ background-color:red; }
-
-
作用:选择所有带有指定类名的元素
-
多类名的使用(词列表)
-
语法:空格隔开
-
<p class="box box1 box2">p</p>
-
4、id选择器
-
语法
-
HTML中通过id属性定义
如:
<div class="box"></div>
-
css中以点进行标识:#
#id名称 { 样式声明; } #box{ background-color:red; }
-
-
作用:选择所有带有指定id名的元素
注意:具有唯一性,一般用于页面唯一性的元素如头部、底部等,经常和 JavaScript 搭配使用。
类与id的命名规则
-
见词知义,尽量用英文;
-
始终建议以字母开头,可以包含数字、字母、下划线等
-
不要以数字开头
-
多个单词可以以驼峰式(newsCont)、中划线连接(news-cont)、下划线连接(news_cont)等
总结
-
总结使用频率
-
基础选择器中最常用是类选择器
-
id用于页面中唯一模块
-
标签选择器定义的全局样式,单独使用要慎重
-
*号通常用于重置样式【最不常用】
-
四、CSS字体 ,文本属性
1、font-family:
-
作用:设置文本的字体系列
-
语法:font-family:字体名称
-
常用值:
-
一个字体名称或系列名称(介绍常用字体名称、字体系列)
-
微软雅黑 Microsoft YaHei
-
宋体 simsun
-
黑体 HeiTi
-
楷体 KaiTi
-
-
多个字体名称
-
逗号分开 如果浏览器不支持第一个字体,则会尝试下一个(回退机制)
1.使用多个字体名称形成一个回退系统(也就是备用字体),当浏览器不支持第一个字体的时候则会尝试下一个字体,多个字体之间用逗号隔开 font-family: 'Times New Roman', '楷体', '宋体' .box{ /*font-family:"微软雅黑","宋体";*/ /*font-family:"宋体","微软雅黑"; *//*与上一个相比产生的效果不同,谁在前使用哪一个*/ font-family:"微软雅黑abc","宋体"; /*第一个任意改写一个系统不存在的字体,会按照第二个字体显示*/ }
-
-
2、font-size
-
作用:设置字体的大小
-
语法:font-size:值
-
常用值:
-
长度值(通常是像素px)
-
百分比(相对于父元素字号计算)
-
-
em
-
相对单位
-
如果用于字号,相当于父元素字号计算
-
-
一般浏览器默认的大小为16px,支持最小的字体为12px。
3、font-style
-
作用:设置字体的样式
-
语法:font-style:值
-
常用值:
-
normal默认值
-
italic斜体显示
-
4、font-weight
-
作用:设置字体粗细
-
语法:font-weight:值
-
常用值:
-
normal默认值
-
bold加粗
-
100-900九级字重, 400相当于normal,700相当于bold
-
注:不是所有字体都内置了九级字重
-
5、line-height
-
作用:设置行高(效果是产生文本行间距)
-
语法:line-height:值
-
特性:实现单行文本的垂直居中
-
测量:文字高+行间距
-
打开px软件--在视图菜单---标尺(Ctrl+r)
参考线:在标尺上按住鼠标左键不松手,拖拽鼠标
按住alt键,放大图纸,为了测量更加准确,滚动滚轮,向外滚表示放大,向内滚表示缩小
方法:测量两行文字中间的间距,然后除以2,得到平均间距,拉出参考线,进行标注,方便测量
-
常用值
-
normal默认。设置合理的行间距。
-
-
px 设置固定的行间距。
-
百分比:相对于font-size计算
.box{ /*line-height:2;*/ line-height:200%; /*产生的效果一致都是字号的两倍*/ } line-height: 26px; 如果行高属性值没有单位,那么表示字号的倍数 20px/2 表示:字体大小是20px,行高是字体的两倍40px
6、font简写
-
作用:设置所有字体属性
-
语法:font: 字体风格 字体加粗 字号/行高 字体;
-
依次【空格】隔开
-
-
总结:只有当字体存在简写才是有效的,简写属性可以精简简代码
font:font-style font-weight font-size/line-height font-family; 顺序:文字的样式 文字的加粗 文字的字号/行高 文字的字体 注意:如果font属性有效,则必须要有font-size属性和font-family属性 font: italic bold 14px/2 '微软雅黑';