Skip to content

Instantly share code, notes, and snippets.

@jikeytang
Created June 16, 2014 01:31
Show Gist options
  • Save jikeytang/3657ed86b66be8e9a928 to your computer and use it in GitHub Desktop.
Save jikeytang/3657ed86b66be8e9a928 to your computer and use it in GitHub Desktop.
[ CSS ] - 20140616-题目1
解释以下选择器的区别:
1. body 与 .body
2. .main .sub 与 (.main, .sub)
3. .main > .sub 与 .main .sub
4. .main + .sub 与 .main .sub
5. .main + .sub 与 .main > .sub
6. [abc^="def"] 与 [abc$="def"] 与 [abc*="def"] 与 [abc^="def"] 与 [abc|="def"] 与 [abc~="def"]
7. p:first-child 与 ::first-line
8. * 与 (.main *)
9. :nth-child 与 :nth-last-child 与 :nth-of-type 与 :last-child 与 :first-of-type 与 :empty
PS:
1. 回复时注意加上下面这句话,才会有语法高亮或格式缩进。
```html
// you code
```
2. 也可以粘贴jsfiddle地址,比如:
http://jsfiddle.net/jikeytang/Rmt8M/
评论支持markdown语法。
[http://jsfiddle.net/jikeytang/Rmt8M/](http://jsfiddle.net/jikeytang/Rmt8M/)
@chenfengyanyu
Copy link

1

body属于元素选择器,针对<body>;
.body为类选择器,需要class="body"去引用;

2

.main .sub表明.main后代的.sub类可以用的样式;
.main, .sub中间使用逗号,表明.main和.sub这两个类都可以用的样式,属于css的词列表吧;

3

考点应该是“子代选择器”和“后代选择器”的区别:
<div class="main">
    <div class="sub">对main来说,属于子代
         <div class="sub"></div>对main来说,属于后代
    </div>
</div>

如上,如果用子类选择器,第二个sub是应用不到样式的,而后代选择器,包含在main类中的sub类
都可以应用样式

4

.main + .sub表示相邻兄弟选择器,即紧接在main后面,且二者有相同的父元素,可以应用该样式;
.main .sub表明main后代的sub类可以用的样式;

5

.main + .sub表示相邻兄弟选择器,即紧接在main后面,且二者有相同的父元素,可以应用该样式;
.main > .sub表明main子代的sub类可以用的样式;

6

[abc^="def"]选择 abc 属性值以 "def" 开头的所有元素
[abc$="def"]选择 abc 属性值以 "def" 结尾的所有元素
[abc*="def"]选择 abc 属性值中包含子串 "def" 的所有元素
[abc|="def"]选取带有def开头的属性值的元素,该值必须是整个单词。
[abc~="def"]用于选取属性值中包含def的元素。

7

p:first-child表示p元素的第一个子元素
::first-line伪元素将匹配block、inline-block、table-caption、table-cell等等级别元素的第一行

8

* 通配符,所有元素
(.main *)main类后面的所有元素

9

:nth-child伪类允许你定位某个父级元素的一个或多个特定的子元素.
:nth-last-child伪类基本上和:nth-child伪类的作用相同,但是它从最后一个元素开始算。
:nth-of-type选出选择器中指定类型的元素,页面中有多个类型元素的时候,比较有用
:last-child表示父元素的最后一个子元素
:first-of-type表示一个父级元素下的第一个相同类型的子元素。
:empty没有任何内容的盒子,空盒子?

好多概念都很模糊,一个个查了一遍,总算答完了O(∩_∩)O

@hackerslizc
Copy link

1.body 是标签 .body 是Class 类名
2. .main .sub 是 后代选择器,选择类名为main 下的 所有类名为sub的元素 .main, .sub 是多标签选择器同时作用于多个元素之上
3. .main > .sub 是子类选择器 选择 .main 下 class名为sub 的子类元素 .main .sub 选择 类名为 main 下的 所有类名为 sub 的元素
4. .main + .sub 是相邻选择器 意思是 选择 类名为 main 的元素 的第二个类名为 sub 的兄弟元素 。 .main .sub 选择 类名为 main 下的 所有类名为 sub 的元素
5. .main + .sub 是相邻选择器 意思是 选择 类名为 main 的元素 的第二个类名为 sub 的兄弟元素 。.main > .sub 是子类选择器 选择 .main 下 class名为sub 的子类元素
6. [abc^="def"] 指 abc 下 以def 开头的 类 略过了 、、、、
7. p:first-child 是选择P标签下的第一个子类元素 ::first-line 是伪类 是选择 标签下的第一行
8. * 是指全局通配符 所有的标签都适用 .main * 是指 在类名为 .main 的元素下的所有标签
9. :nth-child 是指父元素的所有子元素,偶尔会写 :nth-child(第几个子元素) , :nth-last-child 是指 父元素下的最后一个子元素, :nth-of-type 不知 :last-child 指类or标签元素下的最后一个子元素与
:first-of-type 与 :empty 这道题主要是考伪类 吧 我用的还是较少 只是前段时间看过书上写过 了解一点点 用的很少

用的较少 6题与9题 看到都有点眼晕不想做。 哎 还需要学习 !!!

@zwsf
Copy link

zwsf commented Jun 16, 2014

补充最后的:empty 匹配没有子元素或者没有内容的元素,其他的认为1楼答的都很好

@DestroyGod
Copy link

为何哥的一楼就是被吐槽 别人的一楼都是表扬

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment