CSS
2021-03-06 17:03:03 0 举报
AI智能生成
CSS基础知识点
作者其他创作
大纲/内容
初识
简介
CSS通常称为CSS样式表或层叠样式表(级联样式表),
主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、
图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式
主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、
图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式
CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制及整体排版等,
而且还可以针对不同的浏览器设置不同的样式
而且还可以针对不同的浏览器设置不同的样式
样式规则
CSS注释
/* 需要注释的内容 */
书写位置
内部样式表
<style type="text/CSS">
选择器 {属性1:属性值1; 属性2:属性值2; 属性3:属性值3;}
</style>
选择器 {属性1:属性值1; 属性2:属性值2; 属性3:属性值3;}
</style>
行内式
<标签名 style="属性1:属性值1; 属性2:属性值2; 属性3:属性值3;"> 内容 </标签名>
外部样式表
<link href="CSS文件的路径" type="text/CSS" rel="stylesheet" />
三大特性
层叠性
1. 样式冲突,遵循的原则是就近原则。 那个样式离着结构近,就执行那个样式。
2. 样式不冲突,不会层叠
继承性
子标签会继承父标签的某些样式,如文本颜色和字号
特殊性(Specificity)
基本优先级
继承样式的权重为0。即在嵌套结构中,不管父元素样式的权重多大,被子元素继承时,他的权重都为0,也就是说子元素定义的样式会覆盖继承来的样式。
行内样式优先。应用style属性的元素,其行内样式的权重非常高,可以理解为远大于100。总之,他拥有比上面提高的选择器都大的优先级。
权重相同时,CSS遵循就近原则。也就是说靠近元素的样式具有最大的优先级,或者说排在最后的样式优先级最大。
CSS定义了一个!important命令,该命令被赋予最大的优先级。也就是说不管权重如何以及样式位置的远近,!important都具有最大优先级。
继承贡献值
每个元素(标签)贡献值为0,0,0,1
每个类,伪类贡献值为0,0,1,0
每个ID贡献值为0,1,0,0
每个行内样式贡献值1,0,0,0
每个!important贡献值∞ 无穷大
优雅降级、渐进增强
单位
相对长度
em 它是描述相对于应用在当前元素的字体尺寸,所以它也是相对长度单位。一般浏览器字体大小默认为16px,则2em == 32px
ex 依赖于英文字母小 x 的高度
ch 数字 0 的宽度
rem rem 是根 em(root em)的缩写,rem作用于非根元素时,相对于根元素字体大小;rem作用于根元素字体大小时,相对于其出初始字体大小
vw viewpoint width,视窗宽度,1vw=视窗宽度的1%
vh viewpoint height,视窗高度,1vh=视窗高度的1%
vmin vw和vh中较小的那个
vmax vw和vh中较大的那个
%
绝对长度
cm 厘米
mm 毫米
in 英寸 (1in = 96px = 2.54cm)
px * 像素 (1px = 1/96th of 1in)
pt point,大约1/72英寸; (1pt = 1/72in)
pc pica,大约 12pt,1/6英寸; (1pc = 12 pt)
扩展:px、em、rem的区别
字体
样式
font-size:字号大小
font-family:字体
技巧
可以同时指定多个字体,中间以逗号隔开,
表示如果浏览器不支持第一个字体,则会尝试下一个,直到找到合适的字体
表示如果浏览器不支持第一个字体,则会尝试下一个,直到找到合适的字体
Unicode字体
宋体 SimSun \5B8B\4F53
新宋体 NSimSun \65B0\5B8B\4F53
黑体 SimHei \9ED1\4F53
微软雅黑 Microsoft YaHei \5FAE\8F6F\96C5\9ED1
楷体_GB2312 KaiTi_GB2312 \6977\4F53_GB2312
...
新宋体 NSimSun \65B0\5B8B\4F53
黑体 SimHei \9ED1\4F53
微软雅黑 Microsoft YaHei \5FAE\8F6F\96C5\9ED1
楷体_GB2312 KaiTi_GB2312 \6977\4F53_GB2312
...
font-weight:字体粗细
值
normal、bold、bolder、lighter、100~900(100的整数倍)
技巧
数字 400 等价于 normal,而 700 等价于 bold。 但是我们更喜欢用数字来表示。
font-style:字体风格
normal:默认值,浏览器会显示标准的字体样式。
italic:浏览器会显示斜体的字体样式。
oblique:浏览器会显示倾斜的字体样式。
italic:浏览器会显示斜体的字体样式。
oblique:浏览器会显示倾斜的字体样式。
综合设置
选择器{font: font-style font-weight font-size/line-height font-family;}
外观
color:文本颜色
取值
预定义的颜色值,如red,green,blue
十六进制,如#FF0000,#FF6600,#29D794等
RGB代码,如红色可以表示为rgb(255,0,0)或rgb(100%,0%,0%)
颜色半透明(css3)
color: rgba(r,g,b,a)
a取值0—1
line-height:行间距
行间距 = 元素高度 :垂直居中
text-align:水平对齐方式
left:左对齐(默认值)
right:右对齐
center:居中对齐
text-indent:首行缩进
1em 就是一个字的宽度 如果是汉字的段落
letter-spacing:字间距
word-spacing:单词间距
文字阴影(CSS3)
text-shadow:水平位置 垂直位置 模糊距离 阴影颜色
背景(background)
背景图片(image)
background-image : none | url (url)
背景图片后面的地址,url不要加引号
背景平铺(repeat)
background-repeat : repeat | no-repeat | repeat-x | repeat-y
参数
repeat : 背景图像在纵向和横向上平铺(默认的)
no-repeat : 背景图像不平铺
repeat-x : 背景图像在横向上平铺
repeat-y : 背景图像在纵向平铺
repeat-x : 背景图像在横向上平铺
repeat-y : 背景图像在纵向平铺
背景位置(position)
语法
background-position : length || length
background-position : position || position
参数
length : 百分数 | 由浮点数字和单位标识符组成的长度值。请参阅长度单位
position : top | center | bottom | left | center | right
背景附着
background-attachment : scroll | fixed
参数
scroll : 背景图像是随对象内容滚动
fixed : 背景图像固定
统改
background:背景颜色 背景图片地址 背景平铺 背景滚动 背景位置
背景透明(CSS3)
background: rgba(0,0,0,0.3);
背景缩放(CSS3)
background-size:length | cover | contain
参数
a) 可以设置长度单位(px)或百分比(设置百分比时,参照盒子的宽高)
b) 设置为cover时,会自动调整缩放比例,保证图片始终填充满背景区域,如有溢出部分则会被隐藏。我们平时用的cover 最多
c) 设置为contain会自动调整缩放比例,保证图片始终完整显示在背景区域。
多背景(CSS3)
background:url(test1.jpg) no-repeat scroll 10px 20px/50px 60px ,
url(test1.jpg) no-repeat scroll 10px 20px/70px 90px ,
url(test1.jpg) no-repeat scroll 10px 20px/110px 130px c #aaa;
注意
一个元素可以设置多重背景图像。
每组属性间使用逗号分隔。
如果设置的多重背景图之间存在着交集(即存在着重叠关系),前面的背景图会覆盖在后面的背景图之上。
为了避免背景色将图像盖住,背景色通常都定义在最后一组上,
案例:凹凸文字
标签显示模式(display)
块级元素(block)
(1)总是从新行开始
(2)高度,行高、外边距以及内边距都可以控制。
(3)宽度默认是容器的100%
(4)可以容纳内联元素和其他块元素。
行内元素(inline)
(1)和相邻行内元素在一行上。
(2)高、宽无效,但水平方向的padding和margin可以设置,垂直方向的无效。
(3)默认宽度就是它本身内容的宽度。
(4)行内元素只能容纳文本或则其他行内元素。(a特殊)
行内块元素(inline-block)
(1)和相邻行内元素(行内块)在一行上,但是之间会有空白缝隙。
(2)默认宽度就是它本身内容的宽度。
(3)高度,行高、外边距以及内边距都可以控制。
显示模式转换
块转行内:display:inline;
行内转块:display:block;
块、行内元素转换为行内块: display: inline-block;
选择器
基本选择器
标签(元素)选择器
标签选择器是指用HTML标签名称作为选择器,按标签名称分类
标签名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
id选择器
id选择器使用“#”进行标识,后面紧跟id名
#id名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
类选择器
类选择器使用“.”(英文点号)进行标识,后面紧跟类名
.类名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
通配符选择器
通配符选择器用“*”号表示,他是所有选择器中作用范围最广的,能匹配页面中所有的元素
* { 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
多类名选择器
标签指定多个类名
<div class="pink fontWeight font20">亚瑟</div>
高级选择器
伪类选择器
伪类选择器用于向某些选择器添加特殊的效果
li:nth-child(4)
li:hover
链接伪类选择器
:link /* 未访问的链接 */
:visited /* 已访问的链接 */
:hover /* 鼠标移动到链接上 */
:active /* 选定的链接 */
结构(位置)伪类选择器
:first-child :选取属于其父元素的首个子元素的指定选择器
:last-child :选取属于其父元素的最后一个子元素的指定选择器
:nth-child(n) : 匹配属于其父元素的第 N 个子元素,不论元素的类型
:nth-last-child(n) :选择器匹配属于其元素的第 N 个子元素的每个元素,
不论元素的类型,从最后一个子元素开始计数。
不论元素的类型,从最后一个子元素开始计数。
n 可以是数字、关键词或公式
目标伪类选择器
用于选取当前活动的目标元素
:target {
color: red;
font-size: 30px;
}
交集选择器
交集选择器由两个选择器构成,其中第一个为标签选择器,第二个为class选择器
并集选择器
并集选择器(CSS选择器分组)是各个选择器通过逗号连接而成的,任何形式的选择器(包括标签选择器、class类选择器id选择器等),都可以作为并集选择器的一部分
只要逗号隔开的,所有选择器都会执行后面样式
.one, p , #test {color: #F00;}
后代选择器
后代选择器又称为包含选择器,用来选择元素或元素组的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔
子元素选择器
子元素选择器只能选择作为某元素子元素的元素。
属性选择器
选取标签带有某些特殊属性的选择器
div[class^=font] { /* class^=font 表示 font 开始位置就行了 */
color: pink;
}
color: pink;
}
div[class$=footer] { /* class$=footer 表示 footer 结束位置就行了 */
color: skyblue;
}
color: skyblue;
}
div[class*=tao] { /* class*=tao *= 表示tao 在任意位置都可以 */
color: green;
}
伪元素选择器(CSS3)
1. E::first-letter文本的第一个单词或字(如中文、日文、韩文等)
2. E::first-line 文本第一行;
3. E::selection 可改变选中文本的样式;
4.E::before和E::after
在E元素内部的开始位置和结束位创建一个元素,该元素为行内元素,且必须要结合content属性使用。
盒模型
简介
把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。
每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成
每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成
计算盒子模型的总高度时,还应考虑上下两个盒子垂直外边距合并的情况
盒子边框(border)
border : border-width || border-style || border-color
边框样式(border-style)
none:没有边框即忽略所有边框的宽度(默认值)
solid:边框为单实线(最为常用的)
dashed:边框为虚线
dotted:边框为点线
double:边框为双实线
其它
border-top
border-bottom-
border-left
border-right
表格细线边框
table{ border-collapse:collapse; }
border-collapse:collapse; 表示边框合并在一起
圆角边框(CSS3)
border-radius: 左上角 右上角 右下角 左下角;
内边距(padding)
用于设置内边距。 是指 边框与内容之间的距离。
参数
1个值:padding:上下左右边距 比如padding: 3px; 表示上下左右都是3像素
2个值:padding: 上下边距 左右边距 比如 padding: 3px 5px; 表示 上下3像素 左右 5像素
3个值:padding:上边距 左右边距 下边距 比如 padding: 3px 5px 10px; 表示 上是3像素 左右是5像素 下是10像素
4个值:padding:上内边距 右内边距 下内边距 左内边距 比如: padding: 3px 5px 10px 15px; 表示 上3px 右是5px 下 10px 左15px 顺时针
外边距(margin)
margin:上外边距 右外边距 下外边距 左外边
盒子水平居中
条件
1. 必须是块级元素。
2. 盒子必须指定了宽度(width)
2. 盒子必须指定了宽度(width)
margis:auto
外边距合并
相邻块元素垂直外边距的合并
当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,
下面的元素有上外边距margin-top,
则他们之间的垂直间距不是margin-bottom与margin-top之和,
而是两者中的较大者
下面的元素有上外边距margin-top,
则他们之间的垂直间距不是margin-bottom与margin-top之和,
而是两者中的较大者
嵌套块元素垂直外边距的合并
对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,
则父元素的上外边距会与子元素的上外边距发生合并,
合并后的外边距为两者中的较大者,即使父元素的上外边距为0,也会发生合并
则父元素的上外边距会与子元素的上外边距发生合并,
合并后的外边距为两者中的较大者,即使父元素的上外边距为0,也会发生合并
解决
1. 可以为父元素定义1像素的上边框或上内边距。
2. 可以为父元素添加overflow:hidden
盒子阴影
box-shadow:水平阴影 垂直阴影 模糊距离 阴影尺寸 阴影颜色 内/外阴影;
CSS3盒模型
1、box-sizing: content-box 盒子大小为 width + padding + border content-box:此值为其默认值,其让元素维持W3C的标准Box Mode
2、box-sizing: border-box 盒子大小为 width 就是说 padding 和 border 是包含到width里面的
浮动(float)
简介
元素的浮动是指设置了浮动属性的元素会脱离标准普通流的控制,移动到其父元素中指定位置的过程
浮动的盒子需要和标准流的父级搭配使用
浮动可以使元素显示模式体现为行内块特性
语法
选择器{float:属性值;}
参数
left:元素向左浮动
right:元素向右浮动
none:元素不浮动(默认值)
清除浮动
选择器{clear:属性值;}
参数
left:不允许左侧有浮动元素(清除左侧浮动的影响)
right:不允许右侧有浮动元素(清除右侧浮动的影响)
both:同时清除左右两侧浮动的影响
父级添加overflow属性
原理:触发BFC的方式
after伪元素清除浮动
使用before和after双伪元素清除浮动
定位(position)
静态定位static
在静态定位状态下,无法通过边偏移属性(top、bottom、left或right)来改变元素的位置
相对定位relative
相对定位是将元素相对于它在标准流中的位置进行定位,当position属性的取值为relative时,可以将元素定位于相对位置
可以通过边偏移属性改变元素的位置,但是它在文档流中的位置仍然保留
每次移动的位置,是以自己的左上角为基点移动(相对于自己来移动位置)
相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它(相对定位不脱标)
绝对定位absolute
特点
绝对定位是将元素依据最近的已经定位(绝对、固定或相对定位)的父元素(祖先)进行定位
可以通过边偏移移动位置,完全脱标,完全不占位置
如果文档可滚动,绝对定位元素会随着它滚动,因为元素最终会相对于正常流的某一部分定位
若所有父元素都没有定位,以浏览器为准对齐(document文档)
绝对定位的盒子水平/垂直居中
原因
普通的盒子是左右margin 改为 auto就可, 但是对于绝对定位就无效了
1. 首先left 50% 父盒子的一半大小
2. 然后走自己外边距负的一半值就可以了 margin-left
子绝父相
子级是绝对定位的话, 父级要用相对定位
固定定位fixed
1. 固定定位的元素跟父亲没有任何关系,只认浏览器。
2. 固定定位完全脱标,不占有位置,不随着滚动条滚动。
粘性定位sticky
依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换
它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置
叠放次序(z-index)
解决
多个元素同时设置定位时,定位元素之间有可能会发生重叠
特点
1. z-index的默认属性值是0,取值越大,定位元素在层叠元素中越居上。
2. 如果取值相同,则根据书写顺序,后来居上。
3. 后面数字一定不能加单位。
4. 只有相对定位,绝对定位,固定定位有此属性,其余标准流,浮动,静态定位都无此属性,亦不可指定此属性。
特点
元素添加了 绝对定位和固定定位之后, 元素模式也会发生转换, 都转换为行内块模式
行内元素 如果添加了 绝对定位或者 固定定位后 浮动后,可以不用转换模式,直接给高度和宽度就可以了
伸缩布局(Flex)
简介
Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性
采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目
结构
主轴:Flex容器的主轴主要用来配置Flex项目,默认是水平方向
侧轴:与主轴垂直的轴称作侧轴,默认是垂直方向的
方向:默认主轴从左向右,侧轴默认从上到下
主轴和侧轴并不是固定不变的,通过flex-direction可以互换
结构图
容器(父元素)属性
flex-direction
调整主轴方向(默认为水平方向)
flex-direction: column 垂直排列
flex-direction: row 水平排列
justify-content
调整主轴对齐(水平对齐)
值
flex-start 默认值。项目位于容器的开头
flex-end 项目位于容器的结尾。
center 项目位于容器的中心
space-between 项目位于各行之间留有空白的容器内。
space-around 项目位于各行之前、之间、之后都留有空白的容器内。
align-items
调整侧轴对齐(垂直对齐)
值
stretch 默认值。项目被拉伸以适应容器。
center 项目位于容器的中心。
flex-start 项目位于容器的开头。
flex-end 项目位于容器的结尾。
flex-wrap
控制是否换行,决定盒子内容宽度多于父盒子的时候如何处理
值
nowrap 默认值。规定灵活的项目不拆行或不拆列。
wrap 规定灵活的项目在必要的时候拆行或拆列。
wrap-reverse 规定灵活的项目在必要的时候拆行或拆列,但是以相反的顺序。
flex-flow
flex-direction、flex-wrap的简写形式
语法
flex-flow: flex-direction flex-wrap;
align-content
堆栈(由flex-wrap产生的独立行)多行垂直对齐方式齐
和align-items的区别
前提
对父元素设置
display:flex;
flex-direction:row;
flex-wrap:wrap;
display:flex;
flex-direction:row;
flex-wrap:wrap;
值
stretch 默认值。项目被拉伸以适应容器。
center 项目位于容器的中心。
flex-start 项目位于容器的开头。
flex-end 项目位于容器的结尾。
space-between 项目位于各行之间留有空白的容器内。
space-around 项目位于各行之前、之间、之后都留有空白的容器内
项目属性
order
用整数值来定义排列顺序,数值小的排在前面。可以为负值。 默认值是 0
flex-grow
一个数字,规定项目将相对于其他灵活的项目进行扩展的量。
属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大
flex-shrink
一个数字,规定项目将相对于其他灵活的项目进行收缩的量。
flex-basis
在分配多余空间之前,项目占据的主轴空间(main size)即项目的长度
合法值:"auto"、"inherit" 或一个后跟 "%"、"px"、"em" 或任何其他长度单位的数字
flex
flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选
建议优先选择该属性,减少分别设置
align-self
允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto
值(解释同align-items)
align-self: auto | flex-start | flex-end | center | baseline | stretch;
相关属性
min-width/height 最小宽/高度
max-width/height 最大宽/高度
CSS高级
鼠标样式cursor
cursor : default 小白 | pointer 小手 | move 移动 | text 文本
轮廓 outline
绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用
outline : outline-color ||outline-style || outline-width
outline: none 去掉
禁用拖拽文本域resize
resize:none
vertical-align 垂直对齐
vertical-align 不影响块级元素中的内容对齐,
它只针对于 行内元素或者行内块元素,
特别是行内块元素, 通常用来控制图片/表单与文字的对齐
它只针对于 行内元素或者行内块元素,
特别是行内块元素, 通常用来控制图片/表单与文字的对齐
vertical-align : baseline |top |middle |bottom
去除图片底侧空白缝隙
原因
图片或者表单等行内块元素,他的底线会和父级盒子的基线对齐
解决
vertical-align:middle | top
display:block
溢出的文字隐藏
word-break:自动换行
normal 使用浏览器默认的换行规则。
break-all 允许在单词内换行。
keep-all 只能在半角空格或连字符处换行。
主要处理英文单词
white-space
normal : 默认处理方式
nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇br标签对象才换行
text-overflow 文字溢出
text-overflow : clip | ellipsis
clip : 不显示省略标记(...),而是简单的裁切
ellipsis : 当对象内文本溢出时显示省略标记(...)
white-space、text-overflow 搭配overflow实现文字溢出显示...
CSS精灵技术(sprite)
将一个页面涉及到的所有零星背景图像都集中到一张大图中去,然后将大图应用于网页
使用background-image、background-repeat和background-position属性进行背景定位
字体图标(iconfont)
优点
可以做出跟图片一样可以做的事情,改变透明度、旋转度,等..
但是本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果等等...
本身体积更小,但携带的信息并没有削减。
几乎支持所有的浏览器
移动端设备必备
流程
1.UI人员设计字体图表效果图
2.前端人员上传生成兼容性字体文件包
3.前端人员下载兼容性字体文件包
4.引用至所需html页面
1.在样式里面声明字体: 告诉别人我们自己定义的字体
2.给盒子使用字体
1.css
2.标签
3.盒子里面添加结构
相关字体图标网站
icomoon字库
阿里icon font字库
fontello
Font-Awesome
Glyphicon Halflings
Icons8
滑动门
作用
使各种特殊形状的背景能够自适应元素中文本内容的多少
技术
CSS精灵(主要是背景位置)和盒子padding撑开宽度
html结构
<a href="#">
<span>导航栏内容</span>
</a>
步骤
1. a 设置 背景左侧,padding撑开合适宽度。
2. span 设置背景右侧, padding撑开合适宽度 剩下由文字继续撑开宽度。
3. a包含span从而使得整个导航都可以点击。
变形transform
2D变形(CSS3)
作用
实现元素的位移、旋转、倾斜、缩放,甚至支持矩阵方式
参数
translate(x, y)
在水平方向和垂直方向上分别移动
可以搭配定位实现水平居中
scale(x, y)
以对元素进行水平和垂直方向的缩放
rotate(deg)
对元素进行旋转,以元素中心为原点旋转,正值为顺时针,负值为逆时针
transform:rotate(45deg);
skew(deg, deg)
使元素按一定的角度进行倾斜,可为负值,第二个参数不写默认为0
参数一:y按逆时针旋转度数
参数二:x按顺时针旋转度数
transform-origin(属性)
调整元素转换变形的原点
transform-origin: left top;
以元素左上角为起点
transform-origin: 10px 10px;
改变元素原点到x 为10 y 为10(相对于自己)
3D变形(CSS3)
坐标系
参数
旋转
rotateX()
沿着 x 立体旋转
rotateY()
沿着y轴进行旋转
rotateZ()
沿着z轴进行旋转
平移(搭配透视使用)
translateX(x)
X轴移动
translateY(y)
Y轴移动
translateZ(z)
Z轴移动
特点以及前提
实质是XY平面相对于视点的远近变化
参照物就是perspective属性
比如设置了perspective为200px;那么transformZ的值越接近200,就是离的越近,看上去也就越大,超过200就看不到了,因为相当于跑到后脑勺去了
translate3d(x,y,z)
x和y可以是长度值,也可以是百分比,百分比是相对于其本身元素水平方向的宽度和垂直方向的高度和;z只能设置长度值
透视(perspective)
透视原理: 近大远小
浏览器透视:把近大远小的所有图像,透视在屏幕上
perspective:视距,表示视点距离屏幕的长短。视点,用于模拟透视效果时人眼的位置
perspective 一般作为一个属性,设置给父元素,作用于所有3D转换的子元素
搭配translateZ(z)实现近大远小
backface-visibility
定义当元素不面向屏幕时是否可见
过渡(transition)(CSS3)
作用
当元素从一种样式变换为另一种样式时为元素添加效果
语法
transition: 要过渡的属性 花费时间 运动曲线 何时开始;
使用多组属性变化时,可以用逗号隔开
动画(CSS3) animation
通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果
语法
animation:动画名称 动画时间 运动曲线 何时开始 播放次数 是否反方向
2、分析页面中的行模块,以及每个行模块中的列模块
@keyframes 动画名称 {
from{ 开始位置 } 0%
to{ 结束 } 100%
}
from{ 开始位置 } 0%
to{ 结束 } 100%
}
通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果
animation-iteration-count:infinite; 无限循环播放
animation-play-state:paused; 暂停动画"
背景渐变
background:-webkit-linear-gradient(渐变的起始位置, 颜色 位置, 颜色位置....);
background:-webkit-linear-gradient(渐变的起始位置, 起始颜色, 结束颜色);
元素显示与隐藏
display 显示
none
特点: 隐藏之后,不再保留位置。
visibility 可见性
visible : 对象可视
hidden : 对象隐藏
特点: 隐藏之后,继续保留原有位置
overflow 溢出
visible : 不剪切内容也不添加滚动条。
auto : 超出自动显示滚动条,不超出不显示滚动条
hidden : 不显示超过对象尺寸的内容,超出的部分隐藏掉
scroll : 不管超出内容否,总是显示滚动条
版心和布局流程
1、确定页面的版心(可视区)
3、制作HTML结构
4、CSS初始化,然后开始运用盒子模型的原理,通过DIV+CSS布局来控制网页的各个模块
垂直水平居中的方式
垂直
绝对定位+transform
margin根据父盒子确定具体的值
转化为行内块+vertical-align
水平
margin: 0 auto;
绝对定位+transform
行内块+text-align
BFC
1.简介
直译为"块级格式化上下文"。
W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,
并且有一套渲染规则,它决定了其子元素将如何定位,
以及和其他元素的关系和相互作用
并且有一套渲染规则,它决定了其子元素将如何定位,
以及和其他元素的关系和相互作用
2.特性
1.在BFC中,盒子从顶端开始垂直地一个接一个地排列.
2.盒子垂直方向的距离由margin决定。属于同一个BFC的两个相邻盒子的margin会发生重叠
3.在BFC中,每一个盒子的左外边缘(margin-left)会触碰到容器的左边缘(border-left)
1. BFC的区域不会与浮动盒子产生交集,而是紧贴浮动边缘
2. 计算BFC的高度时,自然也会检测浮动或者定位的盒子高度
4.本质上BFC属于普通流
3.触发条件
float属性不为none
position为absolute或fixed
display为inline-block, table-cell, table-caption, flex, inline-flex
overflow不为visible
4.用途
清除元素内部浮动
解决外边距合并问题
制作右侧自适应的盒子(左图右文)
Less
rem
相对于根(html)元素的字体大小
区别于em(性质类似)
媒体查询
针对不同屏幕尺寸设置不同样式
语法
@media mediatype and|not|only (media feature) {
CSS-code
}
CSS-code
}
引入资源
针对不同尺寸调用不同CSS样式
建议从尺寸小到大引入
在link定义类似媒体查询的语法
media=" mediatype and|not|only (media feature) "
0 条评论
下一页