900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > css选择器优先级菜鸟工具 css派生选择器有几种 – CSS – 前端 css div 浮动层

css选择器优先级菜鸟工具 css派生选择器有几种 – CSS – 前端 css div 浮动层

时间:2023-04-09 01:21:05

相关推荐

css选择器优先级菜鸟工具 css派生选择器有几种 – CSS – 前端 css div 浮动层

1.标签选择器:直接用元素的标签来进行选择

span { // 直接选择span标签

size:16px;

}

1

2

3

1

2

3

2.ID选择器:通过设置id名字,进行精确的选择,用#来定义

# div1 { //通过id名字来进行选择

color:red;

}

<div>1</div>

1

2

3

4

1

2

3

4

3.类选择器:通过类名来进行选择,选择范围比id选择器大,用’.来定义

.div1 { //所有类名为div1的都被选择了

color:red;

}

<div>1</div>

<div>1</div>

<div>1</div>

1

2

3

4

5

6

1

2

3

4

5

6

4.通配符选择器:范围更大,作用于所有标签,用*来定义

不建议使用,对页面加载负担大

高级选择器

1.后代选择器:定义用空格隔开

div span { //选择的是div标签下的span标签,当然后代顾名思义可以不止隔一代,可以隔多代进行选择

color:red;

}

<div><span>1</span></div>

1

2

3

4

1

2

3

4

2.交集选择器:与后代选择器定义的不同是,没有空格隔开,两个元素紧挨着

span#a1 { //选择的是两个条件1.既是span标签的 2.id名是a1的元素,两个条件缺一不可

color:red;

}

<span id=“a1”>1</span>

<span >1</span>

1

2

3

4

5

1

2

3

4

5

3.并集选择器:定义用逗号隔开

span,#a1 { //选择的是1.是span标签的 2.id名是a1的元素,两个条件满足一个即可

color:red;

}

<span id=“a1”>1</span>

<span >1</span>

1

2

3

4

5

1

2

3

4

5

4.伪类选择器:

1.静态伪类:点击连接之前(link),点击连接之后(visited)这样的

2.动态伪类:鼠标移入(hover),点击之后(focus)

@ css文件夹里放什么?

浏览器解析html文档是自上而下的,如果将CSS放在底部,页面可以逐步呈现,但在CSS下载并解析完毕后,已经呈现的文字和图片就要需要根据新的样式重绘,这是一种不好的用户体验。

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

css文件应该放在HTML顶部的head中。

why?

link标签里面的href(HyperText reference)属性表示超文本引用,当CSS使用href引用,浏览器会识别该文档为CSS,并行下载,不会停止对当前文档的加载,在加载html生成DOM tree的时候,就可以同时对DOM tree进行渲染,这样可以防止闪跳,白屏或者布局混乱。

最理想的情况,大家希望浏览器逐渐的渲染下载好的CSS,将页面逐渐的展现给用户。但是浏览器为了避免样式变化时重新渲染绘制页面元素,会阻塞内容逐步呈现,浏览器等待所有样式加载完成之后才一次性渲染呈现页面。

CSS文件如果放置底部,浏览器阻止内容逐步呈现,浏览器在等待最后一个css文件下载完成的过程中,就出现了“白屏”(新打开连接时为白屏,尔后先出现文字,图片,样式最后出现)。这点非常严重,因为在网速非常慢的情况下,css下载时间比较长,这样就给用户带来“白屏”的时间自然也就很长了,用户体验非常差。

CSS文件放在顶部一方面是因为放置顺序决定了下载的优先级,更关键的是浏览器的渲染机制。

css在加载过程中不会影响到DOM树的生成,但是会影响到Render树的生成,进而影响到layout,所以一般来说,style的link标签需要尽量放在head里面,因为在解析DOM树的时候是自上而下的,而css样式又是通过异步加载的,这样的话,解析DOM树下的body节点和加载css样式能尽可能的并行,加快Render树的生成的速度。

将CSS放在底部,页面可以逐步呈现,但在CSS下载并解析完毕后,已经呈现的文字和图片就要需要根据新的样式重绘,这是一种不好的用户体验。

@ postcss和cssmodule是什么?

postcss是什么?

根据官网的解释,它是一种javascript编写的工具,用来转化css的。可以认为它是处理css的插件集合,需要配合诸如webpack、gulp等编译工具才能展现它强大的能力。

目前社区提供了非常多的插件,比较有名的如下:

autoprefixer 可以为css的属性配置兼容性的前缀,不需要手动添加postcss-preset-env 允许你使用更加现代的css特性stylelint 检查css语法错误cssnano css的压缩器等等postcss的原理

如果大家了解babel的原理,那就应该听说过AST即抽象语法树。编译器将字符串进行词法分析、语法分析,再做转换,最终达到预期的结果。postcss也是同样的原理,这个包已经为使用者提供了解析的方法parse,并且也提供了很多转化的API,利用这些就可以自己开发一款postcss插件了。

css Module是什么?

先前呢,大家使用css选择器,它是对整个页面是有效的,也就是全局的,当你每次迭代需求的时候,需要考虑每次添加新的css是否会影响到其他地方,所以大家有时选择为样式表添加命名空间。css Module为大家提供了另外一种开发方式,它可以使css具有局部作用域。

用法如下:

用法是如此的简单,基本一看就会,css-loader为大家提供了css Module的开关,只要为css-loader添加参数选项modules就可以开启。注意:它必须放在less或者sass的loader之前。

那它如何做到局部作用域的呢?

打开element面板可以发现,它把class变成了md5戳,对应每个组件,保持唯一。

vue的scoped

由此大家联想到vue的scoped,它也解决了css局部作用域的问题!

它在dom上生成了一个data属性,并且给class选择器添加了属性选择器,类似于之前的md5戳。不过由于添加了属性选择器,使得选择器的优先级变高了,想在组件外面覆盖css属性就变得不那么容易了!

喜欢偶的回答就关注偶吧,有问题可以发表评论,大家一起学习,共同成长!

@ CSS优先级算法如何计算?

css 最常用的选择符是类,即class,还有就是id 和元素,其次有通配符*还有一些伪类和伪元素。

子元素可以继承父元素的属性值。

优先级的话,id > class >元素>伪类和伪元素。! important 优先级最高,但不常用。还有一种是.id > .class 要大于. class, 既优先权可以累加

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。