CSS起源
1.给标签设置属性,修改样式
1.需要记忆哪些标签有哪些属性, 如果该标签没有这个属性, 那么设置了也没有效果
2.HTML只有一个作用就是用来 **添加语义**
3.当需求变更时我们需要修改大量的代码才能满足现有的需求
2.使用CSS来给标签添加样式的优点
1.不用记忆哪些属性属于哪个标签
2.当需求变更时我们不需要修改大量的代码就可以满足需求
3.在前端开发中CSS只有一个作用, 就是用来修改样式
3.CSS格式(内嵌样式)
<head>
<style type="text/css">
标签名称{
属性名称: 属性对应的值;
...
}
</style>
*注意:
注意点
style标签必须写在head标签的开始标签和结束标签之间(也就是必须和title标签是兄弟关系)
style标签中的type属性其实可以不用写, 默认就是type="text/css"
设置样式时必须按照固定的格式来设置. key: value, 其中:不能省略, 分号大多数情况下也不能省略
*css的代码结构 *选择器{属性名:属性值;属性名:属性值}
4.CSS书写格式
1.行内样式 :<div style = "color: red">我是盒子</div>
2.内嵌样式 :可以在一对head标签中写上一堆style标签,然后在style中编写CSS代码.
<head>
<style type="text/css">
标签名称{
属性名称: 属性对应的值;
...
3.外链样式:在开发中一般使用外链样式,可以单独的新建一个.css的文件,把CSS代码写到这个文件中,然后通过link标签把这个文件和.html文件关联起来.
<head>
<meta charset='UTF-8'>
<Tittle>tittle</Tittle>
<link rel='stylesheet' href="zy.css">
</head>
4.导入样式:单独新建一个.css的文件, 把CSS代码写到这个文件中,然后通过@import把这个文件和.html文件关联起来.
<head>
<meta charset="UTF-8">
<Tittle>tittle</Tittle>
<style>
@import "zy.css";
</style>
</head>
5.外链样式和导入样式的区别
1.外链样式是通过link和html文件产生关联,导入样式是通过@import导入css样式,导入样式容易产生兼容问题
2.外链样式是先加载样式后加载结构,导入样式是先加载结构后加载样式.
#CSS常见属性
1.文字属性:
1.font-style : 取值
*作用:规划文字样式
*取值:
**italic:倾斜
**normal : 正常的, 默认就是正常的
2.font-weight : 取值
*作用: 规定文字粗细
*取值
**bold:加粗
**lighter:细线
**bolder:比加粗还要粗
3.font-family : 取值
*作用:规划文字字体
*格式:font-family:“楷体”;
注意点:
1.如果取值是中文, 需要用双引号或者单引号括起来
2.设置的字体必须是用户电脑里面已经安装的字体
4.文字属性的缩写
*font:style weight size family;
例如:font:normal bold 10px "楷体";
5. 注意点
在这种缩写格式中sytle、weight属性值可以省略
在这种缩写格式中style和weight的位置可以交换
在这种缩写格式中size、family属性值是不可以省略的
size和family的位置是不能随便乱放,size在family前,都放在后
2.文体属性:
1.text-decoration:取值
作用: 给文本添加装饰
取值
underline: 下划线
line-through: 删除线
overline: 上划线
none: 什么都没有, 最常见的用途就是用于 去掉超链接的下划线
2.text-align:
作用: 设置文本水平对齐方式
取值
left 左
right 右
center 中
3.text-indent:取值
作用:设置文本缩进
取值:2em,其中em是单位, 一个em代表缩进一个文字的宽度
3.颜色属性:
1.color:取值
作用:设置颜色
取值:
rgb
英文单词
rgba
16进制
4.盒子阴影
1.box-shadow:水平偏移 垂直偏移 模糊度 阴影扩展 阴影颜色 内外阴影;
2.注意点:
1.盒子的阴影分为内外阴影,默认情况下就是外阴影.
2.添加阴影只需要三个参数即可.
box-shadow:水平偏移,垂直偏移,模糊度
3.默认情况下阴影的颜色和盒子内容的颜色.
如何给文字添加阴影
text-shadow: 水平偏移 垂直偏移 模糊度 阴影颜色;
5.背景颜色属性
1.background-color:取值
取值:
1.英文字符
2.rgb
3.rgba
4.16进制格式
2.background-image: url();的属性, 专门用于设置背景图片.
注意点
1.图片的地址必须放在url()中, 图片的地址可以是本地的地址, 也可以是网络的地址
2.如果图片的大小没有标签的大小大, 那么会自动在水平和垂直方向平铺来填充
3.如果网页上出现了图片, 那么浏览器会再次发送请求获取图片
3.background-repeat属性,就是控制背景图片平铺方式
取值:
repeat:默认,水平垂直都需要平铺
no-repeat:水平垂直都不需要平铺
repeat-x:水平平铺
repeat-y:垂直平铺
应用场景:可以通过背景图片的平铺来降低图片的大小, 提升网页的访问速度
4.background-position:属性, 就是用于控制背景图片的位置
格式:background-position: 水平方向 垂直方向;
取值:
1、具体的方位名词
水平方向: left center right
垂直方向: top center bottom
2、具体像素
记住一定要写单位, 也就是一定要写px
记住具体的像素是可以接收负数的
*同一个标签可以同时设置背景颜色和背景图片, 如果颜色和图片同时存在, 那么图片会覆盖颜色.
7.background-attachment:属性,背景关联方式
格式:background-attachment:scroll;
取值:scroll 背景图片会随着滚动条滚动
fixed 背景图片不会随着滚动天滚动
6.背景属性缩写形式
格式:background: 背景颜色 背景图片 平铺方式 关联方式 定位方式;
注意点:background属性中,任何属性都可以省略.
6.边框属性
1.概述:边框就是环绕在标签宽度和高度周围的线条.
2.格式:
border :边框宽度 边框样式 边框颜色;
border-top: 边框的宽度 边框的样式 边框的颜色;
border-right: 边框的宽度 边框的样式 边框的颜色;
border-bottom: 边框的宽度 边框的样式 边框的颜色;
border-left: 边框的宽度 边框的样式 边框的颜色;
3.取值
solid 实线
dashed 虚线
dotted 圆点
double 双实线
4.分别先设置四条边的宽,样式,颜色
border- 上 右 下 左;
border-style: 上 右 下 左;
border-color: 上 右 下 左;
5.注意点:
这三个属性的取值是按照顺时针来赋值, 也就是按照上右下左来赋值
只设置上右下,左边的取值和右边的取值相同
只设置上右, 左边的取值和右边相同,下边的取值和上边相同
只设置上, 则右下左边的取值和上边相同
7.外边距属性:(padding)
1.什么是内边距?
边框和内容之间的距离就是内边距.
2.格式:
非连写:
padding-top: 值px;
padding-right: 值px;
padding-bottom: 值px;
padding-left: 值px;
连写:
padding: 上 右 下 左;
3.注意点:
给标签设置内边距之后, 标签占有的宽度和高度会发生变化
给标签设置内边距之后, 内边距也会有背景颜色
8.内边距属性:(margin)
1.什么是外边距?
标签和标签之间的距离就是外边距.
2.格式
非连写:
margin-top: 值px;
margin-right: 值px;
margin-bottom: 值px;
margin-left: 值px;
连写:
margin: 上 右 下 左;
3.注意点
外边距的那一部分是没有背景颜色
水平方向上, 外边距可以叠加
在默认布局的垂直方向上,外边距不会叠加,会出现外边距合并, 谁的外边距大就听谁的
9.div和span标签
1.div:一般用于配合css完成网页的布局
2.span:一般用于配合修改css完成网页的一些局部信息
3.div和span有什么区别?
1.div会单独占一行,但span不会
2.div相当于一个容器的标签,而span相当于一个文本标签
4.容器级的标签和文本级的标签的区别?
1.容器级的标签中可以嵌套其它所有的标签
2.文本级的标签中只能嵌套文字/图片/超链接
5.容器级标签:div h ul ol dl li dt dd …
6.文本级的标签:span p buis strong em ins del …
CSS元素的显示模式及模式转换
1.Html和Css下的分级
*在HTML中所有的标签分为两类, 分别是容器级和文本级
*在CSS中所有的标签分为两类, 分别是块级元素和行内元素
容器级的标签
div h ul ol dl li dt dd ...
文本级的标签
span p buis stong em ins del ...
块级元素
p div h ul ol dl li dt dd
行内元素
span buis strong em ins del
2.块级元素和行内元素的区别?
*块级元素
如果没有设置宽度, 那么默认和 父元素一样宽
如果设置了宽高, 那么就按照设置的来显示
*行内元素
不会独占一行
如果没有设置宽度, 那么默认和内容一样宽
行内元素是不可以设置宽度和高度的
*块內级元素
为了能够让元素既能够不独占一行, 又可以设置宽度和高度, 那么就出现了行内块级元素
img就是行内块级标签
3.CSS元素的模式转换
1.如何转换CSS元素的显示模式?
*设置元素的display属性
2.display取值:
block:块级
inline:行内级
inlink-block:行内块级
盒子模型
1.什么是CSS盒子模型?
CSS盒子模型是一个形象比喻,HTML中所有标签都是一个盒子.
在HTML中所有的标签都可以设置:宽度/高度 边框 内边距 外边距.
2.盒子box-sizing属性
1.CSS3中新增一个box-sizing属性,这个属性可以保证在我们给盒子新增padding和border之后,盒子的大小不变化
2.原理: 增加padding和border之后要想保证盒子元素的宽高不变, 那么就必须减去一部分内容的宽度和高度.
3.取值:
content-box 元素的宽高 = 边框 + 内边距 +内容宽高
border-box 元素的宽高 = 设置width/height的宽高
4.注意点:
1.如果两个盒子是嵌套关系,那么设置里面的盒子顶部外边距,外面的盒子也会被定下来
2.若外面的盒子不想被定下来,可以给外面的盒子添加一个边框属性
3.开发中, 如果需要控制嵌套关系盒子直接的距离,首先考虑使用padding,再考虑margin
padding本质上是用于控制父子关系之间的间隙
margin本质上是用于控制兄弟关系之间的间隙
4.在嵌套关系的盒子中, 我们可以利用margin:0 auto,让里面的盒子相对于外边的盒子水平居中
5.margin:0 auto:只对水平方向有效,对垂直无效
6.text-align:center和margin:0 auto区别
*text-align:center :让盒子内的文本内容水平居中
*margin:0 auto:让盒子本身水平居中
7.清空默认内外边距
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{
margin:0;padding:0
}
8.什么是行高?
*注意点:
行高和盒子高不同
2 行高指的是每行内容的高度; 盒子高指的是元素的高度.
3 文字在行高中默认是垂直居中的
4 要想一行文字在盒子中垂直居中, 那么只需要设置这行文字的"行高等于盒子的高"即可
5 想让盒子中多行文字居中,需要设置padding让文字居中,然后设置box-sizing属性来保证盒子元素的宽高不变.