尚硅谷CSS选择器练习之餐厅练习

2023-11-19

        此笔记来自于跟尚硅谷老师学习,此篇是对CSS选择器的总结以及视频中的P37的餐厅练习自己做的答案,自己所写,用于自我复习。
P37尚硅谷_餐厅练习: https://flukeout.github.io/

目录

css选择器

1.Select the plates

2.Select the bento boxes

3.Select the fancy plate

4.Select the apple on the plate

6.Select the small apples

7.Select the small oranges

8.Select the small oranges in the bentos

9.Select all the plates and bentos

10.Select all the things!

11.Select everything on a plate

12.Select every apple that's next to a plate

13.Select the pickles beside the bento

14.Select the apple directly on a plate

15.Select the top orange

16.Select the apple and the pickle on the plates

17.Select the small apple and the pickle

18.Select the 3rd plate

19.Select the 1st bento

20.Select first apple

21.Select all even plates

22.Select every 2nd plate, starting from the 3rd

23.Select the apple on the middle plate

24.Select the last apple and orange

25.Select the empty bentos

26.Select the big apples

27.Select the items for someone

28.Select the plates for someone

29.Select Vitaly's meals

30.Select the items for names that start with 'Sa'

31.Select the items for names that end with 'ato'

32.Select the meals for names that contain 'obb'


css选择器

        选择器,通过选择器可以选中页面中的指定元素,以便使用声明块来为指定元素设置样式。比如p的作用就是选中页面中所有的p元素。

一、常用选择器(元素选择器,id选择器,类选择器,class选择器,通配选择器)

1.元素选择器(Type selector)

        作用:根据标签名来选中指定的元素

        语法:标签名{}                比如:p{}     h1{}

2.id选择器(ID selector)

        作用:根据元素的ID属性值选中一个元素

        语法:#id属性值{}           比如:#box{}   

3.类选择器(Class selector)

        作用:根据元素的class属性值选中一组元素

        语法:.class属性值{}

注意:class属性可设置多个属性值,可属于不同的类,如class="blue abc"

4.通配选择器(Universal selector)

        作用:选中页面中的所有元素

        语法:*{}

二、复合选择器(交集选择器,并集选择器)

1.交集选择器

        作用:选中同时符合多个条件的元素

        语法:选择器1选择器2选择器3选择器n{}

        example:    div.red{}     表示选择标签为div且class为red的元素

注意:交集选择器中如果有元素选择器,必须使用元素选择器开头。

2.并集选择器或选择器分组(Selector list)

        作用:同时选择多个选择器对应的元素

        语法:选择器1,选择器2,选择器3,选择器n{}

三、关系选择器(子元素选择器,后代元素选择器,选择下一个兄弟,选择下边所有的兄弟)

1.子元素选择器(Child combinator)

        作用:选中指定父元素的指定子元素

        语法:父元素 > 子元素

2.后代元素选择器(Descendant combinator)

        作用:选择指定元素内的指定后代元素

        语法:祖先  后代(中间为空格)

3.选择下一个兄弟(Adjacent sibling combinator)

        语法:前一个 + 后一个

注意:只能选与前一个紧挨着的下一个元素

4.选择下边所有的兄弟(General sibling combinator)

        语法:兄~弟

注意:其选择的是兄下边所有的弟,不能选择其上的元素

四、属性选择器(Attribute selector)

        [属性名]  选择含有指定属性的元素;

        [属性名=属性值]  选择含有指定属性和属性值的元素;

        [属性名^=属性值]  选择属性值以指定值开头的元素;

        [属性名$=属性值]  选择属性值以指定值结尾的元素;

        [属性名*=属性值]  选择属性值中含有某值的元素。

五、伪类选择器(Pseudo classes)

        伪类(不存在的类,特殊的类),伪类用来描述一个元素的特殊状态,比如:第一个子元素、被点击的元素、鼠标移入的元素等。

        伪类一般情况下使用:开头。

:first-child{} 兄弟元素中第一个元素  比如:ul > li:first-child{}表示ul子元素li中的第一个元素

:last-child{} 兄弟元素中最后一个元素

:nth-child(){} 选中兄弟元素中第几个元素(括号中写几就选中第几个)

        特殊值:

                n 表示选择所有

                2n 或even 表示选中偶数位的元素

                2n+1或odd 表示选中奇数位的元素

注意:以上这些伪类都是根据所有的兄弟元素进行的排序

:first-of-type  

:last-of-type

:nth-of-type()

        这几个伪类的功能与上述的类似,不同点是他们是在同类型的元素中进行排序。

:not(){}  否定伪类:将符合条件的元素从选择器中去除

六、伪元素选择器(Pseudo elements)

        伪元素:表示页面中一些特殊的并不真实的存在的元素(特殊的位置)

        伪元素使用::开头

::first-letter  表示其第一个字母

::first-line  表示其第一行

::selection  表示在页面中鼠标选中的内容

::before  表示元素的开始

::after  表示元素的最后

注意:使用::before和::after添加的内容是通过CSS添加的,在网页中选中时,无法选中其添加的内容。

七、伪超链接

:link 用来表示没访问过的链接(正常的链接)  a;link{}    <a></a>为超链接

        注意:在link里修改字体大小时,所有的链接都会改变,因为它也是针对正常的链接。

:visited 用来表示访问过的链接

       注意:由于隐私的原因,所以visited这个伪类只能修改链接的颜色,字体大小无法修改。

:hover 用来表示鼠标移入的状态

:active 用来表示鼠标点击 

1.Select the plates

<div class="'table">
	<plate />
	<plate />
</div>

输入:plate

(元素选择器)

2.Select the bento boxes

<div class="'table">
    <bento />
    <plate />
    <bento />
</div>

输入:bento   (元素选择器)

3.Select the fancy plate

<div class="'table">
    <plate id='fancy'/>
    <plate />
    <bento />
</div>

输入:#fancy

        (id选择器,语法:#ID属性值,本题也可输入plate#fancy,但没必要,因为使用id一般是唯一的)

4.Select the apple on the plate

<div class="'table">
    <bento />
    <plate>
        <apple />
    </plate>
    <apple />
</div>

输入:plate > apple 或plate apple

        (子元素选择器或后代选择器。the apple on the plate说明要选择plate标签下的子标签apple,故使用子元素选择器,语法:父元素 > 子元素)

5.Select the pickle on the fancy plate

<div class="'table">
    <bento>
        <orange />
    </bento>
    <plate id='fancy'/>
        <pickle />
    </plate>
    <plate>
        <pickle />
    </plate>  
</div>

输入:#fancy > pickle 或#fancy pickle

        (子元素选择器或后代选择器。the pickle on the fancy plate说明要选择id为fancy的plate标签下的子标签pickle,故使用子元素选择器,语法:父元素 > 子元素

6.Select the small apples

<div class="'table">
    <apple />
    <apple class="small" />
    <plate>
        <apple class="small" />
    </plate> 
    <plate />
</div>

输入:.small

 (使用类选择器,语法:.class属性值)

7.Select the small oranges

<div class="table">
    <apple />
    <apple class="small">
    <bento>
        <orange class="sma1l"/>
    </bento>
    <plate>
        <orange />
    </plate>
    <plate>
        <orange class="sma1l"/>
    </plate>
</div>

输入:orange.small     (交集选择器)

8.Select the small oranges in the bentos

<div class="table">
    <bento>
        <orange />
    </bento>
    <orange class="small" />
    <bento>
        <orange class="small" />
    </bento>
    <bento>
        <apple class="small" />
    </bento>
    <bento>
        <orange class="small" />
    </bento>
</div>

输入:bento > orange.small  或者 bento orange.small (子选择器加交集选择器)

9.Select all the plates and bentos

<div class="table">
    <pickle class="sma1l"/>
    <pickle />
    <plate>
        <pickle />
    </plate>
    <bento>
        <pickle />
    </bento>
    <plate>
        <pickle />
    </plate>
    <pickle />
    <pickle class="small" />
</div>

输入:plate,bento          (并集选择器,语法:选择器1,选择器2,选择器3

10.Select all the things!

<div class="table">
    <apple />
    <plate>
        <orange class=small”/>
    </plate>
    <bento />
    <bento>
        <orange />
    </bento>
    <plate id="fancy" /> 
</div>

输入:*          (通配选择器,选择页面中所有的元素,语法:*)

11.Select everything on a plate

<div class="table">
    <plate id="fancy">
        <orange class="small"/>
    </plate>
    <plate>
        <pickle />
    </plate>
    <apple class="sma11" />
    <plate>
        <apple />
    </plate>
</div>

输入:plate > 或 plate > * 或 plate *  (子选择器)

12.Select every apple that's next to a plate

<div class="tab1e">
    <bento>
        <apple class="sma1l"/>
    </bento>
    <plate />
    <apple class="sma1l"/>
    <plate />
    <apple />
    <apple class="sma11" />
    <apple class="small" />
</div>

输入:plate+apple       (选择下一个兄弟)

13.Select the pickles beside the bento

<div class="table">
    <pickle />
    <bento>
        <orange class="small" />
    </bento>
    <pickle class="small" />
    <pickle />
    <plate>
        <pickle />
    </plate>
    <plate>
        <pickle class="small" />
    </plate>
</div>

输入:bento~pickle (选择后面所有的兄弟)

14.Select the apple directly on a plate

<div class="table">
    <plate>
        <bento>
            <apple />
        </bento>
    </p1ate>
    <plate>
        <apple />
    </plate>
    <plate />
    <apple />
    <apple class="small" />
</div>

输入:plate>apple (子元素选择器,不能是祖先选择器,因为其是直接在盘子里的苹果)

15.Select the top orange

<div class="table">
    <bento />
    <plate />
    <plate>
        <orange />
        <orange />
        <orange />
    </plate>
    <pickle class="sma1l" />
</div>    
输入:plate>orange:first-child  (伪类选择器:fi

rst-child 选择兄弟元素中的第一个元素)

16.Select the apple and the pickle on the plates

<div class="table">
    <plate>
        <apple />
    </p1ate>
    <plate>
        <pickle />
    </plate>
    <bento>
        <pickle />
    </bento>
    <plate>
        <orange class="small" />
        <orange />
    </plate>
    <pickle class="sma1l" />
</div>

输入:plate > :only-child

17.Select the small apple and the pickle

<div class="table">
    <plate id="fancy">
    <app1e class="sma11" />
</plate>
<plate />
<plate>
    <orange class="sma1l" />
    <orange />
</plate>
<pickle class="smal1" />
</div>

输入:#fancy> ,pickle  或者apple.small,pickle

18.Select the 3rd plate

输入:plate:nth-child(3)

19.Select the 1st bento

输入:bento:first-of-type

20.Select first apple

输入:apple:first-of-type

21.Select all even plates

输入:plate:nth-child(even)

22.Select every 2nd plate, starting from the 3rd

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

:nth-of-type(An+B)

The nth-of-type formula selects every nth element, starting the count at a specific instance of that element.

example:span:nth-of-type(6n+2) selects every 6th instance of a span, starting from (and including) the second instance.)

23.Select the apple on the middle plate

<div class="table">
    <plate id="fancy">
        <apple class="sma11" />
        <apple />
    </plate>
    <plate>
        <apple class="small" />
    </plate>
    <plate>
        <pickle />
    </plate>
</div>

输入:plate apple:only-of-type 或: nth-child(2)>apple

(:only-of-type

Selects the only element of its type within another element.

example: p span:only-of-type selects a span within any p if it is the only span in there.)

24.Select the last apple and orange

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

25.Select the empty bentos

输入:bento:empty

:empty

Selects elements that don't have any other elements inside of them.

example: div:empty selects all empty div elements.)

26.Select the big apples

<div class="table">
    <plate id="fancy">
        <apple class="sma1l" />
    </plate>
    <p1ate>
        <apple />
    </plate>
    <apple />
    <plate>
        <orange class="small"/>
    </plate>
    <pickle class="small" />
</div>

输入:apple:not(.small)

27.Select the items for someone

输入:[for]

28.Select the plates for someone

输入:plate[for] 或者 [for=Sarah],[for=Luke]

29.Select Vitaly's meals

输入:[for=Vitaly]

30.Select the items for names that start with 'Sa'

输入:[for^=Sa]

31.Select the items for names that end with 'ato'

输入:[for$=ato]

32.Select the meals for names that contain 'obb'

输入:[for*=obb]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尚硅谷CSS选择器练习之餐厅练习 的相关文章

  • 具有 MVC4 风格捆绑的 Intellisense

    到目前为止我找不到问题或解决这个问题 我确信我错过了一些简单的事情 我有一个带有一堆缩小的 CSS 的样式包 并且我正在用里面的类来装饰 HTML 元素 一切都运转良好 然而 Intellisense 和 ReSharper 都因为 CSS
  • sqlite 插入需要很长时间

    我正在将不到 200 000 行插入到 sqlite 数据库表中 我只是在终端中通过 sqlite3 使用一个非常简单的 sql 文件 我打赌它已经运行了至少 30 分钟 这是正常现象还是我应该关闭该过程并尝试不同的方法 sqlite中的插
  • oracle日期序列?

    我有一个 oracle 数据库 我需要一个包含 2 年所有日期的表 例如来自01 01 2011 to 01 01 2013 首先我想到了一个序列 但显然唯一支持的类型是数字 所以现在我正在寻找一种有效的方法来做到这一点 欢呼骗局 如果您想
  • 游标与更新

    一家公司使用 SQL Server 数据库来存储有关其客户及其业务交易的信息 您所在的城市引入了新的区号 对于前缀小于 500 的电话号码 区号 111 保持不变 前缀为 500 及以上的号码将分配区号 222 客户表中电话列中的所有电话号
  • 具有动态调整大小的 CSS 精灵

    我决定为我的整个网站 30 个图像 创建一个精灵表 这样我就可以加载 1 个图像并仅加载参考位置 从而减少图像加载时间和服务器调用 我的问题 是否可以引用 sprite 表中的图像 然后将该图像调整为其父容器的 100 例如 SomeDiv
  • HTML5 范围输入中的样式下限和上限填充

    正如所解释的here http www hongkiat com blog html5 range slider style IE 允许在 CSS 中设置下部和上部填充或轨道区域的样式 如下所示 The following only aff
  • CSS -webkit-外观:无;导致复选框未被选中

    All 我有一个复选框 我应用了以下 CSS 样式 webkit appearance none 我拥有的一些文本字段上有相同的代码 并且它们仍然可以正常工作 为什么此功能会导致不允许选中复选框 我喜欢这种复选框的样式 但仍然需要该功能才能
  • 表格内的垂直滚动条不显示:块

    有没有办法在里面有一个垂直滚动条 tbody 一张桌子并有display table放在桌子上但不使用display block桌子内的任何地方 对于滚动条部分 将其添加到要滚动的标签中 style overflow y scroll tb
  • 上传时自动缩小 CSS 和 Javascript

    有谁知道通过上传处理 脚本自动运行某些文件类型的好方法 当我将 CSS 和 Javascript 上传到服务器时 我试图自动缩小它们 在本地保留一个漂亮的 人类可读的版本 同时在服务器上保留一个缩小的版本 我目前在 Windows 上使用
  • 将弹性项目放置在网格中彼此的顶部而不包裹它们[重复]

    这个问题在这里已经有答案了 我使用 Flexbox 有以下布局 我想让 div 包含2在右侧 以及Team and Scorers应该弥补它左边的空间 Required layout 这和下面的想法是一样的2如果使用表格 div 的行跨度为
  • Oracle Many OR 与 IN () 的 SQL 性能调优 [重复]

    这个问题在这里已经有答案了 我手头没有 解释计划 您能帮忙判断以下哪一个更有效吗 选项1 select from VIEW ABC where STRING COL AA OR STRING COL BB OR STRING COL BB
  • 关系数据库和图数据库的比较

    有人可以向我解释一下 MySQL 等关系数据库与 Neo4j 等图形数据库相比的优缺点吗 在 SQL 中 您有多个表 它们之间有不同的 id 链接 然后你必须加入来连接表 从新手的角度来看 为什么要将数据库设计为需要联接 而不是像图形数据库
  • 仅 CSS 下拉菜单不像 iPad 等。跟随菜单链接而不显示菜单

    我们在这里创建了一个新网站 www worthingleisure co uk splashpoint 它的顶部有一个纯 CSS 菜单 通过使用 li hover ul 方法并适当显示和隐藏 该菜单应该适用于 iPad iPhone 和其他
  • 在 Oracle SQL 中执行 MERGE 时,如何更新 SOURCE 中不匹配的行?

    我有一个main数据库和一个report数据库 我需要同步一个表main into report 但是 当项目在main数据库 我只想设置一个IsDeleted标志在report数据库 执行此操作的优雅方法是什么 我目前正在使用 MERGE
  • 选择 jQuery 中的每第 n 个项目?

    jQuery 有方便的 even 和 odd 选择器 用于选择集合中偶数或奇数索引的项目 我用它来清除一系列浮动框中的所有其他项目 如下所示 div class 2up div div div div div div div and Cle
  • 将两个sql查询合并为一个查询

    如何组合以下 2 个查询以便获得两列 PAYMODE 和付款类型 两个查询都很相似 并且针对同一个表 将两个 sql 查询合并为一个查询 这样我就不需要执行两个单独的查询 SELECT ETBL DESC TXT as PAYMODE FR
  • 防止文本环绕浮动图像

    我目前有一个向左浮动的图像 以及位于其右侧的一段文本 该文本块当前不是浮动的 它只是位于 HTML 中的图像之后 因此 当它变得更长时 它最终会踢到图像下方的左侧以继续 如何才能使文本块始终保持在图像的右侧 以便图像和文本的行为就像两个并排
  • 出于安全目的,您是否有理由不执行自己的算法来打乱 ID?

    我计划实现我自己的非常简单的 哈希 公式 为具有多个用户的应用程序添加一层安全性 我目前的计划如下 用户创建一个帐户 此时后端会生成一个 ID ID 通过公式运行 假设 ID 57 8926 36 7 或同样随机的东西 然后 我将新的用户
  • 如何将 Bootstrap 3 轮播标题移动到图像下方?

    我有这个 html 使用 bootstrap 3 显示幻灯片图像 div class col sm 8 div class carousel slide ol class carousel indicators li class activ
  • 猫头鹰轮播,制作自定义导航

    所以我有一个包含三张图像的猫头鹰旋转木马 我还在左侧和右侧添加了自定义导航箭头 png 图像 然而 这些箭头目前是无用的 因为我找不到一种方法来真正让它们在我的猫头鹰旋转木马的图像之间切换 我无休止地寻找 找不到解决方案 有任何想法吗 您需

随机推荐

  • 第5节 实现Callable 接口

    Java 5 0 在java util concurrent 提供了一个新的创建执行 线程的方式 Callable 接口 Callable 接口类似于Runnable 两者都是为那些其实例可能被另一个线程执行的类设计的 但是 Runnabl
  • 阿里代码规范检查工具的安装使用

    阿里巴巴于 10 月 14 日在杭州云栖大会上 正式发布众所期待的 阿里巴巴 Java 开发规约 扫描插件 简单了解一下这插件 该插件由阿里巴巴 P3C 项目组研发 代码已经开源 GitHub https github com alibab
  • 【python】emoji库,增添趣味!

    今天说一下python的外置库emoji 里面提供超多表情使用 一 安装环境 emoji库使用pip接口进行安装 pip install emoji 二 了解下emoji库函数的使用 两个主要用的函数 emoji emojize 根据 co
  • python网络通信时出现乱码_解决Python发送Http请求时,中文乱码的问题

    解决方法 先encode再quote 原理 msg encode utf 8 是解决中文乱码问题 quote 假如URL的 name 或者 value 值中有 或者 等符号 就会有问题 所以URL中的参数字符串也需要把 等符号进行编码 qu
  • 注册ActiveX控件的几种方法

    使用ActiveX控件可快速实现小型的组件重用 代码共享 从而提高编程效率 降低开发成本 但是ActiveX控件对于最终用户并不能直接使用 因为ActiveX控件必须先在Windows中注册 注册ActiveX控件一般来说有六种途径 它们有
  • 请确保此文件可访问并且是一个有效的程序集或COM组件

    重装系统后 打开项目发现一个dll引用失败 于是重新添加引用 结果报错 请确保此文件可访问并且是一个有效的程序集或COM组件 报错是因为此程序集 com组件未注册而导致不能直接引用 解决方法 首先复制程序集所在的路径 如 E aaaa bb
  • Transformer 综述 & Transformers in Vision: A Survey

    声明 因本人课题只涉及图像分类和目标检测 且此综述对这两个领域调查的比较多 所以此文章只对图像分类和目标检测进行精读 若是对 中的论文感兴趣 到原论文中查阅参考文献即可 下图是综述内容涉及的计算机视觉十大领域 图像识别 目标检测 语义和实例
  • Linux命令-推荐

    大侠必备 杀进程 命令 ps ef grep java 先查java进程ID kill 9 PID 生产环境谨慎使用 kill killall pkill命令的区别 kill 通过pid来杀死进程 killall killall 参数 进程
  • JVM参数之GC日志配置

    说到 Java 虚拟机 不得不提的就是 Java 虚拟机的 GC Garbage Collection 日志 而对于 GC 日志 我们不仅要学会看懂 而且要学会如何设置对应的 GC 日志参数 为了能够更直观地显示出每个参数的作用 我们将以下
  • python case when用法_case when

    case when的表达式形式 1 简单Case函数 CASE sex WHEN 1 THEN 男 WHEN 2 THEN 女 ELSE 其他 END 2 Case搜索函数 CASE WHEN sex 1 THEN 男 WHEN sex 2
  • 【asm基础】nasm和masm的一些区别

    差异点说明 1 nasm是区分大小写的 2 nasm中访问内存需要使用 将内存地址括起来 例如 bar equ 2 mov rax bar mov rax bar 这个才是存储地址中内容的操作 3 nasm不存储类型信息 所以也不能使用MO
  • Vue组件按需引入时v-if和v-show的区别

    普通加载 在父组件中先import子组件 然后在components模块中注册子组件 在进 入页面时 会随着加载当前页面的js文件就加载子组件的内容 子组件的内容和父组件的内容在同一个js文件 按需加载 子组件显示的时候 才会去加载子组件的
  • fastcgi 环境变量例子

    例如请求的url http 172 28 250 184 8099 aa php var ccccc value bbbbbb 前两个字节分别代表 变量名长度 和 变量值长度 0x0f0x0fSCRIPT FILENAME scripts
  • [转][SoC][DV]关于加快验证收敛的一些方法

    关于加快验证收敛的一些方法 一 自动生成uvm验证环境 uvm gen 二 自动生成agent UVC VIP agent gen 三 模块化设计Clock以及reset的产生 clock agent 四 后台磁盘管理并且定期清理log r
  • MySQL之分布式事务

    写在前面 当数据库进行了分库分表 之后为了保证数据的一致性 不可变的就需要引入跨数据的事务解决方案 这种解决方案我们叫做分布式事务 本文就一起来看下分布式事务相关的内容 在8 0 版本上学习 1 实战 为了能够更好的理解理论知识 我们先来简
  • 线上系统性能太差,我手写了字符串切割函数,性能提升10倍以上

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 工作中常用的 split 切割字符串效率高吗 JDK 提供字符串切割工具类 StringTokenizer 手把手带你实现一个更高效的字符串切割工具类 总结 今
  • 好的习惯

    从网上看到的一篇外文文章的翻译 感觉挺不错 分享一下 第三章 习惯一 积极主动 个人愿景的原则 人性本质是主动而非被动的 不仅能消极选择反应 更能主动创造有利环境 采取主动并不表示要强求 惹人厌或具侵略性 只是不逃避为自己开创前途的责任 最
  • Windows环境下Apache与Tomcat共存

    准备工作 1 Apache 2 2 4 下载地址 http cztele1 skycn com down apache 2 2 4 win32 x86 no ssl zip 2 Tomcat 6 0 16 下载地址 http apache
  • 计算机网络安全技术学习总结

    计算机网络安全C 1 绪论 网络安全的定义 模型 攻击手段 攻击方式 安全服务 安全机制 特定安全机制 普遍的安全机制 认识Internet上的严峻的安全形势并深入分析其根源 造成Internet安全问题的主要原因 1系统脆弱性 2自然灾害
  • 尚硅谷CSS选择器练习之餐厅练习

    此笔记来自于跟尚硅谷老师学习 此篇是对CSS选择器的总结以及视频中的P37的餐厅练习自己做的答案 自己所写 用于自我复习 P37尚硅谷 餐厅练习 https flukeout github io 目录 css选择器 1 Select the