当前位置: 首页 > 编程日记 > 正文

CSS 选择符

选择符 selector

样式的基本规则——样式声明与关键字

  1. 声明块中有一个或多个声明。
  2. 声明的格式是固定的,先是属性名,然后是冒号,后面再跟属性值和分号。冒号和分号后面可以有零个或多个空白。
  3. 属性值几乎都是一个关键字或以空格分隔的多个关键字。(不是每一个属性都接受多个关键字,多个关键字之间通常以空格分隔,有时使用斜线(/)或者逗号。)

注:如果声明中的属性或值有误,整个规则都将被忽略。

1. 元素选择符 element-selector

  • 为HTML文档编写样式时,选择符一般是HTML预定义的某个元素,例如p,h3,a,甚至是HTML文档自身。
    html { color: black; }h1 { color: red; }
  • 在XML中,什么都可以作为选择符,因为XML允许创建新标记语言,所以什么都可以作为元素名称。

2. 群组选择符

应用场景:把同一个样式应用到多个元素上,或者把多个样式应用到一个元素或一组元素上。

  • 将同一个样式应用到多个元素上,使用方式为:规则左边是多个选择符,之间以逗号分隔,规则右边为样式声明
    h1, h2 { color: red }
  • 将多个样式应用到一个元素或者一组元素上
    h1 { color: red; font-size: large; }h2, h3 { color: red; font-size: large; }

3. 类选择符

让类选择符起作用的方式是设定元素的class属性值。

  • 类名前有一个点号(.),后面跟类的名称,再跟着样式的声明。
    • 如果点号前面没有任何元素选择符,则意味着其为通用选择符,所有元素都可使用。
    • 如果点号前面有元素选择符,则会将该类仅可以使用在元素选择符上。
    .font-style { font-size: large; }span.font-style { color: red; }
  • class属性值可以是多个词,词之间用空格分隔。如果多个串联的类选择符包含class属性中没有的词,将无法匹配。
    // 定义样式.style1 { ... } // 样式1.style2 { ... } // 样式2.style1.style2 { ... } // 样式3,该样式使用在class属性值同时包含样式1和样式2的元素上// 使用样式<p class = "style1 otherStyle"> // 由于otherStyle未定义,该P元素只能匹配上述已经定义好的样式1<p class = "style1 style2"> // 该P元素可以匹配上述已经定义好的样式1、样式2和样式3

4. ID选择符

ID选择符以#号开头,让其起作用的方式是设定元素的ID属性值。


类选择器和ID选择器的区别

  • 类选择符可以赋予多个元素,而ID选择符在一个html文档中一般只能使用一次。
  • 与类选择符不同,ID选择符不能串联使用,即不能是以空格分隔的列表。
  • 与类选择符相比,ID选择符优先级更高。

5. 属性选择符

属性选择符大致可以分为四类:简单属性选择符、精准属性值选择符、部分匹配属性值选择符和起始值属性选择符。

5.1 简单属性选择符

如果想选择具有某个属性或者同时具有多个属性的元素,而不管属性的值是什么,可以使用简单属性选择符。

  • 例5.1.1:若想选择具有class属性的所有h1元素,为其设置样式,可以这样写:
    h1[class] { // 样式声明 }
  • 例5.1.2:若想选择文档中具有title属性的所有元素,为其设置样式,可以这样写:
    *[title] { // 样式声明 }

简单属性选择符可以基于单个属性选择元素(如例5.1.1和例5.1.2),也可以基于多个属性选择元素(见例5.1.3)。

  • 例5.1.3:若想选择同时具有href属性和title属性的a元素,可以这样写:
    a[href][title] { // 样式声明 }

5.2 精准属性值选择符

  1. 使用简单属性选择符选择具有某个或多个属性的元素,此外,还可以进一步缩小范围,只选择属性值为特定值的元素。
  2. 这种选择方式,可以为任何元素指定任何属性和值的组合。当属性和值的组合在文档中未出现时,那么选择符不选择任何元素。
  3. 这种根据属性及其值选择元素,要求属性及其值完全一致。如果属性值是由空格分隔的多个词组成,则词的顺序也要保持一致。
  • 例5.2.1:若想选择文档中指向web服务器上某个页面的超链接显示为粗体,可以这样写:
    a[href="https://www.baidu.com/"] { font-weight: bolder; }

与选择属性一样,可以把多个属性和值选择符串在一起。

  • 例5.2.2:若想把href属性值为https://www.baidu.com/,而且title属性值为test的HTML超链接显示为两倍字号,可以这样写:
    a[href="https://www.baidu.com/"][title="test"] { font-size: 200%; }
  • 例5.2.3:对下面的标记片段来说:
    <a class="class-1 class-2" ></a>

若想完全匹配属性值,则必须这样写:a[class="class-1 class-2"] { font-size: large; }

5.3 部分匹配属性值选择符

有时需要根据属性值的一部分选择元素,而不是完整的值。CSS为这种情况提供了多种选择,以不同的方式匹配属性值的子串。

  • 方式1:

    • 形式1:[foo|="bar"],说明:选择的元素有foo属性,且其值为bar本身,或者是以bar和一个英文破折号开头。
    • 示例1:以*[lang|="en"]规则为例,该规则选择lang属性值为en或者以en-开头的元素。
  • 方式2:【匹配以空格分隔的一组词中的一个】

    • 形式2:[foo~="bar"],说明:选择的元素有foo属性,且其值是包含bar的一组词
    • 示例2:以[class~="warning"]规则为例,该规则选择class属性值包含warning的元素。
  • 方式3:【匹配属性值的子串】

    • 形式3:[foo*="bar"],说明:选择的元素有foo属性,且其值包含子串bar。当我们想根据部分属性值选择元素,但是属性值不是以空格分隔的一组词时,可以使用[att*="val"]形式匹配出现在属性值内部任何位置的子串。
  • 方式4:【匹配属性值开头的子串】

    • 形式4:[foo^="bar"],说明:选择的元素有foo属性,且其值是以bar开头。
  • 方式5:【匹配属性值结尾的子串】

    • 形式5:[foo$="bar"],说明:选择的元素有foo属性,且其值是以bar结尾。

在理解后代选择符之前,先理解一下文档结构。

  1. 在文档的层次结构中,如果一个元素的位置直接在另一个元素的上方,那么前者是后者的父元素,后者是前者的子元素。
  2. 父元素和子元素是祖辈元素和后代元素的特例。两者之间是由区别的:在树状视图中,如果两个元素所在的层级是连续的,那么它们之间是父子关系;如果两个元素之间跨两个层级以上,它们之间是祖辈和后代之间的关系,而不是父子关系(子元素也是后代,父元素也是祖辈)。

6. 后代选择符(descendant selector)/上下文选择符(contextual selector)

在后代选择符中,规则中的选择符由两个或多个空格分隔的选择符构成。选择符之间的空格是一种连接符,如果从右向左读,空格连接符可以理解为“在内部”“是其一部分”或者“是其后代”。

注意:后代选择符中,两个元素之间的层级间隔可以是无限的。

6.1 选择子元素(直接子代)

选择一个元素的子元素(直接子代),可以使用子代连接符,即大于号(>)。

示例:

    规则:h1 > strong { color: red; } 这个规则把h1元素的直接子代元素-strong元素显示为红色。上述规则会把第一个h1中的strong元素显示为红色,第二个则不受影响。<h1>This is <strong> very </strong> important.</h1><h1>This is <em> really <strong> very </strong></em> important.</h1>

6.2 选择紧邻同胞元素

  1. 若想选择同一个父元素中紧跟在一个元素后面的一个元素,要使用紧邻同胞连接符,即一个加号(+)。
  2. 紧邻同胞元素,即两个元素紧邻且元素顺序与文档中的这两个元素原始顺序一样,且两者同属于一个父元素。
  3. 选择紧邻同胞元素,选择的是后一个元素。

紧邻同胞的两个元素之间的文本不影响紧邻同胞连接符的作用。

6.3 选择后续同胞

Selector Level 3 引入了一个新的同胞连接符,名为一般同胞连接符。这个连接符使用波浪号(~)表示,选择一个元素后面同属一个父元素的另一个或多个元素。两个元素不一定非得是紧邻同胞。


7. 伪类选择符

伪类选择符可以为文档中不一定真实存在的结构指定样式,或者为某些元素(甚至是文档本身)的特定状态赋予幽灵类。

7.1 拼接伪类

CSS允许把伪类拼接(串联)在一起。
例如,可以把有鼠标悬停其上的未访问链接显示为红色,把有鼠标悬停其上的已访问链接显示为红褐色:

    a:link:hover { color: red; }a:visited:hover { color: maroon; }

拼接伪类的顺序没什么关系,a:hover:linka:link:hover效果一样。

注意:不可拼接相互排斥的伪类。

7.2 结构伪类

伪类大多数都是结构上的,即它们指代文档中的标记结构。所有伪类都是以一个冒号(:)开头,后面跟着一个词,而且可以出现在选择符的任何位置。

强调:伪类始终指代所依附的元素。

7.2.1 选择根元素

:root 伪类选择文档的根元素。

在HTML中,根元素始终是html。

这个选择符的真正用途体现在XML语言的样式表中,在不同的XML中,根元素有所不同。例如,RSS2.0的根元素是rss。有些XML语言甚至有多个根元素(当然不是在同一个文档中)。

7.2.2 选择空元素

使用:empty伪类可以选择没有任何子代的元素,甚至连文本节点(包括文本、空包和换行符)都没有。

7.2.3 选择唯一子代

使用:only-child伪类选择的元素的是另一个元素的唯一子元素,该伪类只匹配完全没有同胞的元素。

7.2.4 选择同胞元素中唯一的元素

使用:only-of-type伪类匹配同胞中唯一的那种元素

7.2.5 选择一个元素中的第一个和最后一个子代

  • :first-child伪类选择一个元素的第一个子元素。

    • 示例:p:first-child { font-weught: bold; }规则把一个元素中的第一个p元素显示为粗体。
  • :last-child伪类选择最后一个元素。

    • 示例1:p:last-child { font-weught: bold; }规则把一个元素中的最后一个p元素显示为粗体。
    • 示例2:p:last-child em { }规则选择一个元素中的最后一个p元素中的em元素。

上述两个伪类结合在一起的效果相当于:only-child

7.2.6 选择一个元素中的某种元素的第一个或最后一个

  • :first-of-type伪类,该伪类不应用与整个文档。
    • 示例:table:fisrt-of-type { //... }规则,该规则不是选择文档中的第一个表格,而是选择里面有表格的元素中的第一个table,跳过后面作为同胞元素的其他table元素。
  • :last-of-type伪类,从同胞元素中选择指定种类元素的最后一个。它是从同胞元素的最后一个向前搜索,直到找到指定的元素类型。

上述两个伪类结合在一起的效果相当于:only-of-type

7.2.7 选择每第n个子元素

  • :nth-child()伪类,可以在括号中填上整数,甚至是简单的代数式,选择任何想选择的元素。

    • :first-child等效于:nth-child(1)
  • :nth-last-child()伪类。

7.2.8 选择每第n个某种元素

  • :nth-of-type()
  • :nth-last-of-type()

7.3 动态伪类

除了结构伪类之外,还有一些与结构有关的伪类,不顾它们在页面渲染之后根据页面的变化而变化。

7.3.1 超链接伪类

  • :link伪类,指代用作超链接的锚记(即具有href属性),而且指向尚未访问的地址。
  • :visited伪类,指代指向已访问地址的超链接。处于安全考虑,能应用到已访问链接上的样式十分有限。
  • 示例:
    a:link { color: blue; } /* 未访问的链接显示为蓝色 */a:visited { color: red; } /* 已访问的链接显示为红色 */

对于未访问的链接,不可定义a { color: blue; }规则,因为它会应用到类似于<a>test</a>这样的占位链接上。

7.3.2 用户操作伪类

  • :focus伪类,指代当前获得输入焦点的元素,即可以接受键盘输入或以某种方式激活。
  • :hover伪类,指代鼠标指针放置其上的元素,例如鼠标指针悬停在超链接上。
  • :active伪类,指代由用户输入激活的元素,例如用户单击超链接时按下鼠标按键的那段时间。

7.4 UI状态伪类

与动态伪类紧密相关的是用户界面(user-interface,UI)状态伪类。

  • 启用和禁用UI元素

    • :enabled伪类,指代启用的用户界面元素(例如表单元素),即接受输入的元素
    • :disabled伪类,指代禁用的用户界面元素(例如表单元素),即不接受输入的元素
  • 选择状态

    • :checked伪类,指代由用户或文档默认选中的单选按钮或复选框。
    • :indeterminate伪类,指代既未选中也没有未选中的单选按钮或复选框;这个状态只能由DOM脚本设定,不能由用户设定。
  • 默认选项伪类

    • :default伪类,指代默认选中的单选按钮、复选框或选项。
  • 有效性伪类

    • :valid伪类,指代满足所有数据有效性语义的输入框。
    • :invalid伪类,指代不满足所有数据有效性语义的输入框。
  • 可选性伪类

    • :required伪类,指代必须输入的输入框,可由required属性(HTML5)指定。
    • :optional伪类,指代无需一定输入值的输入框。
  • 范围伪类

    • :in-range伪类,指代输入的值在最小值和最大值之间的输入框(最大值最小值可由HTML5的max和min属性设定)。
    • :out-of-range伪类,指代输入的值小于控件允许的最小值或者大于控件允许的最大值的输入框。

注意: :in-rangeout-of-range伪类只适用于设定了范围的元素。没有设定范围的元素,例如链接或tel类型的输入框,不能被它们中的任何一个匹配。

  • 可变性伪类
    • :read-write伪类,指代可由用户编辑的输入框。
    • :read-only伪类,指代不能由用户编辑的输入框。

7.5 :target 伪类

URL中有个片段标识符,它所指向的文档片段(在CSS中)称为目标(target)。URL片段标识符指向的目标元素可以使用:target伪类特别装饰。

例如这个URL:http://www.abcd.com/css/#target-pseudo,URL中的target-pseudo部分就是片段标识符,由#符号标记,如果对应的页面中有ID为target-pseudo的元素,那么那个元素就是片段标识符的目标。

借助:target伪类,可以突出显示文档中的任何目标元素,或者为不同的目标元素定义不同的样式。

:target伪类定义的样式在两种情况下不会应用:

  • 页面的URL中没有片段标识符。
  • 页面的URL中有片段标识符,但是文档中没有与之匹配的元素。

7.6 :lang 伪类

如果想根据文本使用的语言选择元素,可以使用:lang()伪类。在匹配方式上,:lang()伪类与|=属性选择符类似。

7.7 否定伪类

如果想选择不满足条件的元素,可以使用Selector Level 3 引入的否定伪类:not()

例如想装饰class属性不是more-info的列表项目,可以这样写:li:not(.more-info) { font-size: large; }

:not()伪类依附在伪类上,括号中是简单的选择符。

根据W3C的定义,简单的选择符指:一个类型选择符、通用选择符、属性选择符、类选择符、ID选择符或伪类。

注意: :not()伪类只能使用上述选择符中的一个选择符。


8. 伪元素选择符

伪类使用一个冒号,伪元素使用两个冒号,例如::first-line

8.1 装饰首元素

::first-letter伪元素用于装饰任何非行内元素的首字母,或者开头的标记符号和首字母(如果文本以标点符号开头)。

::first-letter伪元素最常用于实现排版效果中的“首字母大写”或“首字母下沉”。

例:p::first-letter { color: red; }规则,该规则把每一段的首字母设为红色。

8.2 装饰首行

::first-line伪元素用于装饰元素的首行文本。

注意:::first-letter::first-line伪元素的限制,只能应用到块级元素上,例如标题或段落,不能应用到行内元素。

8.3 装饰(或创建)前置和后置内容元素

使用CSS可以插入生成的内容(generated content),生成的内容可以直接使用::before::after伪元素装饰。

更多介绍请自行查阅资料。


相关文章:

CSS3快学笔记

在编写CSS3样式时&#xff0c;不同的浏览器可能需要不同的前缀。它表示该CSS属性或规则尚未成为W3C标准的一部分&#xff0c;是浏览器的私有属性&#xff0c;虽然目前较新版本的浏览器都是不需要前缀的&#xff0c;但为了更好的向前兼容前缀还是少不了的。 前缀 浏览器 -webk…

DOS批处理的字符串功能

DOS批处理的字符串功能 批处理有着具有非常强大的字符串处理能力&#xff0c;其功能绝不低于C语言里面的字符串函数集。批处理中可实现的字符串处理功能有&#xff1a;截取字符串内容、替换字符串特定字段、合并字符串、扩充字符串等功能。下面对这些功能一一进行讲解。  【 …

走进Java 7模块系统

笔者在观看过Devoxx关于Jigsaw的一段演示后&#xff0c;我很兴奋&#xff0c;觉得它应该会是针对复杂类路径版本问题和JAR陷阱等问题的解决方案。开发者最终能够使用他们所期望的任何Xalan版本&#xff0c;而无需被迫使用授权机制。不幸的是&#xff0c;通往更加有效的模块系统…

Chrome浏览器控制台报错NET::ERR_SSL_OBSOLETE_VERSION

问题描述&#xff1a;Chrome浏览器控制台报错NET::ERR_SSL_OBSOLETE_VERSION 原因&#xff1a; 服务器使用了TLS1.0 或 TLS1.1 版本&#xff0c;没有使用 TLS1.2 解决方法&#xff1a; 地址栏访问&#xff1a;chrome://flags/#legacy-tls-enforced&#xff1b;将Enforce depr…

关于矩形连线 (rectangle connect)

矩形连线问题&#xff0c;就是在两个矩形之间建立带可曲折的无覆盖的连线&#xff08;连线不覆盖图形&#xff09;&#xff0c;我的方法是这样的&#xff1a;CPoint pts[5];//输出连线的点列表int nPts;//输出点列表中点的数量void GetRectConnectLines&#xff08;CPoint * pt…

前端去掉空格的方法

/*** 去掉前端左右两边的字符空格* param str* 字符串* */function trim(str){//删除左右两端的空格return str.replace(/(^\s*)|(\s*$)/g, "");} /*** 去掉左边的空格* param str* returns*/function ltrim(str){ //删除左边的空格return str.replace(/(^\s*)/g,&q…

ARM 环境下使用azure powershell 从远程blob中拉去vhd 并创建虚拟机

最近需要从指定公共访问的blob中复制vhd到自己的订阅存储账户&#xff0c;并使用vhd创建AZURE ARM虚拟机(非经典版)&#xff0c;而且在portal.azure.cn中无法实现虚拟机映像创建等功能&#xff0c;于是自己使用azure powershell写了一个简单的脚本&#xff0c; 前期准备&#x…

读懂电脑系统(一)

addins文件夹这是系统附加文件夹&#xff0c;用来存放系统附加功能的文件。AppPatch文件夹这是应用程序修补备份文件夹&#xff0c;用来存放应用程序的修补文件。Config文件夹这是系统配置文件夹&#xff0c;用来存放系统的一些临时配置的文件。Connection Wizard文件夹看名字就…

java压缩解压缩类实例[转]

package com.yangxiaozuo.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.Deflater; import java.util.zip.Inflater; /** * ZLib压缩工具 * * author 梁栋 * version 1.0 * since 1.0 */ public abstract class ZL…

前端应用打印控件

前端应用打印控件1. Lodop打印控件1.1 官网地址1.2 控件介绍1.3 控件安装程序下载1.4 控件使用1.4.1 使用示例1.4.1.1 官网提供的使用示例1.4.1.2 ng-alain提供的Lodop打印示例1.4.2 打印说明2. Hiprint打印插件2.1 官网地址2.2 插件介绍2.3 插件下载2.4 插件使用相关网址1. Lo…

剑指Offer——平衡二叉树

题目描述&#xff1a; 输入一棵二叉树&#xff0c;判断该二叉树是否是平衡二叉树。 分析&#xff1a; 平衡二叉树&#xff08;Self-balancing binary search tree&#xff09;又被称为AVL树&#xff08;有别于AVL算法&#xff09;&#xff0c;且具有以下性质&#xff1a;它是一…

yii2框架原生的结合框架使用的图片上传

首先我们要从model层开始写起&#xff0c;主要是为了创建验证规则&#xff0c;还有图片上传的路径以及图片的命名规则&#xff08;UploadForm.php&#xff09; 接下来我们要在控制器层写好业务逻辑&#xff0c;就是什么情况下直接在调用model层进行上传&#xff0c;一般失败的时…

Windows Server 2003 : 服务器群集

服务器群集 是一组运行 Microsoft Windows Server 2003 Enterprise Edition 或 Microsoft Windows Server 2003 Enterprise Edition 的独立的计算机系统&#xff08;称为节点&#xff09;&#xff0c;不同节点像单个系统一样协同工作&#xff0c;从而确保执行关键任务的应用程序…

初学者易上手的SSH-hibernate04 一对一 一对多 多对多

这章我们就来学习下hibernate的关系关联&#xff0c;即一对一(one-to-one)&#xff0c;一对多(one-to-many)&#xff0c;多对多(many-to-many)。这章也将是hibernate的最后一章了&#xff0c;用于初学者可以了。 首先讲述一对一:就以一个人对应一张身份证为列子。 第一步:新建表…

Python爬虫入门教程 54-100 博客园等博客网站自动评论器

爬虫背景 爬虫最核心的问题就是解决重复操作&#xff0c;当一件事情可以重复的进行的时候&#xff0c;就可以用爬虫来解决这个问题&#xff0c;今天要实现的一个基本需求是完成“博客园“ 博客的自动评论&#xff0c;其实原理是非常简单的&#xff0c;提炼一下需求 基本需求 登…

T-SQL Convert转换时间类型

关键字: sql 时间 转化 SQL中CONVERT转化函数的用法 格式: CONVERT(data_type,expression[,style]) 说明: 此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar) 相互转换的时候才用到. 例子: SELECT CONVERT(varchar(30),getdate(),101) n…

解决Lodop 8443端口找不到CLodopfuncs.js文件问题

问题描述&#xff1a; GET https://localhost:8443/CLodopfuncs.js?nameCLODOP net::ERR_CERT_COMMON_NAME_INVALID 可能原因&#xff1a; https证书问题&#xff0c;通用名称不合法&#xff0c;地址栏访问https://localhost:8443&#xff0c;如下图所示 解决方法&#…

CString工作原理和常见问题分析

关于Cstring 类 版权所有©Stevencaobenq.com2003-11-6转自&#xff1a;http://blog.csdn.net/laiyiling/archive/2004/10/05/125216.aspx 看了很多人写的程序,包括我自己写的一些代码&#xff0c;发现很大的一部分bug是关于MFC类中的CString的错误用法的.出现这种错误的原…

javascript 学习三 语句

1、if 语句 if (condition){ do something else } condition 是条件语句&#xff0c;在这里&#xff0c;condition 可以是任意表达式&#xff0c;但结果不一定就是布尔值&#xff0c;但javascript 会调用 boolean&#xff08;&#xff09; 来把结果转换成布尔值。 2、do-while …

新建本地仓库,同步远程仓场景,出现git branch --set-upstream-to=origin/master master 解决方法...

1.本地创建一个本地仓库 2.关联远程端:git remote add origin gitgithub.com:用户名/远程库名.git3.同步远程仓库到本地git pull这个时候会报错If you wish to set tracking information for this branch you can do so with:git branch --set-upstream-toorigin/<branch>…

Git npm相关命令

Git 相关命令查看用户名和密码配置用户名和密码查看git项目远程地址添加git远程仓库查看提交记录查看已有tag打标签在某次提交记录上打标签推送标签到远程推送单个指定tag到远程推送多个tag到远程2. npm相关命令2.1 设置npm源2.2 查看npm源2.3 npm清缓存查看用户名和密码 $ gi…

2009年上半年网络工程师考试下午试卷参考答案(一)

试题一&#xff08;15分&#xff09;  阅读以下说明&#xff0c;回答问题1至问题4&#xff0c;将解答填入答题纸对应的解答栏内。【说明】某公司有1个总部和2个分部&#xff0c;各个部门都有自己的局域网。该公司申请了4个C类IP地址块202.114.10.0/24~202.114.13.0/24。公司各…

创建Silverlight自定义启动画面

每一款商业的Silverlight项目&#xff0c;为了体现项目个性化&#xff0c;都会有不同的界面设计&#xff0c;项目UI设计的第一步就是创建个性的自定义启动画面&#xff0c;本文将介绍如何创建Silverlight自定义启动画面&#xff0c;也就是经常说的Splash Screen. Silverlight初…

params.success params.success(res.data)

params.success && params.success(res.data)只有success 为真&#xff0c;才执行后边的代码转载于:https://www.cnblogs.com/qq254980080/p/10619413.html

有关 drop delete truncate 问题

drop 可以删除数据库 数据表 数据表中字段 delete 删除数据表中的行 而不删除数据表 可以删除一行&#xff1a; Delete from 表 where 列名称值 或是多行&#xff1a; Delete from 表 truncate 删除数据表中数据 而不删除数据表&#xff1a; truncate table 表 三者的删除速度 …

IDEAWebstorm使用

IDEA&Webstorm使用小记录 插件 1. CodeGlance 在编辑器窗格中嵌入一个类似于Sublime中的代码小地图。使用自定义的颜色进行语法高亮&#xff0c;可以同时处理浅色和深色主题。 2. Free Mybatis plugin 3. MyBatis Log Plugin

如何用JNI技术提高Java的性能详解

阻碍Java获得广泛应用的一个主要因素是Java程序的运行效率。Java是介于解释型和编译型之间的一种语言&#xff0c;同样的程序&#xff0c;如果用编译型语言C来实现&#xff0c;其运行速度一般要比Java快一倍以上。Java具有平台无关性&#xff0c;这使人们在开发企业级应用的时候…

Jquery实战_读书笔记1—选择jQuery

近期公司积极组织我们这些开发人员学习进步&#xff0c;督促我们学习更多的技术来提高自己。为此我选择了jQuery作为我学习的方向&#xff0c;同时我也是想将我的学习心得分享给大家&#xff0c;以后我会不断的更新一系列jQuery方面的学习纪要&#xff0c;帮助大家学习。 对比了…

Python入门(一)数据类型、循环语句

脚本语言类型&#xff1a; 1.编译型语言&#xff1a;写完代码不能执行&#xff0c;需要先编译 eg&#xff1a;c、c、c# 2.解释性语言&#xff1a;不需要编译 直接执行 eg&#xff1a;python、java、php、js、go、ruby 编程工具 pycharm 1.破解方法&a…

ionic项目创建打包签名

1. 环境搭建 1.1 安装Node.js 使用node -v查看Node.js版本 1.2 安装npm 使用npm -v查看npm版本 1.3 安装ionic 使用npm install -g ionic命令&#xff0c;全局安装最新版本的ionic 使用ionic -v查看当前安装的ionic版本 1.4 安装cordova 使用npm install -g cordova命令…