CSS3学习总结
(写在前边~)过了这么长时间,才写博客,最近实在是太忙了,做了两个项目,一个项目用于练手,自我感觉做的很漂亮,一个项目是一套完整的页面体系,答辩时候老师给了100分和99分,并让我打包上传,我很是感动,我的努力终于得到了认可,继续加油!!
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.
**转载请注明 出自 : luogg的博客园 ** 谢谢配合!
CSS的学习
day01
CSS概述
- CSS作用:层叠样式表(Cascading Style Sheets),美化页面,布局页面,修饰元素的外观,修改元素的位置.
- CSS基本机构:行内样式,内嵌样式,外联样式(link href="" rel="stylesheet" type="text/css")
- CSS基本语法:选择器
- CSS特性:
- 样式的优先级特性:行内样式,内嵌样式,外联样式,哪个离得被修饰元素近,哪个修饰就先起到作用 (就近原则)
- 继承特性:当元素属于父-子关系时,给父类定义一个样式,子类也会继承该样式.
- 冲突特性:行内样式会和隐含样式冲突,列入b元素加粗,font-weight:normal字体不加粗.会执行后者.
- 查看选择器以调试bug:f12.
选择器
选择器就是找到文档中某个元素或者某一批元素,用来设置样式.
基本选择器
-
通用选择器: *{} 设置所有元素样式
-
类型选择器: 标签名开头{} 例如:div{}
-
类选择器:标签中定义class之后,以.class{}开头
- 缩小范围的类选择器:想为多个相同的类中的某一个设置特定的样式可以使用(标签名.classname{}的形式来设置). 例如:div.div1{}
- 为元素起小名:同样的,想为多个相同的类中的某一个特定的类设置样式可以使用多个小名的形式(class="div1 classname")-->(.div1.classname1{})
-
id选择器:为元素设置id,然后(#id{}设置样式)
-
属性选择器:将元素的某一个属性设置为选择器进行比设置样式
- 属性中的某元素为选择器:[target]{}
- 属性中某元素的属性值(字符串):[target="_blank"{}]
- 属性中某元素属性值字符串开头:[target^="_b"]
复合选择器
- 并集选择器:多个类型选择器,中间用逗号隔开 div,span,p{} 为了让多个选择器设置同一个样式
- 后代选择器: ul li{} ul中的所有li都会设置样式,包含li中的子元素ul中的li.也就是ul1的孙元素._
- 直接后代选择器:ul>li{} 只管父类后边的子类li,不管子类后边的子类ul中的li.
<style>
#ul1>li{
color: #FF0000;
}
</style>
<ul id="ul1">
<li>无序列表</li>
<li>无序列表</li>
<li>无序列表</li>
<ul>
<li>子列表项</li>
<li>子列表项</li>
<li>子列表项</li>
</ul>
<li>无序列表</li>
<li>无序列表</li>
<li>无序列表</li>
</ul>
伪选择器
-
伪元素选择器:配合选择器使用
- ::first-line选择器
- ::first-letter选择器
- :before{ content: ""}(前边加文字)
- :after
-
伪类选择器:根据元素位置选择元素 比如ul中的li的位置
- 子元素选择器:
- first-child: ul li:first-child{}
- last-child: ul li:last-child{}
- nth-child选择器:根据索引元素位置判断,从1开始
- :nth-child(n):选择元素的第n个元素作为选择器.
n=odd 奇数; n=even 偶数 - :nth-last-child(n):倒数索引
-
动态伪类选择器(这个有意思)
- (:link):指定链接未被点击时的样式
- :vistited:链接被访问之后的效果.一般由于浏览器缓存会显示错误
- :hover:鼠标悬停时候的样式
- :active:用户点击时候的样式
- :focus:获得聚焦时候的样式
补充:
- CSS对大小写不严格要求,但是还是要书写规范.
权值大小比较:
- 内联样式表的权值为 1000
- ID 选择器的权值为 1000
- Class 类选择器的权值为 10
- HTML 标签选择器的权值为 1
优先级:important>内联样式>id>class>标签|伪类|属性选择器>伪元素>通配符(*)>继承
day02
颜色和单位的使用
- 颜色
- 用颜色的名字表示颜色,比如:red
- 用16进制表示演示 比如:#FF0000
- 用rgb数值表示颜色,rgb(红,绿,蓝),每个值都在0-255之间
一般都用16进制表示颜色
- 单位
- px:像素,与分辨率设置相关.
- %相对于浏览器的百分之多少,可以对宽度width做设置,不可以对height做设置
文本样式(text)
- color:设置文本颜色
- text-align:设置文本对齐方式
- center
- left
- right
- letter-spacing:字间距/字母间距
- word-spacing:单词间距,有空格就设置,中文看空格.
- line-height:行高(第二行的行高=第一行底部到第三行顶部)
- text-indent:一般30px就2个
- text-decoration:文本装饰
- underline:下划线
- overline:上划线
- line-through:删除线
- blink 闪烁(不会用)
- text-transform:大小写转换
- uppercase:全部大写
- lowercase:全部小写
- capitalize:每个单词以大写开头
- text-shadow:创建文本阴影(水平偏移量px,垂直偏移量px,模糊程度px,阴影颜色),模糊程度px值高越模糊.
- 设置字体:
- font-style:字体样式italic,oblique斜体
- font-size:设置字体的大小
- font-weight:设置字体的粗细,bolder最粗
- font-family:设置文字字体,楷体,隶书等等
- font简写属性: style weight size family(空格)顺序必须按这个格式,一般用了简写属性之后把行间距letter-spacing放font属性后边,不然会覆盖.
边框和背景
- 为元素应用边框
- border-width:边框宽度
- border-style:边框样式
none没有边框
dashed虚线
solied实线
double双线
groove槽线
dotted圆点线边框
inset内嵌 outset外凸
ridge 脊线边框 - bolder-color:边框颜色
- 简写形式border:width style color 没有先后顺序
- 单独设置某一条边框
- border-top/bottom/left/right-width/style/color
- 简写形式:border-top
- 应用圆角边框(x半径,y半径,xy相同时写一个就好了)
- border-top/bottom-left/right-radius
- 简写:border-radius
- 设置元素背景
- background-color:背景颜色
- background-image:{url("")} 背景图片地址
- background-repeat:背景图重复方式,一般no-repeat
- background-size:背景图尺寸
- background-position:背景图位置
- 简写:background:color image repeat position,尺寸不写,会冲突
- 创建盒子阴影
- box-shadow:水平偏移量 垂直偏移量 模糊值 阴影的延伸半径 阴影颜色 10px 10px 5px 0px red;
- 添加多个阴影,直接第一个之后用逗号继续写第二个,第一个设置成整数,第二个阴影设置成负数
- 设置轮廓
- 边框和轮廓的区别:轮廓不属于页面,不会因为应用轮廓而调整页面的布局
- 边框占有实际大小,轮廓不占有
- 当设置hover悬停时,轮廓修饰的div不会发生位移,边框修饰时位移
- outline-color:轮廓颜色
- outline-style:轮廓样式
- outline-width:轮廓宽度
- outline-offset:轮廓距元素边框偏移量
- 简写: outline
其他样式(表格,列表,透明度,光标)
-
表格
- border-collapse相邻单元格边框处理,合并表格=collapse
- border-spacing:相邻单元格间距
- caption-side:标题位置
- empty-cells:空单元格是否显示
-
列表
- list-style-tyle:列表前边的标记样式 圆点,方点等等
- list-style-image:列表图像标记
- 简写:list-style:none 取消列表的所有属性 一般用于导航
- 横向导航: li
-
透明度
- opacity:设置透明度(0-1之间取值)
-
光标形状
- cursor:设置光标形状,当光标放在某个div上边,设置等待状,手形状等等.
day03
盒子模型
盒子模型分为元素,内边距,边框,外边距,
1.设置一定尺寸的元素
1). width:设置元素宽度
2). height:设置元素高度
2.设置内边距
- padding-top/bottom/right/left
- padding:简写形式
3.设置外边距(边框到浏览器边缘或者到下一个盒子的距离)
- margin-top/bottom/left/right
- margin:简写形式
4.设置最小和最大尺寸(宽度设置为百分比时,扩大或缩小浏览器或者换了大屏或小屏显示器之后,防止元素错位或溢出)
- min-width:最小值为两div宽度相加值
- max-width:最大值
5.处理元素内容溢出
- overflow-x/y:x或y轴溢出
- overflow:简写形式: scroll设置滚动条(溢出处理方式)
6.改变元素类型
1).元素类型分为:
- inline行内元素:在页面中不可设置宽高,也不会独占一行,b,span
- inline-block行内块级元素:不能独占一行,但能设置宽高.img元素
- block块级元素:独占一行,可以设置宽高,p,div元素
2).改变元素类型display:
- 元素类型可以相互转换,转化之后元素性质也随之改变
- div一般不转化为行内元素,会丢掉,不能设置高
3).隐藏元素: display:none
7.浮动和阻止元素堆叠
- 浮动:float:left/right
- 消除元素堆叠在一起: clear:both(左右都消除)
8.案例:
百度页面的搭建:
- 技巧:为了让div居中,直接margin:0 auto;
- 为了初始不执行浏览器默认特征: *
- 为了防止div块溢出,设置最大最小值. 最小值就是左右两边div相加
- 文字垂直居中:line-height
- 做导航,链接a标签加到li标签外边
布局样式
1. 定位方式position
-
static:默认,元素为普通元素,文档流定位,从上到下
-
relative(相对的):元素的位置是相对于普通的位置定位的 ,位移之前的位置 其他元素用不了,一般不做太大的改动 ,对某个元素位置进行微调 ,只能使用top,left 我感觉他是相对于他之前的位置移动的
-
fixed(固定的):相对于浏览器窗口来定位 ,常用!!! ,位移之前位置不会被占用, 上下左右都可以使用, 小广告常用手法, 滚动条不断移,他的位置也不变 ,他会脱离文档流,漂浮于文档流上边,他这个上下左右是相对于边的位置,比如:top50px 不是向上移动50px ,而是元素相对于顶部边框距离50px 设置buttom也同样可以使用,而且拉动滚动条也不会变化位置
-
absolute(绝对的):元素相对position值不为static的一个祖先元素定 子元素依据祖先元素变化 祖先元素不能为static 依据谁变化,谁不可以为static(默认为static),发生在父子 或 祖先元素与后代元素之间的位移定位
2. 定位布局
top/bottom/left/right
3. z-index
用来设置元素 和 元素 的显示层数,正数 负数 都可以
必须配合position使用
过渡,变形
1. 过渡
过渡:元素由一种样式逐渐变为另一种样式
属性:
- transition-delay:设置过渡前的延时
- transition-duration:设置过渡用时
- transition-property:设置过渡参与的属性
- transition-timing-function:过渡速率(linear匀速)
- transition:简写形式(property duration timing-function delay)
反向过渡:
hover中设置的,粘贴到div中,就可以了
2. 变形
- transform: 指定如何变形
- transform: scaleX/Y(1.5) 缩放1.5倍
- transform: rotate(360deg) 旋转360度 deg代表度数,配合过渡时间 效果很好
- transform: skew(X轴角度,Y轴角度) 倾斜的角度
- transform: translate(X轴距离,Y轴距离) 移动的距离