第三次网页前端培训笔记(CSS基础和选择器)

一、CSS基础

如果学习CSS则要首先学习HTML,CSS是指层叠样式表,首先要了解CSS的基础语法,包括id和class选择器,创建,背景,文本,字体,链接样式,列表样式,表格,盒子模型,边框,轮廓属性,外边距,填充,分组和嵌套,尺寸,定位,浮动,水平对齐,组合选择符以及等等。

1.多页面应用同一个样式

通常保存在外部的独立的 .CSS 文件(该文件不属于任何页面文件)可以在多个页面中使用同一个 CSS 样式表。通过在任何的页面文件中引用 .CSS 文件,你可以设置具有一致风格的多个页面。

2.样式层叠

样式层叠就是对一个元素多次设置同一个样式,这将使用最后一次设置的属性值。

3.样式层叠次序

当同一个 HTML 元素定义了多个样式时,应该使用哪个样式?

一般而言,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,其中数字 4 拥有最高的优先权。

二、CSS选择器

选择器	            用法
id选择器	        #myid
类选择器	            .myclassname
标签选择器	        div,h1,p
相邻选择器	        h1+p
子选择器             ul > li
后代选择器           li a
通配符选择器         *
属性选择器	        a[rel="external"]
伪类选择器	        a:hover, li:nth-child

1.选择器的优先级

一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越准确,它的优先级就越高。通常我们用1表示标签名选择器的优先级,用10表示类选择器的优先级,用 100 标示 ID选择器的优先级。比如上例当中 .polaris span {color:red;}的选择器优先级是 10 + 1 也就是11;而 .polaris 的优先级是10;浏览器自然会显示红色的字。理解了这个道理之后下面的优先级计算自是易如反掌:

div.test1 .span var 优先级 1+10 +10 +1

span#xxx .songs li 优先级1+100 + 10 + 1

#xxx li 优先级 100 + 1
  1. 准确的选到要控制的标签;
  2. 使用最合理优先级的选择器;
  3. HTML 和 CSS 代码尽量简洁美观。

2.如何提升CSS选择器性能

1、避免使用通用选择器

.content  {color: red;}

2、避免使用标签或 class 选择器限制 id 选择器

避免使用

button#backButton {…}

避免使用
.menu-left#newMenuIcon {…}

推荐使用
#backButton {…}

推荐使用
#newMenuIcon {…}

3、避免使用标签限制 class 选择器

避免使用
treecell.indented {…}

推荐使用
.treecell-indented {…}

最优使用

.hierarchy-deep {…}

4、避免使用多层标签选择器。使用 class 选择器替换,减少 css 查找

避免使用
treeitem[mailfolder="true"] > treerow > treecell {…}

推荐使用
.treecell-mailfolder {…}

5、避免使用子选择器

避免使用
treehead treerow treecell {…}

BETTER, BUT STILL BAD 

treehead > treerow > treecell {…}

推荐使用
.treecell-header {…}

6、使用继承

避免使用
#bookmarkMenuItem > .menu-left { list-style-image: url(blah) }

推荐使用

#bookmarkMenuItem { list-style-image: url(blah) }

3.简介高效的CSS

1、不要在ID选择器前使用标签名

一般写法:DIV#divBox

更好写法:#divBox

解释: 因为ID选择器是唯一的,加上 div 反而增加不必要的匹配。

2、不要再class选择器前使用标签名

一般写法:span.red

更好写法:.red

解释:同第一条,但如果你定义了多个 .red,而且在不同的元素下是样式不一样,则不能去掉,比如你 CSS 文件中定义如下:

p.red{color:red;}  

span.red{color:#ff00ff}

3、尽量少使用层级关系

一般写法:#divBox p .red{color:red;}

更好写法:.red{..}

4、使用class代替层级关系

一般写法:#divBox ul li a{display:block;}

更好写法:.block{display:block;}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值