获取ACAD背景色的两种方案:
- 在这种情况下,我们可以使用函数**unsigned long acedGetRGB(int color);** 使用参数 0 来获取背景颜色。
- 另一种选择是使用 acedGetCurrentColors 函数,您可以从中获取 dwGfxModelBkColor 和 dwGfxLayoutBkColor 并(取决于tilemode值)使用您需要的。
CSS 有三个非常重要的三个特性:层叠性、继承性、优先级。
通配符和继承权重为0, 标签选择器为1,类(伪类)选择器为 10, id选择器 100, 行内样式表为 1000, !important 无穷大
.CSS 层叠性口诀:长江后浪推前浪,前浪死在沙滩上。
继承性口诀:龙生龙,凤生凤,老鼠生的孩子会打洞
CSS中的继承: 子标签会继承父标签的某些样式,如文本颜色和字号。简单的理解就是:子承父业。
网页布局的核心本质: 就是利用 CSS 摆盒子
。
所谓 盒子模型:就是把 HTML 页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。 CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边框、外边距、内边距、和 实际内容
border可以设置元素的边框。边框有三部分组成:边框宽度(粗细) 边框样式 边框颜色
CSS | |
---|---|
属性 | 作用 |
---|---|
border-width | 定义边框粗细,单位是px |
border-style | 边框的样式 |
border-color | 边框颜色 |
边框样式 border-style 可以设置如下值:
demo:请给一个 200*200 的盒子,设置上边框为红色,其余边框为蓝色(提示:一定注意边框的层叠性)
HTML | |
---|---|
padding 属性用于设置内边距,即边框与内容之间的距离。
属性 | 表达意思 |
---|---|
padding:5px; | 1个值,代表上下左右都有5像素内边距 |
padding:5px 10px; | 2个值,代表上下内边距是5像素,左右内边距是10像素; |
padding:5px 10px 20px; | 3个值,代表上内边距5像素,左边内边距10像素,下内边距20像素; |
padding:5px 10px 20px 30px; | 4个值,上、右、下、左,遵循顺时针 |
可以把display改成block和inline看看效果。
在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了。
border-radius 属性用于设置元素的外边框圆角。
语法:
CSS | |
---|---|
CSS3 中新增了盒子阴影,我们可以使用 box-shadow 属性为盒子添加阴影。
语法:
CSS | |
---|---|
注意:
1.默认的是外阴影(outset), 但是不可以写这个单词,否则造成阴影无效 2.盒子阴影不占用空间,不会影响其他盒子排列。
在 CSS3 中,我们可以使用 text-shadow 属性将阴影应用于文本。
语法:
CSS | |
---|---|
工具代码:
C++ | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
|
前后端交互的时候,数据的ID字段采用的雪花ID,Long类型,返回给前端时,由于数值过大,会导致精度丢失,后面几位会变成0,这时候就需要把ID字段转成String类型的返回给前端页面。
采用@JSONField注解,在ID字段上加上如下的注解,即可返回前端字符串的ID数据
Java | |
---|---|
Java
缺点:很明显,每个返回实体 model,只要有ID,就需要添加注解,太过于繁琐
在全局配置中,将Long类型的字段转成String类型
Java
缺点:也很明显,后端返回的数据,只要是Long类型的字段,都会被转成String返回,导致扩大了转换范围
利用FastJson内置的SerializeFilter,有很多,如下
这里主要用到的SerializeFilter为ValueFilter,如下:
Java
很明显,这个处理方式是最好的,这里是将ID字段转成String,需要转换其他字段时,只需要新增相应的逻辑判断即可
前端用String类型的雪花ID保持精度,后端及数据库继续使用Long(BigINT)类型不影响数据库查询执行效率。
剩下的问题就是:在Spring Boot应用中,使用Jackson进行JSON序列化的时候怎么将Long类型ID转成String响应给前端。方案如下:
利用现成的算法https://github.com/sniper00/snowflake-cpp github开源算法
A CPP port of Twitter's Snowflake id generation algorithm
C++ | |
---|---|
CPP
C++ | |
---|---|
CPP
C++ | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
|
学习目标:
能够使用精灵图
能够使用字体图标
能够写出 CSS 三角
能够写出常见的 CSS 用户界面样式
能够说出常见的布局技巧
一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。
为什么使用精灵图(目的):
为了有效地减少服务器接收和发送请求的次数,提高**页面的**加载速度,出现了 CSS 精灵技术(也称 CSS Sprites、CSS 雪碧)。
核心原理:
将网页中的一些小背景图像整合到一张大图中 ,这样服务器只需要一次请求就可以了。
精灵图举例:
使用精灵图核心:
使用精灵图核心总结:
精灵图主要**针对于小的背景图片**使用。
主要借助于背景位置来实现---background-position 。
一般情况下精灵图都是**负值**。(千万注意网页中的坐标: x轴右边走是正值,左边走是负值, y轴同理。)
结构
HTML | |
---|---|
样式
字体图标使用场景: 主要用于显示网页中通用、常用的一些小图标。
精灵图是有诸多优点的,但是缺点很明显。
1.图片文件还是比较大的。
2.图片本身放大和缩小会失真。
3.一旦图片制作完毕想要更换非常复杂。
此时,有一种技术的出现很好的解决了以上问题,就是**字体图标 iconfont**。
字体图标**可以为前端工程师提供一种方便高效的图标使用方式,**展示的是图标,本质属于字体。
轻量级:一个图标字体要比一系列的图像要小。一旦字体加载了,图标就会马上渲染出来,减少了服务器请求
总结:
1.如果遇到一些结构和样式比较简单的小图标,就用字体图标。
2.如果遇到一些结构和样式复杂一点的小图片,就用精灵图。
使用步骤
字体图标是一些网页常见的小图标,我们直接网上下载即可。 因此使用可以分为:
1.字体图标的下载
2.字体图标的引入 (引入到我们html页面中)
3.字体图标的追加 (以后添加新的小图标)
推荐下载网站:
IcoMoon 成立于 2011 年,推出了第一个自定义图标字体生成器,它允许用户选择所需要的图标,使它们成一字型。该字库内容种类繁多,非常全面,唯一的遗憾是国外服务器,打开网速较慢。
这个是阿里妈妈 M2UX 的一个 iconfont 字体图标字库,包含了淘宝图标库和阿里妈妈图标库。可以使用 AI制作图标上传生成。 重点是,免费!
下载完毕之后,注意原先的文件不要删,后面会用。
不同浏览器所支持的字体格式是不一样的,字体图标之所以兼容,就是因为包含了主流浏览器支持的字体文件。
1).TureType( .ttf )格式.ttf字体是Windows和Mac的最常见的字体,支持这种字体的浏览器有IE9+、Firefox3.5+、Chrome4+、Safari3+、Opera10+、iOS Mobile、Safari4.2+;
2).Web Open Font Format( .woff )格式woff字体,支持这种字体的浏览器有IE9+、Firefox3.5+、Chrome6+、Safari3.6+、Opera11.1+;
3).Embedded Open Type( .eot )格式.eot字体是IE专用字体,支持这种字体的浏览器有IE4+;
4).SVG( .svg )格式.svg字体是基于SVG字体渲染的一种格式,支持这种字体的浏览器有Chrome4+、Safari3.1+、Opera10.0+、iOS Mobile Safari3.2+;
2.在 CSS 样式中全局声明字体: 简单理解把这些字体文件通过css引入到我们页面中。
一定注意字体文件路径的问题
注意:务必保证 这个字体和上面@font-face里面的字体保持一致
如果工作中,原来的字体图标不够用了,我们需要添加新的字体图标到原来的字体文件中。
把压缩包里面的 selection.json 从新上传,然后选中自己想要新的图标,从新下载压缩包,并替换原来的文件即可。
网页中常见一些三角形,使用 CSS 直接画出来就可以,不必做成图片或者字体图标。
一张图, 你就知道 CSS 三角是怎么来的了, 做法如下:
CSS | |
---|---|
什么是界面样式
所谓的界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。
设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状。
给表单添加 outline: 0; 或者 outline: none; 样式之后,就可以去掉默认的蓝色边框。
实际开发中,我们文本域右下角是不可以拖拽的。
vertical-align 属性应用
CSS 的 vertical-align 属性使用场景: 经常用于设置图片或者表单(行内块元素)和文字垂直对齐。
官方解释: 用于设置一个元素的**垂直对齐方式**,但是它只针对于行内元素或者行内块元素有效。
语法:
CSS | |
---|---|
图片、表单都属于行内块元素,默认的 vertical-align 是基线对齐。
此时可以给图片、表单这些行内块元素的 vertical-align 属性设置为 middle 就可以让文字和图片垂直居中对齐了。
bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐。
主要解决方法有两种:
1.给图片**添加 **vertical-align:middle | top| bottom 等。 (提倡使用的)
2.把图片转换为块级元素 display: block;
单行文本溢出显示省略号--必须满足三个条件:
CSS | |
---|---|
多行文本溢出显示省略号,有较大兼容性问题,适合于webKit浏览器或移动端(移动端大部分是webkit内核)
CSS | |
---|---|
更推荐让后台人员来做这个效果,因为后台人员可以设置显示多少个字,操作更简单。
巧妙利用一个技术更快更好的布局:
1.让每个盒子margin 往左侧移动 -1px 正好压住相邻盒子边框
2.鼠标经过某个盒子的时候,提高当前盒子的层级即可(如果没有有定位,则加相对定位(保留位置),如果有定位,则加z-index)
效果
布局示意图
巧妙运用浮动元素不会压住文字的特性
页码在页面中间显示:
不同浏览器对有些标签的默认值是不同的,为了消除不同浏览器对HTML文本呈现的差异,照顾浏览器的兼容,我们需要对CSS 初始化
简单理解: CSS初始化是指重设浏览器的样式。 (也称为CSS reset)
每个网页都必须首先进行 CSS初始化。
这里我们以 京东CSS初始化代码为例。
Unicode编码字体:
把中文字体的名称用相应的Unicode编码来代替,这样就可以有效的避免浏览器解释CSS代码时候出现乱码的问题。
比如:
黑体 \9ED1\4F53 宋体 \5B8B\4F53 微软雅黑 \5FAE\8F6F\96C5\9ED1
今日目标
- 能够说出 为什么要用定位
- 能够说出 定位的 4 种分类
- 能够说出 4 种定位各自的特点
- 能够说出 为什么常用子绝父相布局
- 能够写出 淘宝轮播图布局
- 能够说出 显示隐藏的 3 种方式以及区别
我们先来看一个效果,同时思考一下**用标准流或浮动能否实现类似的效果**?
场景1: 某个元素可以自由的在一个盒子内移动位置,并且压住其他盒子.
场景2:当我们滚动窗口的时候,盒子是固定屏幕某个位置的。
结论**:要实现以上效果,**标准流 或 浮动都无法快速实现
所以:
1.浮动可以让多个块级盒子一行没有缝隙排列显示, 经常用于横向排列盒子。
2.定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中某个位置,并且可以压住其他盒子。
定位:将盒子**定**在某一个位置,所以**定位也是在摆放盒子, 按照定位的方式移动盒子**
定位也是用来布局的,它有两部分组成:
定位 = 定位模式 + 边偏移
定位模式 用于指定一个元素在文档中的定位方式。**边偏移**则决定了该元素的最终位置。
边偏移 就是定位的盒子移动到最终位置。有 top、bottom、left 和 right 4 个属性。
边偏移属性 | 示例 | 描述 |
---|---|---|
top | top: 80px | 顶端**偏移量,定义元素相对于其父元素**上边线的距离。 |
bottom | bottom: 80px | 底部**偏移量,定义元素相对于其父元素**下边线的距离。 |
left | left: 80px | 左侧**偏移量,定义元素相对于其父元素**左边线的距离。 |
right | right: 80px | 右侧**偏移量,定义元素相对于其父元素**右边线的距离 |
定位的盒子有了边偏移才有价值。 一般情况下,凡是有定位地方必定有边偏移。
在 CSS 中,通过 position
属性定义元素的**定位模式**,语法如下:
定位模式是有不同分类的,在不同情况下,我们用到不同的定位模式。
定位模式决定元素的定位方式 ,它通过 CSS 的 position 属性来设置,其值可以分为四个:
值 | 语义 |
---|---|
static | **静态**定位 |
relative | **相对**定位 |
absolute | **绝对**定位 |
fixed | **固定**定位 |
静态定位**是元素的**默认**定位方式,**无定位的意思。它相当于 border 里面的none,静态定位static,不要定位的时候用。
语法:
静态定位 按照标准流特性摆放位置,它没有边偏移。
静态定位在布局时我们几乎不用的
相对定位的特点:(务必记住)
1.它是相对于自己原来的位置来移动的(移动位置的时候参照点是自己原来的位置)。
2.**原来**在标准流的**位置**继续占有,后面的盒子仍然以标准流的方式对待它。
因此,相对定位并没有脱标。它最典型的应用是给绝对定位当爹的。。。
效果图:
**绝对定位**是元素在移动位置的时候,是相对于它**祖先元素**来说的(拼爹型)。
语法:
完全脱标 —— 完全不占位置;
父元素没有定位,则以**浏览器**为准定位(Document 文档)。
父元素要有定位
元素将依据最近的已经定位(绝对、固定或相对定位)的父元素(祖先)进行定位。
1.如果**没有祖先元素**或者**祖先元素没有定位**,则以浏览器为基准定位(Document 文档)。
2.如果祖先元素有定位(相对、绝对、固定定位),则以最近一级的有定位祖先元素为参考点移动位置。
3.绝对定位**不再占有原先的位置**。所以绝对定位是脱离标准流的。(脱标)
弄清楚这个口诀,就明白了绝对定位和相对定位的使用场景。
这个**“子绝父相”太重要了,是我们学习定位的**口诀,是定位中最常用的一种方式这句话的意思是:子级是绝对定位的话,父级要用相对定位。
因为绝对定位的盒子是拼爹的,所以要和父级搭配一起来使用。
①子级绝对定位,不会占有位置,可以放到父盒子里面的任何一个地方,不会影响其他的兄弟盒子。
②父盒子需要加定位限制子盒子在父盒子内显示。
③父盒子布局时,需要占有位置,因此父亲只能是相对定位。
这就是子绝父相的由来,所以**相对定位经常用来作为绝对定位的父级**。
总结: 因为父级需要占有位置,因此是相对定位, 子盒子不需要占有位置,则是绝对定位
当然,子绝父相不是永远不变的,如果父元素不需要占有位置,**子绝父绝**也会遇到。
疑问:为什么在布局时,**子级元素**使用**绝对定位**时,**父级元素**就要用**相对定位**呢?
观察下图,思考一下在布局时,**左右两个方向的箭头图片**以及**父级盒子**的定位方式。
分析:
结论:父级要占有位置,子级要任意摆放,这就是**子绝父相**的由来。
固定定位**是元素**固定于浏览器可视区的位置。(认死理型) 主要使用场景: 可以在浏览器页面滚动时元素的位置不会改变。
语法:
1.以浏览器的可视窗口为参照点移动元素。
2.固定定位**不在占有原先的位置**。
固定定位也是**脱标**的,其实**固定定位也可以看做是一种特殊的绝对定位**。(认死理型)
完全脱标—— 完全不占位置;
浏览器可视窗口 + 边偏移属性
来设置元素的位置;固定定位举例:
提示:IE 6 等低版本浏览器不支持固定定位。
**粘性定位**可以被认为是相对定位和固定定位的混合。 Sticky 粘性的
语法:
1.以浏览器的可视窗口为参照点移动元素(固定定位特点)
2.粘性定位占有原先的位置(相对定位特点)
3.必须添加 top 、left、right、bottom **其中一个**才有效
跟页面滚动搭配使用。 兼容性较差,IE 不支持。
定位模式 | 是否脱标 | 移动位置 | 是否常用 |
---|---|---|---|
static 静态定位 | 否 | 不能使用边偏移 | 很少 |
relative 相对定位 | 否 (占有位置) | 相对于自身位置移动 | 基本单独使用 |
absolute绝对定位 | 是(不占有位置) | 带有定位的父级 | 要和定位父级元素搭配使用 |
fixed 固定定位 | 是(不占有位置) | 浏览器可视区 | 单独使用,不需要父级 |
sticky 粘性定位 | 否 (占有位置) | 浏览器可视区 | 当前阶段少 |
一定记住 相对定位、固定定位、绝对定位 两个大的特点: 1. 是否占有位置(脱标否) 2. 以谁为基准点移动位置。
学习定位重点学会子绝父相。
注意:
边偏移**需要和**定位模式**联合使用,**单独使用无效;
top
和 bottom
不要同时使用;left
和 right
不要同时使用。
li
中包含 一个课程图片,课程介绍文字信息,还有hot的小图标;课堂练习:模拟老师的随堂案例完成**哈根达斯**案例(5 分钟)。
结构修改:
HTML | |
---|---|
样式修改:
小算法:
1.让固定定位的盒子 left: 50%. 走到浏览器可视区(也可以看做版心) 的一半位置。
2.让固定定位的盒子 margin-left: 版心宽度的一半距离。 多走 版心宽度的一半位置
就可以让固定定位的盒子**贴着版心右侧对齐**了。
案例效果:
在使用**定位**布局时,可能会**出现盒子重叠的情况**。此时,可以使用 z-index 来控制盒子的前后次序 (z轴)
语法:
z-index
的特性如下:
属性值:正整数、负整数**或 **0,默认值是 0,数值越大,盒子越靠上;
注意:z-index
只能应用于**相对定位**、绝对定位**和**固定定位**的元素,其他**标准流、**浮动**和**静态定位**无效。
z-index
层叠等级属性可以**调整盒子的堆叠顺序**。如下图所示:案例演示:堆叠顺序。
注意:加了**绝对定位/固定定位的盒子**不能通过设置
margin: auto
设置**水平居中**。但是可以通过以下计算方法实现水平和垂直居中,可以按照下图的方法:
left: 50%;
:让**盒子的左侧**移动到**父级元素的水平中心位置**;margin-left: -100px;
:让盒子**向左**移动**自身宽度的一半**。盒子居中定位示意图
绝对定位和固定定位也和浮动类似。
1.行内元素添加绝对或者固定定位,可以直接设置高度和宽度。
2.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小。
前面我们讲过, display 是 显示模式, 可以改变显示模式有以下方式:
所以说, 一个行内的盒子,如果加了**浮动**、固定定位**和**绝对定位,不用转换,就可以给这个盒子直接设置宽度和高度等。
浮动元素、**绝对定位(固定定位)**元素的都不会触发外边距合并的问题。 (我们以前是用padding border overflow解决的)
也就是说,我们给盒子改为了浮动或者定位,就不会有垂直**外边距合并的问题**了。
浮动元素不同,只会压住它下面标准流的盒子,但是不会压住下面标准流盒子里面的文字(图片)
但是绝对定位(固定定位) 会压住下面标准流所有的内容。
浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的。 文字会围绕浮动元素
大盒子我们类名为: tb-promo 淘宝广告
里面先放一张图片。
左右两个按钮 用链接就好了。 左箭头 prev 右箭头 next
左按钮样式(border-radius:左上,右上,右下,左下),
右按钮定位,提取左右按钮共同的样式代码(并集选择器)
中间长方形椭圆 ul的定位(水平居中,离底部15px)
长方形需要五个小圆点,ul无序列表,li浮动,椭圆中小圆点的样式
圆角矩形可以为4个角分别设置圆度, 但是是有顺序的
Text Only | |
---|---|
CSS | |
---|---|
CSS | |
---|---|
还是遵循的顺时针。
HTML | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
|
通过盒子模型,清楚知道大部分html标签是一个盒子。
通过CSS浮动、定位 可以让每个盒子排列成为网页。
一个完整的网页,是标准流、浮动、定位一起完成布局的,每个都有自己的专门用法。
可以让盒子上下排列或者左右排列,垂直的块级盒子显示就用标准流布局。
可以让多个块级元素一行显示或者左右对齐盒子,多个块级盒子水平显示就用浮动布局
定位最大的特点是有层叠的概念,就是可以让多个盒子前后叠压来显示。如果元素自由在某个盒子内移动就用定位布局。
让一个元素在页面中消失或者显示出来
类似网站广告,当我们点击关闭就不见了,但是我们重新刷新页面,会重新出现!
特点: display 隐藏元素后,**不再占**有原来的位置。
后面应用及其广泛,搭配 JS 可以做很多的网页特效。实际开发场景:
配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛
特点:visibility 隐藏元素后,继续占有原来的位置。(停职留薪)
如果隐藏元素想要原来位置, 就用 visibility:hidden
如果隐藏元素不想要原来位置, 就用 display:none (用处更多 重点)
属性值 | 描述 |
---|---|
visible | 不剪切内容也不添加滚动条 |
hidden | 不显示超过对象尺寸的内容,超出的部分隐藏掉 |
scroll | 不管超出内容否,总是显示滚动条 |
auto | 超出自动显示滚动条,不超出不显示滚动条 |
实际开发场景:
清除浮动
属性 | 区别 | 用途 |
---|---|---|
display 显示 (重点) | 隐藏对象,不保留位置 | 配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛 |
visibility 可见性 (了解) | 隐藏对象,保留位置 | 使用较少 |
overflow 溢出(重点) | 只是隐藏超出大小的部分 | 1. 可以清除浮动 2. 保证盒子里面的内容不会超出该盒子范围 |
1.练习元素的显示与隐藏
2.练习元素的定位
原先半透明的黑色遮罩看不见, 鼠标经过 大盒子,就显示出来。
遮罩的盒子不占有位置, 就需要用绝对定位 和 display 配合使用。
在 CSS 中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。
后代选择器又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
Bash | |
---|---|
上述语法表示选择元素 1 里面的所有元素 2
(后代元素)。
例如:
Bash | |
---|---|
子元素选择器(子选择器)只能选择作为某元素的最近一级子元素。简单理解就是选亲儿子元素
.
语法:
Bash | |
---|---|
上述语法表示选择元素1 里面的所有直接后代(子元素) 元素2。
例如:
Bash | |
---|---|
亲儿子
,其孙子、重孙之类都不归他管. 你也可以叫他 亲儿子选择器并集选择器
是各选择器通过英文逗号(,)连接而成,任何形式的选择器都可以作为并集选择器的一部分。
例如:
Bash | |
---|---|
伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover 、 :first-child 。
因为伪类选择器很多,比如有链接伪类、结构伪类等,所以这里先给大家讲解常用的链接伪类选择器。
链接伪类选择器实际工作开发中的写法:
HTML | |
---|---|
:focus 伪类选择器用于选取获得焦点的表单元素。 焦点就是光标,一般情况 类表单元素才能获取,因此这个选择器也主要针对于表单元素来说。
选择器 | 作用 | 特征 | 使用情况 | 隔开符号及用法 |
---|---|---|---|---|
后代选择器 | 用来选择后代元素 | 可以是子孙后代 | 较多 | 符号是空格.nav a |
子代选择器 | 选择最近一级元素 | 只能选亲儿子 | 较少 | 符号是大于 .nav >p |
并集选择器 | 选择某些相同样式的元素 | 可以用于集体申明 | 较多 | 符号是逗号 .nav,.header |
链接伪类选择器 | 选择不同状态的链接 | 选择不同状态的链接 | 较多 | 重点记住a{}和a:hover 实际开发的写法 |
:focus选择器 | 选择获得光标的表单 | 选择获得光标的表单 | 较少 | input:focus 记住这个写法 |
C++ | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
|
CPP
具体调用函数为:
CPP
ftpmanage.h
CPP
ftpmanage.cpp
C++ | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 |
|