CSS3
概述
作用:布局,美化页面
语法规则:一般写在head标签中,title标签下
引入方式
内嵌式 写在style标签中
外联式
写在单独一个.CSS文件,但需要link标签在网页引入(推荐,项目中使用);<link
real="stylesheet" herf="css文件">
行内式 写在标签的style中(可配合js使用,使用有限)
基础选择器
标签选择器
类选择器 .类名{}
id选择器 #id属性值{};一个标签只能有一个id属性值,并且一个id选择器只能选中一个标签
通配符选择器 *{}
字体和文本样式
字体样式
字体大小 font-size;单位:像素px;chorm默认16px
字体组粗 font-widget
正常:400px
加粗:700px
字体样式 font-style;是否倾斜
normal
italic
字体类型 font-family 一般使用无衬线字体,如黑体,Arial
front属性连写 style,weight,size,family;如果省略了前两个,就相当于设置了默认值
文本样式
文本缩进 text-indent 取值
数字+px
数字+em(推荐,1em=当前标签的font-size大小
文本水平对齐方式 text-align
left 左对齐
center 居中对齐
right 右对齐
文本修饰 text-decoration
underline:下划线
none:无装饰线
line-through :删除线(几乎不用)
overline:上划线(几乎不用)
行高
作用:控制一行的上下间距
line-height
取值
数字 + px
倍数,当前font-size的倍数
应用
让单行文本垂直居中可以设置line-height:文字父元素高度
网页精准布局时,会设置line-height:1 可以取消上下间距
拓展
颜色
属性名
文字颜色:color
背景颜色:background-color
属性值
rgb表示法
十六进制表示法
标签水平居中
高级选择器
后代选择器 选择器1 选择器2{}
子代选择器 选择器1 > 选择器2{}
并集选择器 选择器1,选择器2{}
交集选择器
选择器1选择器2{}
如果有标签选择器,标签选择器必须写在最前面
伪选择器
hover{}
作用:选中鼠标悬停在元素上的状态,设置样式
背景
背景颜色
属性名:bachground-color(bgc)
属性值:关键字,rgba表示法...
背景图片
属性名:background-image(bgi)
属性值:background-image: url('图片路径‘);url引号可省略
默认水平和垂直方向平铺
背景平铺
属性名:background-repeat(bgr)
属性值
repeat 水平和垂直方向都平铺
no-repeat
repeat-x 沿x轴平铺
repeat-y 沿y轴平铺
背景位置
属性名:background-position(bgp)
属性值:background-position:(水平方向,垂直方向)
方位名词
数字+px 盒子左上角为原点(0,0)
背景属性连写 属性名:backgroun(bg):color image repeat position
元素显示模式
块级元素
独占一行
宽度默认是父元素的宽度,高度默认由内容撑开
可以设置宽高
行级元素
一行可以显示多个
宽度和高度由默认内容撑开
不可以设置宽高
行内块元素
一行可以显示多个
可以设置宽高
模式转换
disiplay:block 转换为块级元素
display:inline-block 转换成内宽元素
display:inline 转换成行内元素(极少)
拓展 大元素可以套小元素
CSS特性
继承性
特性:子元素默认继承父元素样式的特点
文字控制属性都可以继承,如color,font,text-indent
标签自身存在的属性,不会在继承
层叠性
相同样式,会层叠覆盖
只有当选择器优先级相同时,才会考虑层叠行
优先级
公式:继承<通配符选择器<标签选择器<类选择器<id选择器<行内样式<!
important
!important不能提升继承的优先级,只要是继承优先级最低!(开发不建议使用)
权重叠加计算 使用场景:复合选择器
盒子模型
概述
概念:页面中每一个标签都可以看做盒子
组成
内容区域(content)
内容距区域(padding)
边框区域(border)
外边距区域(margin)
尺寸
属性名 width/height
属性值 数字+px
边框
单方向设置
属性名 border-方位名词
属性值 连写的取值,粗细,线条样式
单个属性
作用:给设置边框粗细,边框样式,边框颜色效果
边框粗细 border-width:数字+px
边框样式 border-style:实现solid,虚线dashed,点线dotted;
边框颜色 border-color:颜色取值
CSS盒模型
手动内建
自动内建 给盒子设置属性:box-sizing:border-box;即可。
其他
清楚默认内外边距
浏览器会默认给部分标签设置默认margin和padding,但一般在项目开始前需要先
清除默认margin和padding
京东实现:*{margin:0;padding:0}
外边距折叠现象
合并现象
垂直布局的款及元素,上下的margin会合并
两者会取margin的最大值
塌陷现象
互相嵌套的块级元素,子元素的margin-top会作用在父元素上,导致父元素一起往
下移动
解决方法
给父元素设置border-top或者padding-top
给父元素设置overflow:hidden
转换成行内块元素
设置浮动
提升
结构伪类选择器
作用:根据元素在html中的结构关系查找元素
优势:减少对html中类的依赖,保持代码整洁
场景:用于查找某父级选择其中的元素
语法
E:first-child{} 匹配父元素中第一个子元素,且为E类型元素
E:last-child{} 匹配父元素中最后一个子元素,且为E类型元素
E-nth-child(n){} 匹配父元素中第n个子元素,且为E元素
n的公式法
偶数 2n,even
奇数 2n+1,2n-1,odd
找到前五个 -n+5
找到从第5个往后 n+5
伪元素
目的:能够使用伪元素在网页中创建内容
特点:由css模拟出的标签效果
种类
::before 在父元素内容的最前添加一个伪元素
::after 在父元素内容的最后添加一个伪元素
ps
必须设置content属性才能生效
伪元素默认为行内元素
标准流
又称文档流,是浏览器在渲染页面时默认采用的一套排版规则,规定了应以何种方式
排列元素
浮动
作用
早期:图文环绕效果
现在:网页布局
特点
脱离标准流(脱标),在标准流中不占位置
比标准流高半个级别,可覆盖标准流元素
浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
特殊显示效果
一行多个
可设置宽高
语法
float:left
float:right
PS:浮动元素不能通过text-dlign:center或margin:0 auto
清除浮动(影响)
影响:如果子元素浮动,此时子元素不能撑开标准流的块级元素
方法
一:为父元素设置高度
二:在父元素内容的最后添加一个块级元素,并给添加的块级元素设置clear:both 缺点:添加额外标签,让html结构更复杂
三:单伪元素清除法 .father::after {
content: '';
display: block;
clear: both;
/* 补充,在页面中看不到伪元素 */
height: 0;
visibility: hidden; 四:双伪元素清除法 .father::before,.father::after {
}
content: '';
display: table;
}
.father::after { clear: both; 五:给父元素设置over:hidden 方便
}
定位
作用:让元素自由摆放,一般用于盒子之间的层叠情况
应用场景
解决盒子间层叠问题
让盒子始终固定在屏幕某个位置
使用方式
设置定位方式 position:属性值
设置偏移值
一般水平和垂直各选择一个方向
letf:数字+px
top:数字+px
就近原则
分类
相对定位
定义:自恋型定位,相对自己之前的位置移动
语法:pisition:relative
特点
在页面中仍占位置,不脱标
仍具有标签原有的显示模式特点
适合小范围移动
绝对定位
定义:拼爹型定位,对于非静态定位的父元素进行定为移动
语法:pisition:absolute
特点
脱标,不占位
改变标签原有显示模式特点,具有行内块特点
PS
绝对定位的盒子不能使用margin:auto居中 解决方法
left:50%
top:50%
transform:translate(-50%,-50%) ,位移自己宽高的一般
具有行内特点,如果无宽度无内容,盒子的宽度为0 可以设置width:100%,和父元素相同
固定定位
定义:死心眼型定位,相对于浏览器进行定为移动
语法:position:fixed
特点
不占位置,脱标
相对于浏览器可视区域进行移动
案例
子绝父相
设置层级
默认情况下,定位盒子,后来者居上,但层级均为0
语法:z-index:整数;取值越大,层级越高,默认值为0
PS 只有配合定位才有效果
装饰
对齐
基线定义:浏览器文字元素排版中存在用于对其的基线(一般字母尾巴会穿过基线)
问题:当图片和文字在一行显示时,底部不对齐
方法
垂直对齐
属性名:vertical-align
属性值
baseline:默认,基线对齐
top:顶部对齐
middle:中部对齐
bottom:底部对齐
浏览器遇到行内和行内块标签当作文字处理,默认文字为基线对齐
转为块级模式
加行高,并设值中部对齐
使用text-align:center
光标类型
场景:设置鼠标在元素上显示的样式
语法
属性名:cursor
属性值
default:默认,通常为箭头
pointer:小手,提示用户可点击
text:工字型,提示用户可选择文字
move:十字光标,提示用户可移动
不同提示功能要配合JS来实现
边框圆角
场景:让盒子四个角圆润,提示用户体验
语法
属性名:border-radius
属性值:数字+px,百分比
常见应用
正圆
盒子为正方形
设置边框圆角为盒子宽高的一般,border-radius:50%
胶囊
盒子为长方形
boeder-radius:盒子高度一半
溢出部分显示效果
场景:控制内容溢出部分的显示效果
语法
属性名:overflow
属性值
visible:默认值,溢出可见
hidden:隐藏溢出部分- 使用最多
scroll:无论是否溢出,都显示滚动条
auto:根据是否溢出,自动显示或隐藏滚动条
元素本身隐藏
场景:让某元素在屏幕中不可见,如 鼠标hover之后元素隐藏或显示
常见属性
display:none
常用
不占为隐藏
visibility:hidden 占位隐藏,影响布局
拓展
调节图片垂直对齐方式 vertical-align:middle
元素整体透明度 语法
属性名:opacity
属性值:0 ~ 1 之间的数字
精灵图
场景:项目中将许多张小图片合并为一张大图片,称之为精灵图
优点:减少服务器发送次数,提高页面加载速度
语法
background-image:url("路径")
position:?px ?px
背景图片大小 语法
属性名:background-size:宽度 高度
属性值
数字+px
百分比
contain 等比例缩放,不会超过盒子最大
cover 覆盖,等比例缩放,刚好填满
盒子阴影 语法
属性名:box-shadow
属性值
h-shadow 必有,水平偏移量
v-shadow 必有,垂直偏移量
blur 模糊度
spread 阴影扩大
color 阴影颜色
inset 将阴影该为内部阴影
过渡
作用:让元素样式慢慢变化,常配合hover使用
语法
属性名:transition
属性值
子主题 2
过渡时长:数字+s(秒)