02-CSS选择器

简介: 02-CSS选择器

什么是CSS选择器


CSS选择器用来指定网页上需要进行样式化的元素。先选中特定的HTML元素,然后设置该元素的样式。语法:


选择器:{
    样式属性:属性的值
}


CSS选择器的类型

在前面的文章中,你也许已经见过CSS选择器了。例如:


body {
    background-color: red;
}


这段代码的意思就是,设置body元素的背景页为红色。其中,body 选中了HTML文档中的body元素,background-color: red指定设置背景色为红色。最常见的CSS选择器有:类型选择器、类选择器、ID选择器、属性选择器、伪类选择器、后代选择器、子代选择器等等。


  • • 类型选择器

上面的body就是一个类型选择器,指定选中的HTML元素的种类。


/* 选中页面中所有的h1元素 */
h1 {
    font-size: 14px;
}
/* 选中页面中所有的a元素 */
a {
    color: #000;
}


  • • 类选择器 通过元素的类名,来选中元素


/* 选中页面中所有带有 title 类的元素 */
.title {
    ...
}


  • • ID选择器 通过元素的ID,来选中元素。


/* 选中页面中ID为submit的元素 */
#submit {
    ...
}


  • • 属性选择器 通过元素的属性,来选中元素.


/* 选中页面中带有属性data-active属性且data-active="true"的元素 */
[data-active="true"] {
    ...
}


  • • 伪类选择器 对某些元素的特殊状态进行样式化。


/* 鼠标悬停到a元素上时的样式 */
a:hover {
    ...
}


  • • 后代选择器 组合选择器。选择符合条件的元素的特定后代元素


/* 选中article元素后代中的P元素 */
article p {
    ...
}


  • • 子代选择器 组合选择器。选择符合条件的元素的特定儿子元素


/* 选中article元素儿子元素中的P元素 */
article > p {
}


  • • 相邻兄弟选择器 组合选择器。当第二个元素紧跟在第一个元素之后,并且两个元素都是属于同一个父元素的子元素,则第二个元素将被选中.


/* img后面紧跟着的p元素将被选中 */
img + p {
  ...
}


  • • 通用兄弟选择器 组合选择器。当两个元素处于统一层级时,第一个元素后的所有第二个元素被选中.


/* img元素后的所有.text类元素都被选中 */
img ~ .text {
    ...
}


选择器列表


考虑以下场景,有两种元素,我需要设置同样的字体颜色,如:

.text {
    color: red;
}
.error {
    color: red;
}

这种情况下,可以将两个选择器用逗号链接起来,如下:


.text,
.error {
    color: red;
}


样式的继承


对于一些特定的样式属性,如font-size等,如果我们没有显式的去设置,那么该样式的值将会继承其父元素的样式。若父元素也未进行设置,则会继续查找父元素的父元素,直到根元素为止。如:


/* HTML代码 */
<p class='wrapper'>
    哈哈哈哈<span class='text'>你好哇</span>
</p>
/* CSS代码 */
.wrapper {
    color: #000;
    font-size: 24px;
}
.text {
    color: red;
}


.text.wrapper的子元素。我们没有显式的设置.textfont-size大小,那么其将继承.wrapper的字体大小。最终.textfont-size也为24px; color也是一个继承属性,但是因为我们显式设置了.textcolor属性,因此其字体颜色为红色而不是黑色。

640.png


常见的可继承的样式属性有:font-size, font-family, text-align, line-height, color等。


注意:


  • • 如果整个页面都没有对样式进行显式设置,那么将会展现浏览器的默认样式。
  • • 某些情况下,可继承属性也无法继承,因为浏览器有特定的样式,如:a元素的字体颜色就无法继承其父元素的字体颜色。浏览器对a元素的字体颜色有特殊处理

那么问题来了,如果对于同一个元素的同一个样式属性,我前后设置了两次,并且两次设置的值不一样,那么最终的效果是怎样的呢?这涉及到样式的优先级问题,将在下一章进行介绍。


相关文章
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
193 2
|
前端开发
CSS:高级选择器
CSS:高级选择器
189 1
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
350 5
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
345 2
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
661 1
|
前端开发 JavaScript
【CSS】选择器
【CSS】选择器
|
前端开发
CSS中的层级选择器&伪类选择器和伪元素选择器
CSS中的层级选择器&伪类选择器和伪元素选择器
|
前端开发
CSS3选择器
【8月更文挑战第23天】CSS3选择器。
134 1
|
前端开发
CSS常见的选择器
CSS常见的选择器
120 0

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    205
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    207
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    150
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    124
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    257
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    372
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    164
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    103
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    173
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    239