初识css选择器

  1. class 和 id 的使用场景?
    class指定标签的类名,<input type="text" class="text">把需要相同样式的元素归类于一个name下,需要此样式的标签添加至此类。
    ID指定标签的唯一标识,<input type="text" id="text">第一、根据提供的唯一标识的ID号可以快速的获取元素信息;第二、用于充当label标签for属性的值,示例:<label for='userid'>用户名:</label>,表示单击此“用户名”标签时,id为userid的标签获得焦点。

  2. CSS选择器常见的有几种?
    基础选择器
    *:通用选择器,匹配页面任何元素(少用)
    #id:id选择器,匹配特定ID的元素
    .class:类选择器,匹配class包含而不是等于特定类的元素
    element:标签选择器
    组合选择器
    E,F:多元素选择器,用逗号分隔,同时匹配元素E和元素F
    E F:后代选择器,空格分隔,匹配E元素所有的后代元素F,不只是子元素,向下递归
    E>F:子元素选择器,>分隔,匹配E元素的所有直接子元素
    E+F:直接相邻子元素,同级
    E~F:普通相邻子元素,所有同级F,不管是否相邻
    .class1.class2 、element#id:中间没有分隔符,表示既...又...的关系
    属性选择器
    E[attr]:匹配所有具有属性attr的元素
    E[attr=value]:匹配属性attr值为value的元素
    E[attr ~=value]:匹配所有属性attr具有多个空格分隔,其中一个值为value的
    E[attr ^=value]:匹配属性attr值以value开头的元素
    E[attr $=value]:匹配属性attr值以value结尾的元素
    E[attr *=value]:匹配属性attr值包含value的元素
    伪类选择器
    E:first-child 匹配作为第一个子元素的元素E
    E:linked 匹配所有未被点击的链接
    E:visited 匹配所有已被点击的链接
    E:active 匹配鼠标已经按下没有释放的元素E
    E:hover 匹配鼠标悬停其上的元素E
    E:focus 匹配获得当前焦点的元素E
    E:lang(c) 匹配lang属性为c的元素E
    E:enabled 匹配表单中可用的元素E
    E:disabled 匹配表单中禁用的元素E
    E:checked 匹配表单中被选中的radio或checkbox的元素E
    E::selection 匹配用户当前选中的元素
    E:nth-child(n) 匹配其父元素的第n个子元素
    E:nth-of-type(n) 匹配其父元素仅适用相同标签的第n个子元素
    伪元素选择器
    E::first-line 匹配E元素内容的第一行
    E::first-letter 匹配E元素内容的第一个字母
    E::before 在E元素之前插入生成的内容
    E::after 在E元素之后插入生成的内容

  3. 选择器的优先级是怎样的?对于复杂场景如何计算优先级?
    选择器的优先级是指多条规则作用于同一个元素上,且定义相同属性的不同值
    优先级由高到低
    在属性后面使用!important ->style属性写在标签里面的内联样式 -> ID选择器 -> 类选择器 -> 伪类选择器 -> 属性选择器 -> 标签选择器 -> 通配符选择器 -> 浏览器自定义
    复杂场景的计算方式
    a:行内样式
    b:ID选择器
    c:类、属性选择器、伪类选择器
    d:标签选择器、伪元素选择器
    统计abcd四种情况的数量,并按照abcd的顺序依次比较
    例如:

#test p.class1{...}  /*a=0 b=1 c=1 d=1*/
#test .class1.class2{...}  /*a=0 b=1 c=2 d=0 这个的优先级高*/
  1. a:link, a:hover, a:active, a:visited 的顺序是怎样的? 为什么?
    顺序:a:link -> a:visited -> a:hover -> a:active
    原因:当把a:visited放在最后时,链接被触发过,这个样式会把前面所有的样式覆盖,导致hover、active失效。如果顺序是a:link -> a:visited -> a:active -> a:hover,active将失效,点击链接不动时样式会被hover的覆盖。a:link和a:visited的位置可以互换,总而言之,写在最后的样式会覆盖之前的样式。

  2. 以下选择器分别是什么意思?

#header      ID名为header的选择器
.header        类名为header的选择器
.header .logo      匹配class="header"的后代选择器class="logo"的元素
.header.mobile    匹配既有class="header"又有class="mobile"的元素
.header p, .header h3    匹配class="header"的后代选择器p标签的元素或class="header"的后代选择器h3标签的元素
#header .nav>li    匹配ID="header"的后代选择器class="nav"的直接子元素li标签的元素
#header a:hover    匹配ID="header"的后代a元素鼠标悬浮在其表面时的样式
#header .logo~p    匹配id为header下的class为logo之后的所有同级p元素
#header input[type="text"]    匹配ID="header"的后代选择器中input标签type属性值为text的元素
  1. 列出你所知道的伪类选择器
    E:first-child 匹配作为第一个子元素的元素E
    E:linked 匹配所有未被点击的链接
    E:visited 匹配所有已被点击的链接
    E:active 匹配鼠标已经按下没有释放的元素E
    E:hover 匹配鼠标悬停其上的元素E
    E:focus 匹配获得当前焦点的元素E
    E:lang(c) 匹配lang属性为c的元素E
    E:enabled 匹配表单中可用的元素E
    E:disabled 匹配表单中禁用的元素E
    E:checked 匹配表单中被选中的radio或checkbox的元素E
    E::selection 匹配用户当前选中的元素
    E:nth-child(n) 匹配其父元素的第n个子元素
    E:nth-of-type(n) 匹配其父元素仅适用相同标签的第n个子元素
  2. div:first-child、div:first-of-type、div :first-child和div :first-of-type的作用和区别 (注意空格的作用)
    作用:
    div:first-child:匹配同级元素下的第一个且为div的元素
    div:first-of-type:匹配同级元素下第一个div元素
    div :first-child:匹配标签为div的后代选择器中第一个元素
    div :first-of-type:匹配div的后代元素的同种类型的第一个元素
    区别:
    div:first-child:伪类选择器,没有空格,指当前元素父元素下的第一个子元素
    div:first-of-type:伪类选择器,没有空格,指当前元素父元素下同种类型的第一个子元素
    div :first-child:组合选择器,有空格,指当前div下的第一个元素
    div :first-of-type:组合选择器,有空格,指当前div下的同种累心的第一个元素
  3. 运行如下代码,解析下输出样式的原因。
image.png
image.png

原因:首先.item1:first-child指的是class="item1"的父元素的第一个子元素,也就是aa,设置为红色;然后是.item1:first-of-type指的是class="item1"的父元素的第一个同标签的子元素,<p class="item1">aa</p>,aa的背景色为蓝色,<h3 class="item1">bb</h3>,bb的背景色为蓝色,<h3 class="item1">ccc</h3>,第一个同标签的子元素指的是bb,所以还是设置的bb的背景色为蓝色。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • 1.class 和 id 的使用场景? id:定位到页面上唯一的元素,页面上不能出现id相同的元素 class:定...
    饥人谷_bigJiao阅读 292评论 0 0
  • 1.class 和 id 的使用场景? class:类选择器,一个标签可以有多个类且同一个类可以用到不同的标签上,...
    饥人谷_兔子君阅读 1,131评论 0 0
  • 1.class 和 id 的使用场景?#### class是类选择器,选择的是同一个类的元素;id选择器选择的是有...
    zhaonu阅读 243评论 0 0
  • 1.class 和 id 的使用场景? class用于定位某一类元素,页面某一元素有共同特征的可以用class元素...
    阿洁2185阅读 368评论 0 0
  • 1,class 和 id 的使用场景? 1.class是类选择器,用.class定义,定位到页面中有相同特征的一类...
    饥人谷_思铭阅读 349评论 0 0