CSS Diner

2025年1月31日 | 阅读18分钟

引言

CSS Diner是一个非常好的地方,可以让你快速学习CSS。只需完成所有32个挑战,并确保你理解其原理。如果遇到困难,请阅读下方内容,并再次确保你理解其原理。

本文中提供的所有内容都基于CSS Diner游戏。这个Diner的主要目标是让开发者熟悉CSS选择器。

这个游戏的主要目标是借助CSS选择器来选择摇摆的物品。

要获取CSS选择器,我们必须前往CSS选择器描述部分,然后刷新该部分,然后我们就会得到CSS选择器。

用途

对于这个Diner,我们得到了一个GIF,我们将要选择它。借助以下内容,我们应该与同伴一起,然后我们只需选择游戏,然后我们必须开始游戏。

  1. 观看:在这个游戏中,首先,我们必须观看gif以了解什么在摇摆。
  2. HTML查看器:然后我们必须点击HTML文件打开它,然后我们必须思考如何制作我们在步骤1中看到的gif。重要的是要定位或选择名称元素,以便我们可能需要推断HTML代码中可用的元素名称、类或属性。
  3. 提示:在提示部分,如果我们在编码过程中遇到任何困难,它将提供一些提示以进入正确的路径。我们可以在提示部分找到CSS选择器描述和示例部分的具体内容。
  4. CSS查看器:当我们点击CSS查看器时,我们可能会看到一个问题的多个解决方案。我们也可能会从CSS查看器中找到一个完全不同的解决方案。如果我们遇到这种情况,那么我们必须向仓库提交一个拉取请求,并附上我们的额外解决方案。

CSS Diner的类型

让我们逐一讨论所有类型的CSS Diner。

1. 类型

动画

CSS Diner

描述

在这里,我们必须选择A类型的所有元素。这种A类型指的是<div>、<p>和<ul>标签。

示例

这种类型的一些元素示例是

HTML 代码

在这里,我们必须编写HTML代码

提示

在HTML中,我们看到每个盘子都由<plate />表示。

CSS解决方案

这类问题的解决方案是,我们必须借助“plate”。

2. 类型

动画

CSS Diner

描述

在这里,我们必须选择A类型的所有元素。这种A类型指的是<div>、<p>和<ul>标签。

示例

这种类型的一些元素示例是

HTML 代码

提示

在HTML中,我们看到每个便当盒都由<bento/>表示。

CSS解决方案

这类问题的解决方案是,我们必须借助“bento”。

3. ID选择器

动画

CSS Diner

描述

在这里,我们必须借助ID来选择元素。

示例

HTML 代码

提示

所有元素只有一个唯一的ID,我们必须只借助ID来定位元素。

CSS答案

4. 后代选择器

动画

CSS Diner

描述

在这里,我们必须选择B的所有元素,这些元素是A的子元素。在这里,我们必须以B存在于元素A内部的方式选择元素。

示例

HTML 代码

提示

让我们以盘子上的鸡蛋为例。我们可以说鸡蛋是盘子的后代。

CSS答案

plate apple

5. 结合后代选择器和ID选择器

动画

CSS Diner

描述

在这里,我们可以将任何选择器与所有后代选择器结合使用。

示例

HTML 代码

提示

在这里,我们必须借助ID(即fancy)来选择某个位置的后代选择器。

CSS答案

#fancy pickle

6. 类选择器

动画

CSS Diner

描述

在这个类选择器中,我们必须借助类名来选择元素。类选择器选择所有具有相同类的元素。在HTML中,我们可以为一个特定元素指定一个ID,但可以为许多元素指定一个类。

示例

HTML 代码

提示

我们可以为所有鸡蛋提供相同的类名吗?

CSS答案

我们可以使用Apple.small。

7. 将类选择器与其他所有选择器结合使用

动画

CSS Diner

描述

我们可以借助类型运算符将类选择器与另一个选择器连接起来。

示例

HTML 代码

提示

是否可以以相似的类名选择所有小橘子?在这里,我们不是选择所有类名为small的橘子。

CSS答案

orange.small

8. 级别1-7概述

动画

CSS Diner
  • 描述

没有对此的描述。这只是第1到第7课的概述。

示例

没有这方面的例子。这只是第1到第7课的概述。

HTML 代码

提示

在这里,我们需要便当盒里所有的小橘子。我们如何选择那些在便当盒里的橘子?我们如何识别便当盒的所有属性?

CSS答案

Bento orange.small

9. 使用逗号组合选择器

动画

CSS Diner

描述

在这里,我们必须选择A和B元素,或者我们必须选择A和B元素。

示例

HTML 代码

提示

我们能一次性选择所有元素吗?

CSS答案

plate, bento

10. 通用选择器

动画

CSS Diner

描述

我们可以借助通用选择器来选择HTML中的所有元素。我们可以将通用选择器表示为星号(*)。我们也可以称之为通配符。

示例

HTML 代码

提示

我们能一次性选择所有内容吗?

CSS答案

我们可以借助*来选择所有内容。

11. 与通用选择器结合

动画

CSS Diner

描述

我们可以借助A*来选择A中可用的所有元素。

示例

HTML 代码

提示

是否可以选择特定元素的所有子元素?

CSS答案

plate *

12. 相邻兄弟选择器

动画

CSS Diner

描述

我们可以选择B的所有元素,B是A的子元素。当一个元素跟随另一个元素时,我们可以称它们为兄弟。在HTML中,所有兄弟都有相同的缩进级别。

示例

HTML 代码

提示

是否可以选取所有直接紧邻盘子的苹果?

CSS答案

plate + apple

13. 一般兄弟选择器

动画

CSS Diner

描述

在这个选择器中,我们必须选择B的元素,B是A的子元素。因此,我们必须选择所有跟随A的兄弟元素。所以在这里,我们必须使用A~B来选择兄弟元素。

例子:

我们已经解决了一个类似于下面示例的问题。

HTML 代码

此问题的HTML代码如下:

提示

我们必须确保选择便当盒后面泡菜的所有兄弟元素。

CSS解决方案

bento ~ pickle

14. 子选择器

动画

CSS Diner

描述

在这里,我们必须选择B的元素,B是A的直接子元素。我们也可以选择那些是另一个元素的直接子元素的元素。直接嵌套在另一个元素中的元素可以称为子元素。嵌套更深的元素,我们可以称它们为后代元素。

示例

我们已经解决了一个类似于下面示例的问题。

HTML 代码

此问题的HTML代码如下:

提示

在这里,不需要选择盘子里的苹果。

CSS答案

plate > apple

15. 第一个子伪选择器

动画

CSS Diner

描述

在这里,我们必须选择A类型的所有第一个元素。我们可以将伪选择器与任何其他选择器结合使用。

示例

我们已经解决了一个类似于下面示例的问题。

HTML 代码

此问题的HTML代码如下:

提示

在这里,我们必须选择所有是盘子的第一个选择器的橘子。我们可以在这里使用伪选择器。

CSS解决方案

plate orange:first-child

16. 唯一的子伪选择器

动画

CSS Diner

描述

在这里,我们必须选择A的那些元素,它们位于另一个元素内部。

示例

我们已经解决了一个类似于下面示例的问题。

HTML 代码

此问题的HTML代码如下:

提示

是否可能一次性选择许多元素?

CSS 代码

plate apple:only-child, plate pickle:only-child

17. 最后一个子伪选择器

动画

CSS Diner

描述

在这里,我们必须选择A的元素,它是另一个元素的最后一个子元素。

示例

我们已经解决了一个类似于下面示例的问题。

HTML 代码

此问题的HTML代码如下:

提示

我们可以通过多种方式做到这一点。假设苹果是“fancy”元素的最后一个子元素,而泡菜是其类型的最后一个子元素。或者,我们可以选择包含苹果的“fancy”盘子,因为苹果很小,而泡菜也很小。

CSS答案

18. 第n个子伪选择器

动画

CSS Diner

描述

在这里,我们必须从另一个元素中选择第N个子元素,即第1个、第3个、第12个等。

示例

我们已经解决了一个类似于下面示例的问题。

HTML 代码

此问题的HTML代码如下:

提示

我们能从另一个元素中选择特定的子元素吗?

CSS解决方案

plate:nth-child(3)

19. 第n个倒数子选择器

动画

CSS Diner

描述

在这里,我们必须从父元素的最后一个子元素中选择子元素。这与第n个子元素类似,但是从最后一个开始处理。

示例

我们已经解决了一个类似于下面示例的问题。

HTML 代码

此问题的HTML代码如下:

提示

这里使用bento:first-of-type可能很明显,但我们能否想出一个更牵强的解决方案,比如从后面数?例如,从最后一个便当盒开始数,我们看到我们想选择的便当盒实际上是第三个子元素。我们如何用“倒数子元素”来选择这个便当盒?

CSS解决方案

bento:nth-last-child(3)

20. 首次出现类型选择器

动画

CSS Diner

描述

在这里,我们必须选择另一个元素中存在的A类型的第一个元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

我们能选择特定类型的第一项吗?

CSS解决方案

apple:first-of-type

21. 第n个类型

动画

CSS Diner

描述

在这里,我们必须选择存在于另一个元素中的A类型元素。我们必须选择位于偶数或奇数位置的元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

如果我们知道如何选择伪选择器来选择第n个元素,那将对我们有利。此外,我们必须知道伪选择器接受什么样的参数。

CSS解决方案

plate:nth-of-type(even)

22. 带公式的第n个类型选择器

动画

CSS Diner

描述

我们可以借助nth-of-type公式选择第n个元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

在这里,我们必须选择特定类型的元素。如果我们想选择从第2个实例开始的第4个plate实例,那么我们必须编写plate:nth-of-type(4n+2)。

CSS解决方案

plate:nth-of-type(2n+3)

23. 唯一类型

动画

CSS Diner

描述

在这里,我们必须选择类似类型的元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

我们能选择第一个子元素是苹果的元素吗?

CSS解决方案

plate > apple:only-of-type

24. 最后一个类型

动画

CSS Diner

描述

在这里,我们必须选择最后一个元素的最后一个元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

在这里,我们必须选择所有属于最后一个元素类型的元素。

CSS解决方案

orange:last-of-type, apple:last-of-type

25. 空

动画

CSS Diner

描述

在这里,我们必须选择那些没有子元素的元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

在这里,我们必须选择那些没有子元素的元素。

CSS答案

bento:empty

26. 否定伪类

动画

CSS Diner

描述

在这里,我们必须选择所有不匹配否定选择器的元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

我们能选择不属于特定类的元素吗?

CSS解决方案

Apple:not(.small)

27. 属性选择器(通用)

动画

CSS Diner

描述

在这里,我们必须选择那些具有特定属性的元素。我们必须将属性放在开始标签内。例如 <span attribute="value"></span>。如果属性没有值,我们可以将其设为空。

  • 示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

我们能否根据这些元素是否具有某些属性来选择所有这些通用元素?

CSS答案

[for]

28. 属性选择器(特定)

动画

CSS Diner

描述

在这里,我们必须选择A的元素,它具有一些特定的属性。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

我们能选择所有具有特定属性的元素吗?

CSS答案

plate[for]

29. 属性值选择器

动画

CSS Diner

描述

在这里,我们必须选择元素

具有某些特定属性。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

我们能否不仅根据元素是否具有特定属性,而且根据该属性的值来选择元素?

CSS答案

30. 属性以选择器开头

动画

CSS Diner

描述;

在这里,我们必须选择具有特定属性且该属性以特定字符开头的元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

我们能否选择那些属性值以特定字符*开头*的元素?

CSS答案

*[for^="Sa"]

31. 属性以选择器结尾

动画

CSS Diner

描述

在这里,我们必须选择那些属性以特定字符结尾的元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

我们能否选择所有属性以特定字符结尾的元素?

CSS答案

*[for$="ato"]

32. 属性通配符选择器

动画

CSS Diner

描述

在这里,我们必须选择那些属性值包含特定字符的元素。

示例

下面是一个类似的例子。

HTML 代码

下面是HTML代码

提示

我们能否选择所有属性包含特定字符的元素?

CSS答案

bento[for*="obb"]


下一个主题CSS Display None