CSS-属性&&选择器

CSS-属性&&选择器,第1张

CSS选择器、CSS属性

style写在head中间,type="text/css"可以不用写,默认就是这个。

规定文字样式、粗细、大小、字体的属性

1、字体不存在用户电脑上时:

不处理时,使用用户电脑系统默认字体

处理:font-family:“不存在的字体”,"备选字体";--设置备选字体,可设置多个备选字体

2、一串字符串既有中文,又有英文时,如何设置两种字体

英文字体是中文字体的子集。意思是:英文字体不能处理中文,中文字体可以处理英文

文本装饰、文本对齐,文本缩进的属性

文本装饰-文字的下划线,中划线等

文本对齐:

文本缩进:

格式:

p{

font:20px,"楷体"

}

标签选择器选中的是页面中所有的该标签

作用:根据指定的id名称找到对应的标签,然后设置属性。(标签选择器选中的是全部的同类标签)

第一步:给需要设置的标签设置id,

第二步:

注意:

1、id在同一页面是唯一的

2、id名是有规范的,只能是字母,数字和下划线,不能使用数字开头,不能使用HTML的标签名

3、如果仅仅是为了设置样式,不需要使用id,而是使用类选择器,id是留给js使用的。

根据指定的类名称找到对应的标签,然后设置属性

第一步:给需要设置的标签设置className,

第二步:

注意:

1、className是可以重复的

2、className名是有规范的,只能是字母,数字和下划线,不能使用数字开头,不能使用标签名

3、如果仅仅是为了设置样式,不需要使用id,而是使用类选择器,id是留给js使用的。

4、同一个HTML变迁可以有多个classname

1、id使用“,”class使用#

2、class相当于人名,所以同一个页面上的HTML标签可以有一样的className;

id相当于身份z,所以同一个页面上的HTML标签不可以有一样的id;

3、class相当于人名,所以,一个HTML标签可以有多个Class

id相当于身份z,所以,一个HTML标签只能有一个id

4、一般情况下设置样式,使用class;如果需要js配合,使用id

格式:

先祖位置可以是HTML标签,可以是class名,可以是id

后代位置可以是HTML标签,可以是class名,可以是id

可以随意组合

只会查找直接子元素

格式:

1、都可以使用HTML标签、id名、class名

1、后代使用空格,子使用>

2、后代可以选取指定标签的所有特定标签,包括子、孙;而子只能选取指定标签的特定子标签

定义:两个选择器相交的部分

格式:

选择器1选择器2{

}

选择器1和选择器2之间没有任何符号,没有空格,没有>

选择器1和选择器2之间有逗号。

相邻:选择器1+选择器2,给紧跟着选择器1后面的选择器2设置样式

通用:选择器1~选择器2,给选择器1后面的所有选择器2设置样式

CSS3中新增的选择器最具代表性的就是序选择器

1同级别的第几个

:first-child 选中同级别中的第一个标签

:last-child 选中同级别中的最后一个标签

:nth-child(n) 选中同级别中的第n个标签n的值可以是数值,可以是“odd”、“even”,也可以是表达式,比如xn+y

:nth-last-child(n) 选中同级别中的倒数第n个标签

:only-child 选中父元素中唯一的标签

注意点: 不区分类型

2同类型的第几个

:first-of-type 选中同级别中同类型的第一个标签

:last-of-type 选中同级别中同类型的最后一个标签

:nth-of-type(n) 选中同级别中同类型的第n个标签

:nth-last-of-type(n) 选中同级别中同类型的倒数第n个标签

:only-of-type 选中父元素中唯一类型的某个标签

| [ attribute ] | [target] | 选择带有 target 属性所有元素。 | 2 |

| [ attribute = value ] | [target=_blank] | 选择 target="_blank" 的所有元素。 | 2 |

| [ attribute ~= value ] | [title~=flower] | 选择 title 属性包含单词 "flower" 的所有元素。 | 2 |

| [ attribute |= value ] | [lang|=en] | 选择 lang 属性值以 "en" 开头的所有元素。 | 2 |

| [ attribute ^= value ] | a[src^=">

那么可以得到:

let p = documentgetElementById('a');

let arr = pchildNodes;

可以使用jQuery的children方法来获取某个元素下的所有子元素。

工具原料:编辑器、浏览器

1、使用children方法可以获得选择器下的所有子元素,代码实例如下:

<!DOCTYPE html>

<html>

<head>

<script type="text/javascript" src="/jquery/jqueryjs"></script>

<style>

  body { font-size:16px; font-weight:bolder; }

  p { margin:5px 0; }

</style>

</head>

<body>

  <div>

    <span>Hello</span>

    <p class="selected">Hello Again</p>

    <div class="selected">And Again</div>

    <p>And One Last Time</p>

  </div>

<script>$("div")children("selected")css("color", "blue");</script>

</body>

</html>

2、运行的结果是找到类名为 "selected" 的所有 div 的子元素,并将其设置为蓝色,结果如下:

CSS 后代选择器和CSS 子元素选择器都属于派生选择器的范畴,它们是通过依据元素在其位置的上下文关系来定义样式,可以使标记更加简洁。

其中,CSS 后代选择器(descendant selector)又称为包含选择器,用于选择作为某元素后代的元素。代码中选择器"div a"指的是页面中<div>元素下的所有<a>元素,在没有给第二个<div>应用选择器"niubi"之前,页面上所有的<a>元素都应该显示棕色。如图:

没有给第二个div应用样式

CSS子元素选择器用于选择指定元素的第一代子元素。代码中"niubi>a"会选取设置了"class=niubi"样式的元素的直接子元素<a>,所以第一个<a>元素的颜色发生了变化。而<p>元素中包含的<a>并不是设置了"class=niubi"样式的<div>元素的直接子元素,所以颜色不会发生变化。如图:

第二个div应用样式niubi

后代选择器和子元素选择器的区别:

子元素选择器(child selector)通过“>”进行选择,仅是指它的直接后代(子元素的第一代后代),而后代选择器是通过空格来进行选择,作用于所有子后代元素。

id:指定标签的唯一标识,定位到页面上唯一的元素。

使用场景: 使用#name定义(name为id名,可任意取名),使用id="name"调用,其优先级高于类选择器,一个标签只能有一个id且每个id只能使用一次,多用于页面分块的块级标签上。

class :类选择器,指定标签的类名,定位到页面上某一类的元素 。

使用场景:使用name定义(name为类名,可任意取名),使用class="name"调用,一个标签可以有多个类且同一个类可以用到不同的标签上,多用于多个标签样式相似或完全相同时。

{} / a=0 b=0 c=0 d=1 -> 0,0,0,0 /

p {} / a=0 b=0 c=0 d=1 -> 0,0,0,1 /

a:hover {} / a=0 b=0 c=1 d=1 -> 0,0,1,1 /

ul li {} / a=0 b=0 c=0 d=2 -> 0,0,0,2 /

ul ol+li {} / a=0 b=0 c=0 d=3 -> 0,0,0,3 /

h1+input[type=hidden]{} / a=0 b=0 c=1 d=2 -> 0,0,1,1 /

ul ol liactive {} / a=0 b=0 c=1 d=3 -> 0,0,1,3 /

#ct box p {} / a=0 b=1 c=1 d=1 -> 0,1,1,1 /

div#header:after {} / a=0 b=1 c=0 d=2 -> 0,1,0,2 /

style="" / a=1 b=0 c=0 d=0 -> 1,0,0,0 /

先比较a,a大的权重最大,再依次比较b,c,d

#header{ }

id选择器,匹配特定id为header的元素

header{ }

类选择器,匹配class包含header的元素

header logo{ }

后代选择器,匹配class为header元素所有的后代(不只是子元素、子元素向下递归)

calss为logo的元素

headermobile{ }

匹配class既有header又有logo的元素

header p, header h3{ }

同时匹配class为header所有后代元素p和class为header所有后代元素h3

#header nav>li{ }

匹配id为header元素所有后代中calss为nav的所有直接子元素li

#header a:hover{ }

匹配id为header所有后代中鼠标悬停其上的a元素

#header logo~p{ }

匹配id为header所有后代中class为logo之后的同级元素p(无论直接相邻与否)

#header input[type="text"]{ }

匹配id为header所有后代中属性type值为text的元素

n的取值

1,2,3,4,5

2n+1, 2n, 4n-1

odd, even

<style> item1:first-child{ color: red; } item1:first-of-type{ background: blue; } </style> <div class="ct"> <p class="item1">aa</p> <h3 class="item1">bb</h3> <h3 class="item1">ccc</h3> </div>

1、类别选择器

类选择器根据类名来选择,前面以“”来标志。

示例:

demoDiv{

color:#FF0000;

}

2、标签选择器

一个完整的HTML页面是有很多不同的标签组成,而标签选择器,则是决定哪些标签采用相应的CSS样式。

在stylecss文件中对p标签样式的声明如下:

p{

font-size:12px;

background:#900;

color:090;

}

3、ID选择器

ID 选择器可以为标有特定 ID 的 HTML 元素指定特定的样式。 根据元素ID来选择元素,具有唯一性,这意味着同一id在同一文档页面中只能出现一次。

前面以”#”号来标志,在样式里面可以这样定义:

#demoDiv{

color:#FF0000;

}

4、后代选择器

后代选择器也称为包含选择器,用来选择特定元素或元素组的后代,将对父元素的选择放在前面,对子元素的选择放在后面,中间加一个空格分开。

<style>

fatherchild{

color:#0000CC;

}

</style>

<p class="father">

黑色

<label class="child">蓝色

<b>也是蓝色</b>

</label>

</p>

5、子选择器

请注意这个选择器与后代选择器的区别,子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一个后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。

我们看下面的代码:

Example Source Code

CSS:

#links a {color:red;}

#links > a {color:blue;}

HTML:

<p id="links">

<a href="#">HTML中文网</a>>

<span><a href="#">CSS布局实例</a></span>

<span><a href="#">CSS教程</a></span>

</p>

6、伪类选择器

有时候还会需要用文档以外的其他条件来应用元素的样式,比如鼠标悬停等。这时候我们就需要用到伪类了。以下是链接应用的伪类定义。

a:link{

color:#999999;

}

a:visited{

color:#FFFF00;

}

a:hover{

color:#006600;

}

/ IE不支持,用Firefox浏览可以看到效果 /

input:focus{

background:# E0F1F5;

}

7、通用选择器

通用选择器用来表示。例如:

{

font-size: 12px;

}

表示所有的元素的字体大小都是12px;同时通用选择器还可以和后代选择器组合。

8、群组选择器

当几个元素样式属性一样时,可以共同调用一个声明,元素之间用逗号分隔。如:

p, td, li {

line-height:20px;

color:#c00;

}

#main p, #sider span {

color:#000;

line-height:26px;

}

#main p span {

color:#f60;

}

text1 h1,#sider h3,art_title h2 {

font-weight:100;

}

使用群组选择器,将会大大的简化CSS代码,将具有多个相同属性的元素,合并群组进行选择,定义同样的CSS属性,这大大的提高了编码效率,同时也减少了CSS文件的体积。

9、相邻同胞选择器

我们除了上面的子选择器与后代选择器,我们可能还希望找到兄弟两个当中的一个,如一个标题h1元素后面紧跟了两个段落p元素,我们想定位第一个段落p元素,对它应用样式。我们就可以使用相邻同胞选择器。

10、属性选择器

您可以用判断html标签的某个属性是否存在的方法来定义css。

属性选择器,是根据元素的属性来匹配的,其属性可以是标准属性也可以是自定义属性

11、伪元素选择器

所有伪元素选择器都必须放在出现该伪元素的选择器的最后面,也就是说伪元素选择器不能跟任何派生选择器。

CSS中没有针对最后一个子元素的选择器,但有第一个(:first-child),

如果你能确定span后只有这一个a标签的话可以使用相邻兄弟选择器(span + a {} ),兼容性有待测试,没这么用过。

具体可参考w3school中CSS 选择器的介绍:

>

通过children

children("input:first-child")

$(this)children("input:first-child")val();

$(this)children("input:last-child")val();

通过>选择器,$("items>input:first")

1 通过位置选择的 *** 作:

:first:默认情况下是相对整个页面来说的第一个,如:li:first表示整个页面的第一个li元素,而ul li:first表示整个页面的第一个li元素,并且是在ul下的子元素;

:first- child:为每个父元素匹配第一个子元素,如li:first-child返回每个ul的第一个li元素。可以这样理解,页面中的元素有相同的父元素 的,并且里面又包含li元素的,那么就取第一个li元素,每个子类集合都要进行判断,直到找出所有符合要求的li元素;

:only- child:返回所有没有兄弟节点的元素,注意,文本元素不是,也就是说类似这样的<div>hello<a href="">jquery</a></div>,对于这段会选出<a>元素;对 于$(”label:only-child“)会选出是label元素,同时它是它父类唯一的子元素的label元素;

:nth-child(n):返回第n个子节点,n从1开始,如果n取0,那么就会选择所有的元素。如:[]li:nth-child(2)返回li元素,并且该元素是其父元素的第二个子元素;

:nth-child(even|odd):返回偶数或奇数的子节点;

:nth-child(An+B):返回满足表达式An+B的所有子节点,比如3n+1返回所处位置为父节点子元素的是3的倍数加1的那个子元素;

:even:页面范围内的处于偶数位置的元素,如:li:even返回全部偶数li元素;

:odd:页面范围内的处于奇数位置的元素;

:eq(n):第n个匹配的元素(n从0开始),如:li:eq(3)返回整个页面的第四个li元素,ul li:eq(1)返回页面中第一个ul元素下的第二个li元素,注意:只匹配一次就返回了;

:gt(n):第n个匹配元素(不包括)之后的元素(n从0开始),如:ul:gt(2)返回从第3个ul开始的所有ul元素(含第三个);

:lt(n):第n个匹配元素(不包括)之前的元素(n从0开始),如:ul:lt(2)返回从第0个和第1个ul元素;

2 利用css选择器进行选择:

元素标签名:比如说$(”a“)会选出所有链接元素;

#id:通过元素id进行选择,比如说$("#form1")会选择id为form1的元素;

class:通过元素的CSS类来选择,比如说$("boldstyle")会选择CSS为boldstyle类的元素;

标签 名#idclass:通过某类元素的id属性和class属性来选择,如:$(a#blogboldStyle)会选择id为blog并且CSS类型 为boldStyle类型的链接元素(<a id='blog' class='boldStyle'>);

父标签名 子标签名class:通过选择父标签下的某种CSS类型的子元素,如:$(p aredStyle)会选择p段落元素中的链接子元素a,且其css类型为redStyle;

3 通过子选择器,容器选择器和属性选择器进行选择:

:匹配所有的元素,比如说:$()会把页面中的所有元素都返回;

E:匹配标签名为E的所有元素,如$("a")返回所有链接元素;

E F:匹配父元素E下的标签名为F的所有子元素(F可以为E的子类的子类,甚至更远);

E>F:匹配父元素E下的所有标签名为F的直接子元素;

E+F:匹配所有标签名为F的元素,并且有E类型的兄弟节点在该F元素之前(E,F紧挨着);

E~F:匹配前面是任何兄弟节点E的所有元素F(E,F不必紧挨着);

E:has(F):匹配标签名为E,至少有一个标签名为F的后代节点的所有元素E;

EC:匹配带有类名C的所有元素E。C等效于C;

E#I:匹配id为I的所有元素E,#I等效于#I;

E[A]:匹配带有属性A的所有元素E;

E[A=V]:匹配所有属性A的值为V的元素E;

E[A^=V]:匹配所有元素E,且A的属性值是V开头的;

E[A$=V]:匹配所有元素E,且A的属性值是V结尾的;

E[A=V]:匹配所有元素E,且A的属性值中包含有V;

4利用jQuery自定义的选择器进行选择:

:button:选择任何按钮类型的元素,包括input[type=submit]等等;

:checkbox:选择复选框元素;

:file:选择所有文件类型元素,即input[type=file];

:image:选择表单中的图像元素,即input[type=image],注意此处和前面根据标签名img选择图像有点不同哈;

:input:选择表单元素,如<input>,<select>,<textarea>,<button>等;

:radio:选择单选按钮元素;

:reset:选择复位按钮元素,如input[type=reset],button[type=reset];

:submit:选择提交按钮元素;

:text:选择文本字段元素,即input[type=text];

:animated:选择当前处于动态控制下的元素;

:contains(hello):选择包含文本hello的元素;

:header:选择标题元素,如<h1>;

:parent:选择拥有后代节点(包括文本)的元素,而排除空元素;

:selected:选择已选中的选项元素;

:visible:选择可见元素;

以上就是关于CSS-属性&&选择器全部的内容,包括:CSS-属性&&选择器、DOM中如何获取一个元素的子元素、jQuery怎么获取一个DIV下所有元素的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9337849.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存