关于CSS标签的回答

  1. class 和 id 的使用场景?
    同一个html文件中,id的值不能相同,class的值可以相同,这决定了他们的性质。
    id用来标记整个文件中具有独一无二意义的标签;
    而class用来标记整个文件中具有同一类意义的标签。
  2. CSS选择器常见的有几种?
  • 基础选择器
  • 组合选择器
  • 属性选择器
  • 伪类选择器
  • 伪元素选择器
  1. 选择器的优先级是怎样的?对于复杂场景如何计算优先级?
    优先级排列为:
  2. 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式
  3. 作为style属性写在元素标签上的内联样式
  4. id选择器
  5. 类选择器
  6. 伪类选择器
  7. 属性选择器
  8. 标签选择器
  9. 通配符选择器
  10. 浏览器自定义

计算优先级方法:
将行内样式 <div style="xxx"></div>标记为a,ID 选择器标记为b,类,属性选择器和伪类选择器标记为c,标签选择器、伪元素标记为d,根据abcd的个数统计abcd的值,用比较4位数的值来比较abcd的值,值大的优先级高。

  1. a:link, a:hover, a:active, a:visited 的顺序是怎样的? 为什么?
    顺序为:a:link,a:visited,a:hover,a:active
    因为css中有一个规则,当标签的优先级相同时,采用排列在最后的标签样式。
    要防止a:visited的样式覆盖a:hover,a:active的样式,所以a:visited应该在它们前面,同理a:hover应该在a:active前面。
  2. 以下选择器分别是什么意思?
#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的鼠标悬停状态
#header .logo~p{
}    选择id为header的元素的子元素中class为logo的元素之后的同级p元素
#header input[type="text"]{
}    选择id为header的元素的子元素input中type="text"的元素
  1. 列出你知道的伪类选择器
  • E:link 匹配所有未被点击的链接
  • E:visited 匹配所有已被点击的链接
  • E:active 匹配鼠标已经其上按下、还没有释放的E元素
  • E:hover 匹配鼠标悬停其上的E元素
  • E:focus 匹配获得当前焦点的E元素
  • E:enabled 匹配表单中可用的元素
  • E:disabled 匹配表单中禁用的元素
  • E:checked 匹配表单中被选中的radio或checkbox元素
  • E::selection 匹配用户当前选中的元素
  • E:nth-child(n) 匹配其父元素的第n个子元素,第一个编号为1
  • E:nth-of-type(n) 与:nth-child()作用类似,但是仅匹配使用同种标签的元素
  1. div:first-child和div:first-of-type的作用和区别
  • div:first-child:选择所有div元素的父元素的第一个子元素
  • div:first-of-type:选择所有div元素的父元素的第一个div子元素
    区别就是div:first-of-type比div:first-child多了一个特定的标签限制
  1. 运行如下代码,解析下输出样式的原因。
<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="item"的元素的父元素的第一个子元素,不管是p元素还是h3元素,它们的父元素div的第一个子元素都是p元素,所有p元素应用了样式,字体变为红色。
其次,.item1:first-of-type选择器选择了所有class="item"的元素的父元素的第一个同种标签的子元素,具体到类, <p class="item1">aa</p>选择了它的父元素div的第一个标签为p的子元素,即选中了它自己,<h3 class="item1">bb</h3>选择了它的父元素div的第一个标签为h3的子元素,即选中了它自己,<h3 class="item1">ccc</h3>选择了它的父元素div的第一个标签为h3的子元素,即选中了<h3 class="item1">bb</h3>,所有最后是aa和bb应用了样式:背景色为蓝色。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,281评论 19 139
  • 1.class 和 id 的使用场景? class:类选择器,一个标签可以有多个类且同一个类可以用到不同的标签上,...
    饥人谷_兔子君阅读 1,228评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,868评论 1 92
  • 1,class 和 id 的使用场景? 1.class是类选择器,用.class定义,定位到页面中有相同特征的一类...
    _思铭阅读 406评论 0 0
  • 第二课 论学习 今天咱们继续精读《论语》。孔子作为“至圣先师”,对学习有很多精辟的论述。我们今天就来看看他对学习是...
    田源ty阅读 348评论 0 0