CSS-弹性布局-伪类选择器-复杂选择器
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-弹性布局-伪类选择器-复杂选择器的更多相关文章
- CSS属性、伪类选择器,CSS3选择器
CSS1时IE6是部分支持,伟大的IE6!CSS2时IE6部分支持,伟大的IE6依旧是部分支持!CCS3盛行CSS4也已经提上日程的现在,IE6完全不支持.IE6你该走了,我们会永远记住你的功绩的!I ...
- Selectivizr-让IE6~8支持CSS3伪类和属性选择器
一.下载和demo 下载: 您可以狠狠地点击这里:selectivizr-1.0.0.zip(右键-[目标|链接另存为] 9.24K) demo: 您可以狠狠地点击这里:Selectivizr部分属性 ...
- CSS Pseudo-classes(伪类)
CSS Pseudo-classes(伪类) CSS伪类是用来添加一些选择器的特殊效果. 一.语法 伪类的语法: selector:pseudo-class {property:value;} CSS ...
- CSS选择器之伪类选择器(伪元素)
selection [CSS4]应用于文档中被用户高亮的部分(比如使用鼠标或其他选择设备选中的部分).(IE8及以下不支持)(火狐-moz-selection) first-line 选择每个 < ...
- css 为元素选择器,css目标状态伪类,结构化选择器,多媒体选择器,清除表默认样式、属性选择器
伪元素选择器 :before 和 :after 添加的位置 :before --- 第一个子节点 :after --- 最后一个子节点 特点 1.默认是 inline 元素 2.必须包含 conten ...
- CSS选择器之伪类选择器(交互)
:link 选取未访问链接 :active 选取活动链接(单击某链接,未松开鼠标时). :visited 选取已被访问的链接. :target 链接指定的目标 :hover 当鼠标浮在元素上方时. : ...
- css伪选择器使用总结——css中关于伪类和伪元素的知识总汇
CSS 伪类用于向某些选择器添加特殊的效果,而CSS引入伪类和伪元素的概念是为了实现基于文档树之外的信息的格式化.这里讲总结关于css伪类和伪元素的相关使用 伪元素 :before/:before 在 ...
- CSS基础 结构伪类选择器 last-child、first-child和nth-of-type的使用方法
一.通过伪类选择器查找单个标签元素html结构 <div> <a herf='#'>导航1</a> <a herf='#'>导航2</a> ...
- CSS选择器之伪类选择器(元素)
:first-child 选择某个元素的第一个子元素(IE6不支持) :last-child 选择某个元素的最后一个子元素 :first-of-type [CSS3]选择一个上级元素下的第一个同类子元 ...
随机推荐
- open suse linux 磁盘分区
在opensuse 中我是这样对磁盘进行配置的 先添加一块磁盘任意大小 reboot 重启 ls /dev/ | grep sd 可以看到有一块sdb 的磁盘没有分区 fdisk /dev/sdb n ...
- Python 学习笔记---爬取海贼王动漫
最近无聊整理的爬虫代码,可以自动爬取腾讯动漫的任意漫画,思路如下: 1. 先获取想下载的动漫url, 这里用了 getUrls ,直接获取动漫的最后一章 2. 然后进入到该动漫去获取要下载的图片url ...
- 【转】 UI自动化测试的关注点
我发现了,大家极度关心自动化测试,尤其是UI自动化测试,虽然现在作为专项测试,离开这些越来越远了,但总能遥想以前,我总能想起自己做nokia的WindowsLive的ui自动化,做web的自动化测试, ...
- win静态库动态库
静态链接库: #include "..\lib.h" #pragma comment(lib,"..\\debug\\libTest.lib") //指定与静态 ...
- VTP
VTP VLAN中继协议(Vlan Trunking Protocol),是CISCO专用协议.VTP负责在VTP域内同步VLAN信息,这样就不必在每个交换机上配置相同的VLAN信息.VTP还提供一种 ...
- cocoapods 更新本地仓库 pod setup/update 无限远程中断
升级 cocoapods 无限远程中断:网络不好 试了很多解决方法: 1.替换源,2.设置下载速度,3.清空本地master仓库,4.删了本地的pod库,5.半夜3-5点更新,6.按照失败提示的 (p ...
- 绝对路径${pageContext.request.contextPath}
${pageContext.request.contextPath}用于解决使用相对路径时出现的问题,它的作用是取出所部署项目的名字. 如图,${pageContext.request.context ...
- RSA加密遇到的一个问题
1,最近在项目里面使用了RSA加密解密的功能 出现的异常情况是加解密时对于有中文的情况会出现乱码,导致无法正常解析参数 解决方案人认为:针对中文应该 先encode ,这样能有效的避免乱码
- Vue 插件和Preset
插件和Preset 插件 Vue CLI 使用了一套基于插件的架构 Vue CLI 使用了一套基于插件的架构.如果你查阅一个新创建项目的 package.json,就会发现依赖都是以 @vue/cli ...
- 8N - 水果
夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了 ...