返回顶部
首页 > 资讯 > 前端开发 > html >CSS属性简写和选择器的优先级是怎样的
  • 534
分享到

CSS属性简写和选择器的优先级是怎样的

2024-04-02 19:04:59 534人浏览 八月长安
摘要

今天就跟大家聊聊有关CSS属性简写和选择器的优先级是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。几个常用 CSS 属性的简短写法精简 CSS

今天就跟大家聊聊有关CSS属性简写和选择器的优先级是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

几个常用 CSS 属性的简短写法

精简 CSS 代码有很多种方法,但其中最常用的方法可能就是使用属性的简短形式。

具有简短写法的 CSS 属性很多,但是常用的属性无外乎字体、列表、背景、边框、透明等几种,所以在此对这几种属性的简短写法做个归纳,备忘。
font 属性

font 属性涉及到字体、字号、行高等好几个属性,使用简短写法的时候可以节省好多代码量。虽然并非所有属性都要定义,但是一般来说 font-size 和 font-family 是必不可少的,以下是 font 的几个属性与其对应的默认值:

  1.   

  2. font-variant: nORMal;   

  3. line-height: normal;   

  4. font-family: varies;   

  5. font-weight: normal;   

  6. font-style: normal;   

  7. font-size: medium;  

以上 6 个属性可以合并成一行,根据 W3C 规范,各属性前后排列顺序依次为:

  1.   

  2. font: [font-style] [font-variant] [font-weight] [font-size]/[line-height] [font-family];  

再看以下几个示例:

font: 14px Georgia, serif;   

  1. font: 14px/1.4 Georgia, serif;   

  2. font: italic lighter 14px/1.4 Georgia, serif;   

  3. font: italic small-caps lighter 14px/1.4 Georgia, serif;  

可以看到,一行代码就可以代替一段代码,而且看起来还更优雅一些,就是单独查找某个属性的时候有点不太方便,看着眼花。
list 属性

list 有三个属性,这三个属性分别定义:type、image 和 position,它们的属性名和默认值分别如下:


  1. list-style-type: disc;   

  2. list-style-image: none;   

  3. list-style-position: outside;  

list 只有三个属性,并不复杂,但是我们仍然可以将这三个属性合并为在一行中,根据 W3C 规范,写法如下:


  1.   

  2. list-style: [list-style-type] [list-style-position] [list-style-image];   

  3.   

  4.   

  5. list-style: none;   

  6. list-style: disc;   

  7. list-style: disc outside;   

  8. list-style: disc outside url(bg.png);  

一如既往的简单,基本上就是简写了 list 属性的名称,然后按顺序排列一下属性的值即可。
background 属性

很多样式表中都会多次定义 background 属性,每次都要重复其 5 个属性的话,那代码量可会成倍的增加呢。下面是其 5 个属性名及其默认值:

  1.   

  2. background-attachment: scroll;   

  3. background-color: transparent;   

  4. background-position: top left;   

  5. background-repeat: repeat;   

  6. background-image: none;  

根据 W3C 规范,将其 5 个属性合并起来的写法如下:

  1.   

  2. background: [background-color] [background-image] [background-repeat] [background-attachment] [background-position];   

  3.   

  4.   

  5. background: #777;   

  6. background: url(images/bg.png) 0 0;   

  7. background: #777 url(images/bg.png) repeat-x 0 0;   

  8. background: #777 url(images/bg.png) repeat-x fixed 0 0;  

对于 background 简短写法而言,不同的标签的使用方法和效果都有一些细微差别,欲知详情者,请至官方文档查看。
border 属性

border 属性更为简单,它 3 个属性以及默认值如下:

  1.   

  2. border-width: none;   

  3. border-style: none;   

  4. border-color: none;  

根据 W3C 规范,其简短写法如下:

  1.   

  2. border: [border-width] [border-style] [border-color];   

  3.   

  4.   

  5. border: 1px solid #111;   

  6. border: 2px dotted #222;   

  7. border: 3px dashed #333;  

当然也可以为 4 个边框定义不同的样式:

  1. border-bottom: 1px solid #777;   

  2. border-right:  2px solid #111;   

  3. border-left:   2px solid #111;   

  4. border-top:    1px solid #777;  


CSS 选择器的优先级问题

CSS 意为层叠样式表。所谓层叠,就是说,可以用多个 CSS 声明来作用于同一元素,例如用一段 CSS 来定义文字的颜色,用另外一段 CSS 来定义文字的大小,最终达到样式叠加的效果。

这种特性一定程度上使 CSS 可以更为方便的定义样式,但同时也带来了一定的复杂性。例如,当多个样式作用于同一个元素,而且还是作用于同一个属性,元素最终会以何种方式来呈现样式呢?

参考下面这个例子:

  1. p {   

  2.  color: black;   

  3.  background-color: white;   

  4. }   

  5. div.warning p {   

  6.  color: red;   

  7. }   

  8. div#caution p {   

  9.  color: yellow;   

  10. }   

  11. body#home div p {   

  12.  color: white;   

  13. }  

此样式表中有 4 组选择器,且最终都指向 p 元素,并且每组样式中都有 color 属性。这样一来,可能的情况就是会有多个颜色属性,被施加于同一个 p 元素。问题来了,浏览器最终会以什么样的方式来渲染 p 的颜色呢?后定义的颜色会覆盖掉先定义的颜色吗?

这里就涉及到一个 CSS 选择器优先级的问题,如果有多个选择器作用于某元素的同一个属性,那么浏览器会去计算其对应选择器的优先级,并最终将优先级最高的那个选择器的样式作用于元素。
如何计算优先级呢?

优先级的计算通常遵循如下规则:

    如果某元素被设置了 style 属性,也就是说被设置了行内样式,那么此行内样式将拥有最高的优先级,任何其它外部样式都不能将其覆盖。如果没有被设置行内样式,那么参照下面的第 2 条规则。
    数一下选择器中 ID 选择器的个数,个数最多的,优先级就最高。如果 ID 选择器个数相同,或者压根儿就没有 ID 选择器,那么参照下面的第 3 条规则。
    数一下类选择器(如 .test)的个数,属性选择器(如 [type="submit"])的个数,还有伪类选择器(如 :hover)的个数,然后将个数加起来,总数最多的,这组选择器的优先级就最高。如果总是一样多,或者都为 0,那么参照下面的第 4 条规则。
    数一下标签选择器(如 p)的个数,另外还有伪元素选择器(如 :first-letter)的个数,加起来,总数最多的,优先级就最高。

如果经过上面的计算,优先级还是一样高,那么遵循后出现的样式覆盖先出现的样式之规则。

现在回过头来看先前的例子,那四组选择器的优先级分别为 0001、0012、0102、0103,之所以把优先级数字化,是因为这样更方便比较。按照自然数法则(事实上它们并非自然数)来比较,1 < 12 < 102 < 103,这样一来,它们的优先级孰高孰低,就一目了然了。

看完上述内容,你们对CSS属性简写和选择器的优先级是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网html频道,感谢大家的支持。

--结束END--

本文标题: CSS属性简写和选择器的优先级是怎样的

本文链接: https://lsjlt.com/news/81786.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CSS属性简写和选择器的优先级是怎样的
    今天就跟大家聊聊有关CSS属性简写和选择器的优先级是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。几个常用 CSS 属性的简短写法精简 CSS...
    99+
    2024-04-02
  • CSS中的选择器与样式优先级是怎样的
    这篇文章给大家介绍CSS中的选择器与样式优先级是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。优先级:由高到低(从上到下)!important内联(1,0,0,0)id: (0,...
    99+
    2024-04-02
  • 常用的CSS选择器的优先级是怎样的
    这篇文章主要介绍常用的CSS选择器的优先级是怎样的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 遇到这种问题,就按照平时写的答,从全局、局部(标签、标签属性、伪元素、伪类等)入手...
    99+
    2024-04-02
  • css选择器优先级是什么
    小编给大家分享一下css选择器优先级是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 选择器优先级由高到低分别为: ...
    99+
    2024-04-02
  • CSS选择器优先级的分类是什么
    这篇文章主要讲解了“CSS选择器优先级的分类是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS选择器优先级的分类是什么”吧!一、优先级的分类我们可以把 CSS 的优先级从高到低来分成...
    99+
    2023-06-27
  • css选择器的优先级排序是什么
    CSS选择器的优先级排序如下:1. !important:具有最高优先级,会覆盖其他所有规则。2. 内联样式:通过style属性直接...
    99+
    2023-10-12
    css
  • css选择器优先级最高的是什么
    css 选择器优先级最高的是内联样式,它直接写在 html 元素的 style 属性中,具有最高的优先级,其他优先级依次为:id 选择器、类选择器、元素选择器、通配符选择器。 CSS选...
    99+
    2024-04-06
    css css选择器 html元素 id选择器
  • CSS中的选择器优先级顺序
    本篇内容主要讲解“CSS中的选择器优先级顺序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中的选择器优先级顺序”吧!特殊性是什么在对一个HTML元素应用C...
    99+
    2024-04-02
  • 如何理解CSS编写中的属性优先级
    今天就跟大家聊聊有关如何理解CSS编写中的属性优先级,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。当你将一个样式添加到元素上却发现不起作用时,那就是...
    99+
    2024-04-02
  • css选择器优先级是什么意思
    这篇文章主要介绍“css选择器优先级是什么意思”,在日常操作中,相信很多人在css选择器优先级是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css选择器优先级是什么意思”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • CSS选择器有哪些?CSS选择器优先级怎么排序?
    这篇文章将为大家详细讲解有关CSS选择器有哪些?CSS选择器优先级怎么排序?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。CSS选择器 CSS选择器用于从HTML文档中选择特定的元素或元素集,以便对其应用...
    99+
    2024-04-02
  • html标签属性和css属性的优先级哪个比较高
    这篇文章给大家分享的是有关html标签属性和css属性的优先级哪个比较高的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。html标签属性和css属性相比,css属性的优先级高。原因:W3C标准提倡使用CSS样式,提...
    99+
    2023-06-15
  • CSS中的属性选择符和结构化伪类是怎样的
    今天就跟大家聊聊有关CSS中的属性选择符和结构化伪类是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。属性选择符属性名选择符格式:标签名[属性名...
    99+
    2024-04-02
  • css选择器的优先级从高到低是什么意思
    css选择器优先级从高到低:行内样式id选择器类选择器标签选择器通用选择器 CSS 选择器优先级从高到低 CSS 选择器优先级决定了多个选择器应用到 HTML 元素时,哪个选择器将生效...
    99+
    2024-04-06
    css css选择器
  • CSS属性选择器指的是什么
    小编给大家分享一下CSS属性选择器指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! CSS属性选择器 <met...
    99+
    2024-04-02
  • css中的属性选择器是什么
    小编给大家分享一下css中的属性选择器是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! [attr]:匹配拥有attr属性的标签。 [attr=val]:匹配拥有attr属性,...
    99+
    2024-04-02
  • CSS的属性选择器怎么用
    这篇文章主要介绍CSS的属性选择器怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   对带有指定属性的HTML元素设置样式。   可以为拥有指定属性的HTML元素设置样式,...
    99+
    2024-04-02
  • css属性和值选择器怎么用
    这篇文章给大家分享的是有关css属性和值选择器怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 上面的例子为 title="W3School" 的全体元...
    99+
    2024-04-02
  • jQuery如何解决添加样式属性的优先级别
    这篇文章主要介绍jQuery如何解决添加样式属性的优先级别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!jQuery类中添加多个属性$('#five .a'...
    99+
    2024-04-02
  • 了解CSS选择器通配符的权重和优先级的深层次理解
    深入理解CSS选择器通配符的权重和优先级在CSS样式表中,选择器是用来指定样式应用于哪些HTML元素的重要工具。选择器的优先级和权重决定了当多个规则同时作用于一个HTML元素时,应用哪个样式。通配符选择器是CSS中一种常见的选择器。它使用“...
    99+
    2023-12-26
    优先级 CSS选择器 权重
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作