CSS - 选择器

问答


1. CSS选择器常见的有几种?

答:

  • 基础选择器

#id id选择器,匹配特定id的元素
.class class选择器,匹配包含class类名的元素
* 通配符选择器,匹配了页面任何元素
element 标签选择器,匹配页面元素标签

  • 组合选择器

E,F 分组选择器,可以设置E和F相同的样式
E F 后代选择器,设置E元素后的所有F元素的样式
E>F 子元素选择器,可以设置E元素后直接的F元素样式
E+F 近邻元素选择器,可以设置E元素后近邻的F元素样式
E~F 相邻元素选择器,可以设置E元素后同邻的F元素样式

  • 属性选择器(大多数用于匹配表单的空间元素,可以不用反复添加样式来匹配)

E[attr=value] 设置属性attrvalue的元素样式

  • 伪类选择器

E:hover 改变E元素的悬停效果

  • 伪元素选择器

E::before 在E元素之前插入生成的元素
E::after 在E元素之后插入生成的元素

2. 选择器的优先级是怎样的?

答:

优先级从高到低排列
  • !import
  • style属性
  • id选择器
  • class选择器
  • 伪类选择器
  • 属性选择器
  • 标签选择器
  • 通配符
  • 浏览器自定义
    : 优先级相同的情况下,后面的样式优先于之前的设置。

3. class 和 id 的使用场景?

答:

  • class 的类名用于同一类型并且拥有共同特性的模块,同一个元素可以拥有多个class 类名
  • id 拥有独一无二的样式,用于划分大区块

4. 使用CSS选择器时为什么要划定适当的命名空间?

答:

  • 应用于展现网页整体的清晰结构,便于开发者阅读与重构

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

答:

header{}

.header{}
.header .logo{}
.header.mobile{}
.header p, .header h3{}

header .nav>li{}

header a:hover{}

* ```#header``` 设置```id="header"``` 的元素样式
* ```.header``` 设置```class="header"``` 的元素样式
* ```.header .logo``` 设置```class="header"```元素下拥有```class="logo"``` 的元素样式
* ```.header.mobile``` 设置```class="header mobile"``` 的元素样式
* ```.header p, .header h3{}``` 同时设置```class="header"``` 下的```p``` 元素和```h3``` 元素样式
* ```#header .nav>li{}``` 设置```id="header"``` 下```class="nav"```的子元素```li``` 的元素样式(而非后代元素)
* ```#header a:hover``` 设置```id="header"``` 下```a``` 元素的鼠标悬停效果

### 6. 列出你知道的伪类选择器
#### 答:
* ```
E:hover // 鼠标悬停状态
E:active // 鼠标按下没有释放的状态
E:focus // 获得焦点的状态
E:empty // 匹配一个不包含任何子元素的元素
E:checked // 匹配表单中被默认选中的radio或checkbox元素
E:first-child // 匹配父元素中的第一个子元素E,如果没有找到,设置样式就无效。
E:first-of-type // 匹配父元素中相同类型元素E的第一个子元素

7. :first-child和:first-of-type的作用和区别

答:

  • :first-child 是匹配父元素中的第一个子元素,如果没有找到,设置的样式就无效。
<style>
        p:first-child{
                color: blue;
        }
        h1:first-child{
                color: blue;
        }
        span:first-child{
                color: blue;
        }
</style>
<div>
        <!-- 这样设置的p元素的字体颜色显示蓝色,其他设置无效,因为h1和span不是父元素的第一个子元素-->
        <p>我是第一个P元素</p>
        <h1>我是第一个h1元素</h1>
        <span>我是第一个span元素</span>
</div>

预览代码

  • :first-of-type 是匹配父元素中相同类型的第一个子元素,并不一定是父元素中的第一个子元素。
<style>
        p:first-of-type{
                color: blue;
        }
        h1:first-of-type{
                color: blue;
        }
        span:first-of-type{
                color: blue;
        }
</style>
<div>
        <!-- 这样设置的p,h1,span元素的字体颜色都显示蓝色-->
        <p>我是第一个P元素</p>
        <h1>我是第一个h1元素</h1>
        <span>我是第一个span元素</span>
</div>

预览代码

8. 运行如下代码,解析下输出样式的原因。

<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>

答:

  • .item1:first-child 会找到 class="ct"div元素下的第一个子元素,所以p 标签下的aa的文字颜色为红色。
  • .item1:first-of-type会找到class="ct"div元素下的同类型元素的第一个子元素,所以ph3标签下的第一个子元素的背景色为蓝色,所以包含aa文本的p标签背景颜色为蓝色,包含bb文本的h3标签背景颜色为蓝色。

预览代码

9.text-align: center的作用是什么,作用在什么元素上?能让什么元素水平居中

答:

  • 作用于块级元素,语义上是让文本显示居中,实际运用中,可以让块级元素中的内联元素水平居中。

10. 如果遇到一个属性想知道兼容性,在哪查看?

答:

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

推荐阅读更多精彩内容

  • 1.class 和 id 的使用场景? class:类选择器,一个标签可以有多个类且同一个类可以用到不同的标签上,...
    饥人谷_兔子君阅读 1,192评论 0 0
  • 一、CSS选择器常见的有几种? 基本选择器 通配选择器~选择文档中所有的html元素,用一个*表示 元素选择器~选...
    dengpan阅读 962评论 0 3
  • 1.class 和 id 的使用场景?#### class是类选择器,选择的是同一个类的元素;id选择器选择的是有...
    zhaonu阅读 260评论 0 0
  • class 和 id 的使用场景?class指定标签的类名, 把需要相同样式的元素归类于一个name下,需要此样式...
    饥人谷_CCCLARITY阅读 247评论 0 0
  • class 和 id 的使用场景? class 重在样式的复用,重普遍性。id重在划分样式区域,可以作为样式表中的...
    南山码农阅读 374评论 0 0