1.定位
1.堆叠顺序
一旦将元素变为已定位元素的话,元素们则有可能出现堆叠的效果。
如何改变堆叠顺序?
属性:z-index
取值:无单位的数字,数字越大越靠上。
注意:
1.父子元素间,z-index无效,永远都是子元素压在父元素上。
2.只有已定位元素才能使用z-index属性。
2.固定定位
1.什么是固定定位
将元素固定在页面中的某个位置,位置不会随着滚动条而发生改变,始终固定在可视化区域。
2.语法
position:fixed;
配合偏移属性使用
3.特点
1.固定定位的元素会变成块级元素
2.脱离文档流,不占页面空间
3.固定定位的元素永远都是相对于body去实现位置的初始化。
练习:
在网页的右下角固定一张图片,距离底部100px,距离右边50px,页面滚动时,图片不动。
=======================
CSS3高级
1.复杂选择器
1.兄弟选择器
兄弟元素:具备相同父元素的平级元素称之为兄弟元素。
ex:
<div>
<p></p>
<p></p>
<p></p>
<p></p>
</div>
1.相邻兄弟选择器
作用:获取紧紧挨在某元素后的兄弟元素
语法:选择器1+选择器2{}
2.通用兄弟选择器
作用:获取某元素后所有满足条件的兄弟元素
语法:选择器1~选择器2{}
练习:通过兄弟选择器设置以下样式
1.h3与div之间有30px的外边距;
2.从第二个div开始,每个div都有10px的上外边距。
<h3>静夜思</h3>
<div>窗前明月光</div>
<div>疑是地上霜</div>
<div>举头望明月</div>
<div>低头思故乡</div>
2.属性选择器
1.作用
允许通过元素的属性及其值匹配页面中的元素。
2.语法
1.基本语法
[attr]
作用:匹配页面中所有附带attr属性的元素
ex:
[id] 匹配页面中所有附带id属性的元素
[class] 匹配页面中所有附带class属性的元素
2.elem[attr]
elem:表示任意元素
attr:表示任意属性
作用:匹配页面中所有附带attr属性的elem元素
ex:
div[id] 匹配页面中所有附带id属性的div元素
3.[attr1][attr2]...
作用:匹配同时附带多个属性的元素
ex:
[id][class]匹配页面中同时附带id和class属性的元素。
4.[attr=value]
作用:匹配attr属性值为value的元素
ex:
[id="map"]匹配id属性为map的元素
[class="c1"]
3.伪类选择器
已学过的伪类:
链接伪类: :link , :visited
动态伪类: :hover , :active , :focus
1.目标伪类
作用:突出显示活动的HTML锚点元素,匹配被激活时的锚点。
语法:
选择器:target{...}
ex:
div:target{}
练习:
用目标伪类选择器完成如图所示效果
2.结构伪类
作用:通过元素的结构关系来匹配元素
1.:first-child
匹配的元素是属于其父元素的第一个子元素
<div>
<p>p1</p>
<p>p2</p>
<p>p3</p>
<p>p4</p>
</div>
ex:
p:first-child{}
2.:last-chlid
匹配的元素是属于其父元素中的最后一个子元素
ex:
p:last-child{}
练习:
创建一个4*4的表格,并填充内容
设置第一行数据的背景颜色为黄色
设置最后一行数据的背景颜色为红色
3.:nth-child(n)
匹配的元素是属于其父元素中第n个子元素
ex:
tr:nth-child(3)
练习:
将第二行中第3列的背景颜色设置为蓝色
4.:empty
匹配没有子元素的元素
5.:only-child
匹配的元素属于其父元素中的唯一的子元素。
3.否定伪类
将满足指定选择器的元素给排除在外
语法:
:not(selector){}
tr:not(:first-child){}
练习:
设置每行中除第一列以外的所有列,文字以加粗和斜体的方式显示。
4.伪元素选择器
1.:first-letter或::first-letter
作用:匹配某个元素的首字符
2.:first-line或::first-line
作用:匹配某个元素的首行
注意:首字符和首行样式冲突时,优先使用首字符的样式
3.::selection
作用:匹配被用户选取的内容
注意:只能修改本文颜色和背景颜色
练习:
创建一个div,id为d1,内容随意
1.将div中内容的首字符设置为加粗,红色,大小为20pt,右外边距15px
2.将div中首行文本设置为橙色,斜体
3.将用户选取的内容设置为红色背景黄色字体
2.内容生成
1.什么是内容生成
使用css动态的向某元素中插入一段内容
2.伪元素选择器
1.:before或::before
作用:匹配到某元素的内容区域之前
<p>(:before)锄禾日当午</p>
2.:after或::after
作用:匹配到某元素的内容区域之后
<p>汗滴禾下土(:after)</p>
3.属性
属性:content
作用:向匹配的位置处增加内容
取值:
1.字符串 用""引起来
2.url() 添加一张图片
练习:
<p>学而时习之,不亦说乎</p>
<p>有朋自远方来,不亦乐乎</p>

输入格式如下:
子曰:学而时习之,不亦说乎
-摘自《论语》
4.解决问题
1.外边距溢出
1.增加一个空table标记-显示为table
2.在父元素的第一个子元素位置处增加(:before)
选择器:before{
content:"";
display:table;
}
2.浮动给父元素高度带来的影响
解决问题:
选择器:after{
display:block;
content:"";
clear:both;
}
3.弹性布局
1.什么是弹性布局
弹性布局是一种布局方式,主要是解决某元素中"子元素"的布局方式,为布局提供最大的灵活性。
2.弹性布局的相关概念
1.弹性布局的容器
简称“容器”,要实现布局效果的父元素,称为容器。
2.弹性布局的项目
简称“项目”,要实现布局效果的子元素,称为项目
3.主轴
项目们排列方向的一根轴,就称为主轴
如果项目们按x轴排列,那么x轴就是主轴
如果项目们按y轴排列,那么y轴就是主轴
4.交叉轴
与主轴交叉的一根轴称为交叉轴
如果主轴是x轴,那么y轴就是交叉轴
如果主轴是y轴,那么x轴就是交叉轴
3.语法
1.flex的容器
将元素变为flex容器后,那么所有的子元素都将变成flex项目,都允许按照弹性布局的方式排列。
属性:display
取值:
1.flex 将块级元素变为容器
2.inline-flex 将行内元素变为容器
2.容器的属性
1.flex-direction
作用:指定容器的主轴及其排列方向
取值:
1.row 默认值,即主轴是x轴,起点在左端
2.row-reverse 主轴是x轴,起点在右端
3.column 主轴是y轴,起点在顶端
4.column-reverse 主轴是y轴,起点在底端

2.flex-wrap
作用:当一个主轴排列不下所有项目时,换行显示
取值:
1.nowrap 默认值,即空间不够时,也不换行,项目自动缩小。
2.wrap 换行显示
3.wrap-reverse 换行反转
3.flex-flow
作用:是flex-direction和flex-wrap的缩写形式
取值:
1.row nowrap 默认值
2.direction wrap
4.justify-content
作用:定义项目在主轴上的对齐方式
取值:
1.flex-start 在主轴的的起点对齐
2.flex-end 在主轴的终点对齐
3.center 在主轴上居中对齐
4.space-between 两端对齐
5.space-around 每个项目两端间距相同
5.align-items
作用:项目在交叉轴上的对齐方式
取值:
1.flex-start 交叉轴的起点对齐
2.flex-end 交叉轴的终点对齐
3.center 交叉轴的居中对齐
4.baseline 交叉轴的基线对齐
5.stretch 如果项目未设置尺寸,在交叉轴上占满所有空间。

课后作业:完成学子商城 楼层布局效果

1.定位
1.堆叠顺序
一旦将元素变为已定位元素的话,元素们则有可能出现堆叠的效果。
如何改变堆叠顺序?
属性:z-index
取值:无单位的数字,数字越大越靠上。
注意:
1.父子元素间,z-index无效,永远都是子元素压在父元素上。
2.只有已定位元素才能使用z-index属性。
2.固定定位
1.什么是固定定位
将元素固定在页面中的某个位置,位置不会随着滚动条而发生改变,始终固定在可视化区域。
2.语法
position:fixed;
配合偏移属性使用
3.特点
1.固定定位的元素会变成块级元素
2.脱离文档流,不占页面空间
3.固定定位的元素永远都是相对于body去实现位置的初始化。
练习:
在网页的右下角固定一张图片,距离底部100px,距离右边50px,页面滚动时,图片不动。
=======================
CSS3高级
1.复杂选择器
1.兄弟选择器
兄弟元素:具备相同父元素的平级元素称之为兄弟元素。
ex:
<div>
<p></p>
<p></p>
<p></p>
<p></p>
</div>
1.相邻兄弟选择器
作用:获取紧紧挨在某元素后的兄弟元素
语法:选择器1+选择器2{}
2.通用兄弟选择器
作用:获取某元素后所有满足条件的兄弟元素
语法:选择器1~选择器2{}
练习:通过兄弟选择器设置以下样式
1.h3与div之间有30px的外边距;
2.从第二个div开始,每个div都有10px的上外边距。
<h3>静夜思</h3>
<div>窗前明月光</div>
<div>疑是地上霜</div>
<div>举头望明月</div>
<div>低头思故乡</div>
2.属性选择器
1.作用
允许通过元素的属性及其值匹配页面中的元素。
2.语法
1.基本语法
[attr]
作用:匹配页面中所有附带attr属性的元素
ex:
[id] 匹配页面中所有附带id属性的元素
[class] 匹配页面中所有附带class属性的元素
2.elem[attr]
elem:表示任意元素
attr:表示任意属性
作用:匹配页面中所有附带attr属性的elem元素
ex:
div[id] 匹配页面中所有附带id属性的div元素
3.[attr1][attr2]...
作用:匹配同时附带多个属性的元素
ex:
[id][class]匹配页面中同时附带id和class属性的元素。
4.[attr=value]
作用:匹配attr属性值为value的元素
ex:
[id="map"]匹配id属性为map的元素
[class="c1"]
3.伪类选择器
已学过的伪类:
链接伪类: :link , :visited
动态伪类: :hover , :active , :focus
1.目标伪类
作用:突出显示活动的HTML锚点元素,匹配被激活时的锚点。
语法:
选择器:target{...}
ex:
div:target{}
练习:
用目标伪类选择器完成如图所示效果
2.结构伪类
作用:通过元素的结构关系来匹配元素
1.:first-child
匹配的元素是属于其父元素的第一个子元素
<div>
<p>p1</p>
<p>p2</p>
<p>p3</p>
<p>p4</p>
</div>
ex:
p:first-child{}
2.:last-chlid
匹配的元素是属于其父元素中的最后一个子元素
ex:
p:last-child{}
练习:
创建一个4*4的表格,并填充内容
设置第一行数据的背景颜色为黄色
设置最后一行数据的背景颜色为红色
3.:nth-child(n)
匹配的元素是属于其父元素中第n个子元素
ex:
tr:nth-child(3)
练习:
将第二行中第3列的背景颜色设置为蓝色
4.:empty
匹配没有子元素的元素
5.:only-child
匹配的元素属于其父元素中的唯一的子元素。
3.否定伪类
将满足指定选择器的元素给排除在外
语法:
:not(selector){}
tr:not(:first-child){}
练习:
设置每行中除第一列以外的所有列,文字以加粗和斜体的方式显示。
4.伪元素选择器
1.:first-letter或::first-letter
作用:匹配某个元素的首字符
2.:first-line或::first-line
作用:匹配某个元素的首行
注意:首字符和首行样式冲突时,优先使用首字符的样式
3.::selection
作用:匹配被用户选取的内容
注意:只能修改本文颜色和背景颜色
练习:
创建一个div,id为d1,内容随意
1.将div中内容的首字符设置为加粗,红色,大小为20pt,右外边距15px
2.将div中首行文本设置为橙色,斜体
3.将用户选取的内容设置为红色背景黄色字体
2.内容生成
1.什么是内容生成
使用css动态的向某元素中插入一段内容
2.伪元素选择器
1.:before或::before
作用:匹配到某元素的内容区域之前
<p>(:before)锄禾日当午</p>
2.:after或::after
作用:匹配到某元素的内容区域之后
<p>汗滴禾下土(:after)</p>
3.属性
属性:content
作用:向匹配的位置处增加内容
取值:
1.字符串 用""引起来
2.url() 添加一张图片
练习:
<p>学而时习之,不亦说乎</p>
<p>有朋自远方来,不亦乐乎</p>

输入格式如下:
子曰:学而时习之,不亦说乎
-摘自《论语》
4.解决问题
1.外边距溢出
1.增加一个空table标记-显示为table
2.在父元素的第一个子元素位置处增加(:before)
选择器:before{
content:"";
display:table;
}
2.浮动给父元素高度带来的影响
解决问题:
选择器:after{
display:block;
content:"";
clear:both;
}
3.弹性布局
1.什么是弹性布局
弹性布局是一种布局方式,主要是解决某元素中"子元素"的布局方式,为布局提供最大的灵活性。
2.弹性布局的相关概念
1.弹性布局的容器
简称“容器”,要实现布局效果的父元素,称为容器。
2.弹性布局的项目
简称“项目”,要实现布局效果的子元素,称为项目
3.主轴
项目们排列方向的一根轴,就称为主轴
如果项目们按x轴排列,那么x轴就是主轴
如果项目们按y轴排列,那么y轴就是主轴
4.交叉轴
与主轴交叉的一根轴称为交叉轴
如果主轴是x轴,那么y轴就是交叉轴
如果主轴是y轴,那么x轴就是交叉轴
3.语法
1.flex的容器
将元素变为flex容器后,那么所有的子元素都将变成flex项目,都允许按照弹性布局的方式排列。
属性:display
取值:
1.flex 将块级元素变为容器
2.inline-flex 将行内元素变为容器
2.容器的属性
1.flex-direction
作用:指定容器的主轴及其排列方向
取值:
1.row 默认值,即主轴是x轴,起点在左端
2.row-reverse 主轴是x轴,起点在右端
3.column 主轴是y轴,起点在顶端
4.column-reverse 主轴是y轴,起点在底端

2.flex-wrap
作用:当一个主轴排列不下所有项目时,换行显示
取值:
1.nowrap 默认值,即空间不够时,也不换行,项目自动缩小。
2.wrap 换行显示
3.wrap-reverse 换行反转
3.flex-flow
作用:是flex-direction和flex-wrap的缩写形式
取值:
1.row nowrap 默认值
2.direction wrap
4.justify-content
作用:定义项目在主轴上的对齐方式
取值:
1.flex-start 在主轴的的起点对齐
2.flex-end 在主轴的终点对齐
3.center 在主轴上居中对齐
4.space-between 两端对齐
5.space-around 每个项目两端间距相同
5.align-items
作用:项目在交叉轴上的对齐方式
取值:
1.flex-start 交叉轴的起点对齐
2.flex-end 交叉轴的终点对齐
3.center 交叉轴的居中对齐
4.baseline 交叉轴的基线对齐
5.stretch 如果项目未设置尺寸,在交叉轴上占满所有空间。

CSS-弹性布局-伪类选择器-复杂选择器的更多相关文章

  1. CSS属性、伪类选择器,CSS3选择器

    CSS1时IE6是部分支持,伟大的IE6!CSS2时IE6部分支持,伟大的IE6依旧是部分支持!CCS3盛行CSS4也已经提上日程的现在,IE6完全不支持.IE6你该走了,我们会永远记住你的功绩的!I ...

  2. Selectivizr-让IE6~8支持CSS3伪类和属性选择器

    一.下载和demo 下载: 您可以狠狠地点击这里:selectivizr-1.0.0.zip(右键-[目标|链接另存为] 9.24K) demo: 您可以狠狠地点击这里:Selectivizr部分属性 ...

  3. CSS Pseudo-classes(伪类)

    CSS Pseudo-classes(伪类) CSS伪类是用来添加一些选择器的特殊效果. 一.语法 伪类的语法: selector:pseudo-class {property:value;} CSS ...

  4. CSS选择器之伪类选择器(伪元素)

    selection [CSS4]应用于文档中被用户高亮的部分(比如使用鼠标或其他选择设备选中的部分).(IE8及以下不支持)(火狐-moz-selection) first-line 选择每个 < ...

  5. css 为元素选择器,css目标状态伪类,结构化选择器,多媒体选择器,清除表默认样式、属性选择器

    伪元素选择器 :before 和 :after 添加的位置 :before --- 第一个子节点 :after --- 最后一个子节点 特点 1.默认是 inline 元素 2.必须包含 conten ...

  6. CSS选择器之伪类选择器(交互)

    :link 选取未访问链接 :active 选取活动链接(单击某链接,未松开鼠标时). :visited 选取已被访问的链接. :target 链接指定的目标 :hover 当鼠标浮在元素上方时. : ...

  7. css伪选择器使用总结——css中关于伪类和伪元素的知识总汇

    CSS 伪类用于向某些选择器添加特殊的效果,而CSS引入伪类和伪元素的概念是为了实现基于文档树之外的信息的格式化.这里讲总结关于css伪类和伪元素的相关使用 伪元素 :before/:before 在 ...

  8. CSS基础 结构伪类选择器 last-child、first-child和nth-of-type的使用方法

    一.通过伪类选择器查找单个标签元素html结构 <div> <a herf='#'>导航1</a> <a herf='#'>导航2</a> ...

  9. CSS选择器之伪类选择器(元素)

    :first-child 选择某个元素的第一个子元素(IE6不支持) :last-child 选择某个元素的最后一个子元素 :first-of-type [CSS3]选择一个上级元素下的第一个同类子元 ...

随机推荐

  1. exe4j 安装

    需要看清楚对应的jre版本 4.6---jre1.6 5.0以上---jre1.7

  2. FormData的使用

    var formData = new FormData(); <form id="coords" class="coords" onsubmit=&quo ...

  3. FPGA功耗那些事儿(转载)

    在项目设计初期,基于硬件电源模块的设计考虑,对FPGA设计中的功耗估计是必不可少的.笔者经历过一个项目,整个系统的功耗达到了100w,而单片FPGA的功耗估计得到为20w左右,有点过高了,功耗过高则会 ...

  4. 15. 3Sum (重新分配数组大小)

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  5. AtCoder Regular Contest 096 D - Static Sushi(线性dp)

    Problem Statement "Teishi-zushi", a Japanese restaurant, is a plain restaurant with only o ...

  6. dev-client.js-配合dev-server.js监听html文件改动也能够触发自动刷新

    // 引入 webpack-hot-middleware/client var hotClient = require('webpack-hot-middleware/client'); // 订阅事 ...

  7. Oracle高级查询之OVER

    注释:为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的 oracel的高级用法:rank()/dense_rank() over(partition by ...orde ...

  8. git web找不到new project解决方法

    group->选一个project->new project This is a annoying for two reasons: users might not understand ...

  9. C# web服务器被webbench攻击及目现采用的防御措施

    web服务器连续两次出现CPU达到100%的情况,第一次还想着是升级时,哪个地方写错了,有死循环,最后重启了三次服务器才好. 但事后分析代码,没有死循环的可能,于是在第二次又出现CPU达100%时,仔 ...

  10. angular2.0学习笔记6.编程风格指南

    1.组件的类名应该是大驼峰形式,并且以Component结尾. 因此英雄详情组件的类名是HeroDetailComponent. 组件的文件名应该是小写中线形式,每个单词之间用中线分隔,并且以.com ...