css初学
1.css 基本规则
css全称:层叠样式表(Cascading Style Sheets)
选择器:告诉浏览器要设置样式的html元素
声明块:用于设置样式
viewport:移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,开发移动端页面时一定要加上
2.css的几种写法及推荐写法
写法:
内部样式表:写在style标签里面的
内联样式表:写在元素的style属性里面的
外部样式表:link标签将css资源引入
推荐外部样式表:
解决页面当中样式重复的问题
代码分离,利于代码维护和阅读
浏览器会缓存起来,提高页面响应速度(不用重新去服务器获取)
3.常见的选择器及使用场景
必须掌握的选择器
元素(标签)选择器 h1{color:red;}
类选择器 className {color:red;}
id选择器(javaScript) idName {color:red;}
开发过程中常用的选择器
通配符选择器 *
派生选择器:
根据文档dom结构来选择html元素
后代选择器 h1 p {color:red;}
子元素选择器(mdn搜索)div>span{font-size:900}
相邻选择器 h1+p{backgroud-color:pink;}
4.特殊的选择器
特殊的选择器
伪类选择器
选中一些元素的特殊效果
在某些场景选中有关系元素
1 |
|
5.css盒子模型
什么是盒子模型
在css里面,所有的html元素你都可以看成是一个盒子
具体可以分成如图:
由以下部分组成
盒子和盒子之间的间隙(margin)
盒子的边框(border)
盒子的内部间隙(padding)
盒子的内容(content)
盒子怪异模型
w3c标准的盒子模型(标准盒模型)
boxWidth=contentWidth
ie标准的盒子模型(怪异盒模型)
box-sizing:border-box // 声明
boxWidth=contentWidth+border+padding
外边距折叠:
上下两个兄弟盒子的margin都为正取大,都为负取小,一正一负相加
父子元素盒子的margin(假设没有内边距或边框把外边距分隔开),也会合并;只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并
1 |
|
6.css的常用属性
常用属性
盒子的位置和大小
尺寸:
宽度:width:长度 | 百分比 | auto
高度:height
边界:margin padding 上右下左 || 上下 左右
布局:
浮动:float
定位: position
弹性布局:flex
盒子内容超出部分: overflow : hidden || scroll || auto
外观,风格:
background: 背景颜色 || 背景图像 || 背景重复 || 背景不要固定 || 背景位置
background-color
文字属性
字体大小: font-size
是否加粗: font-weight
是不是斜体:font-style
字体是什么:font-family
合并成一个属性:font
7.特性:层叠
层叠是一个基本特征
一个css属性被多次声明的时候,会根据优先级或者声明顺序来计算采用哪个样式
优先级是怎么计算
!important > 行内样式 > id > class > tag > 通配符
标签选择器 1
类选择器 10
id 选择器 100
通配符选择器和表示关系的选择器,对优先级没有影响
例外规则
!important
注意的:
不利于代码的维护
建议不要在自己的局部代码(公用代码)里使用important
可以在引入外部css,覆盖他本身的代码时,就可以用
8.css中什么是继承及常见的可继承的属性
什么是继承
当前的元素你不设置某些属性的时候,展示出来的样子(继承了父元素的某些属性)
默认设置继承的属性
记住一句话:
颜色、文字、字体间距行高、对齐方式、列表的样式
9.css中元素的分类和布局前置知识
元素的分类
块级元素
,
,
- ,
自已点满一行,就算宽度变小,也是独立成行
可修改宽高属性
行内元素: ,
写在块级元素里面
可跟其他行内元素并行显示
不能修改宽高
正常元素怎么布局
默认:一个块级元素的内容宽度就是其父元素的100%,他的高度和其内容高度一致
行内元素它的宽度和高度都是根据内容决定的(无法设置行内元素的宽高):
可设置display属性,定义元素的类型(css3定义布局)
元素之间又是如何相互影响的呢:
正常的文档布局流:
每个块级元素会在上个元素下面另起一行
行内元素不会另起一行
10.CSS 浮动
什么是浮动
一种布局方式,最初是为了文字能够围绕在图片周围而引入
为什么引入
常规的布局过于死板,引入float属性来实现更丰富的布局
万物皆可浮动
浮动的元素会并行显示
浮动的元素脱离正常的文档布局流
文本会围绕在它身边
使用
1 |
|
特点:
浮动元素会脱离文档流,不再占据文档流空间
浮动元素彼此之间是从左往右排列,宽度超过一行自动换行
在浮动元素前面元素不浮动时,浮动元素无法上移
块级元素和行内元素浮动之后都变成行内块级元素
浮动元素不会盖住文字,可以设置文字环绕效果
浮动带来的问题
影响其他元素的布局
如何解决:
清除浮动:
利用clear属性
在最后一个浮动元素后加入一个带有clear:both属性的空元素
通过伪类选择器,利用:after伪元素在元素末尾添加一个内容并带有clear:both属性来实现的(伪元素可以想成是元素的子级,before就是第一个子元素,after是最后一个)
生成BFC(块级上下文)
将浮动元素的父级的高度固定
1 |
|
10.flex布局
flex布局(弹性布局) css3
父元素容器的属性:
1 |
|
子元素容器的属性:
1 |
|
兼容性:浏览器ie9及以上
推荐是使用flex布局:flex布局易用,布局全面
11.定位
也是为布局引入的属性
position常用的几个值
子绝父相
static(静态定位)
relative(相对绝对)
absolute(绝对定位)
fixed(固定定位)
sticky(粘性定位)
相关的属性:
z-index:
使用场景:当定位的盒子重叠在一起
12.三栏布局如何实现
问题:高度固定,左右两侧的盒子宽度为200px,中间自适应
答案:
浮动实现
定位实现
flex实现
13.水平垂直居中
如何使用css实现水平垂直居中
行内元素:
1 |
|
块级元素:
定位:
知道宽高(margin + 自身元素具体宽高/2) + top
知道宽高(margin + 自身元素具体宽高/2) + left 50%
不知道宽高借助css3的translate属性
1 |
|
14.BFC
MDN解释:
块格式化上下文(block formatting context, BFC) 是web页面的可视化css渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素的区域
通俗的解释:
形成一块封闭的区域,能检测到区域内脱离文档流的元素。
特点:
css中隐含的属性,开启后不会被浮动元素覆盖
bfc元素可以包含浮动元素
bfc元素的子元素和父元素外边距不重叠
开启(都会有副作用):
设置元素浮动 float: left
设置为行内块元素: display: inline-block
overflow: hidden (推荐)
作用:
清除浮动带来的影响
解决边距塌陷问题(外边距折叠(margin collapsing)也只会发生在属于同一BFC的块级元素之间)
15.reset.css
https://meyerweb.com/eric/tools/css/reset/
16.css3常用属性
css3边框:
圆角:border-radius
盒阴影:box-shadow
边界图片:border-image
css3渐变:
1 |
|
css3文本效果:
1 |
|
17.网络布局(grid)
应用场景:flex布局、float布局应用于一维布局,网格布局应用于二维布局
父元素属性
1 |
|
布局文章:
http://www.woshipm.com/pd/644262.html 从产品角度看web布局
https://blog.csdn.net/lyyo_cd/article/details/73329068 web布局的几种方式
18.开发流程
需求评审->与ui对接设计图->开发页面->与后端程序员协调接口协议->接入接口数据联调->开发完成,提交测试环境,自测完成然后提测->解决bug->提交预发环境->产品,测试确认,与后端一起提交上线。