Loading

CSS整体感知和选择器

CSS整体感知

简介

前端开发3层:

  • HTML 结构层 语义、结构
  • CSS 样式层 样式
  • JS 行为层 交互、行为、动画

CSS的全称呼是cascading style sheet , 层叠式样式表。

CSS的维护者也是w3c,最新版本是CSS3,但是浏览器没有那么的兼容,所以我们学习的是CSS2.1

下图就是在Chrome和IE8中看机器猫:

http://www1.pconline.com.cn/pcedu/specialtopic/css3-doraemon/

整体感知

css分为两个部分,选择谁、设置什么样式。

查看代码
1<style type="text/css">
2		h1{
3			color:red;
4			background-color: blue;
5			font-size: 20px;
6			font-style: italic;
7		}
8		p{
9			color:green;
10			font-size: 40px;
11			text-shadow:2px 2px 2px black;
12			font-family: "微软雅黑";
13	 		transform:rotate(30deg);
14			width: 300px;
15		}
	</style>

上面的h1、p就是选择器。表示选择哪些HTML标签给他们加样式,就是说你要给谁加样式。然后大括号里面,就是k:v;的结构,把所有的样式列出来

style标签

所有的css样式,写在style标签中,style标签写在<head>里面

查看代码
1<style type="text/css">
2
</style>

style就是样式的意思,表示这个标签里面写的是样式。type是类型;text/css表示纯文本的css

css对换行不敏感、缩进不敏感。每个选择器最后一项的属性值可以没有分号,其他都要有。

几个属性

  • 文字颜色

1 color:red;

color就是文字颜色的意思。,还能用rgb、十六进制来描述颜色。

  • 背景颜色

1 background-color:blue;

background就是背景的意思,中间有个短横和color连接。我们css中多个词组都是短横分开的。

sublime中快捷键是bgc tab

  • 字号

1 font-size:40px;

font就是字体,size就是尺寸。px是英语pixel像素的意思。

  • 边框

1 border:1px solid green;

border就是边框的意思,它的值很有意思,是三个部分,用空格隔开

这三个部分,可以顺序交换。

  • 1px 就是粗细,可以任意调整;
  • solid就是实线,如果是虚线写dashed;
  • green就是颜色,可以任意设置。

基本选择器

标签选择器

选择器就是怎么选择元素的,标签选择器是最最简单的选择器,就是选择页面上所有的同种标签。要注意的是,选择的是页面上的所有这个标签,而不是一个。

1  <style type="text/css">

2  h3{

3  color:blue;

4  }

5  p{

6  color:red;

7  }

8  </style>

即使它藏的很深,也能被选择器上。

body就是页面,如果要设置整个页面的背景颜色,要设置body。

1  body{

2  background-color:yellow;

3  }

标签选择器有点不好用,要选择就都选择了。所以主要的用途就是设置一些标签的默认情况。当我们给元素设置样式之后,我们应该会通过Chrome审查元素来查看:

id选择器

就是对某一个(注意就一个)元素,进行特别的样式设定的时候用。就是给元素一个特别的名字,然后通过这个名字来选择它。就是给元素加上id属性,然后在选择器用#开头进行选择。

1  <p id="pp">我是一个段落</p>

选择的时候写#:

1  <style type="text/css">

#pp{

3  color:red;

4  }

5  </style>

首先,任何元素都可以设置id属性,合法的id属性是英语字母开头(大小写敏感,也就是说aa和AA是两个不同的合法id)、可以有数字、下划线、短横。

同一个页面中,id绝对不能相同。哪怕是不同的元素,id也不能相同,我们必须保证,id在页面上是唯一的

下面这个例子是错误的,初学者常见的错误:

1  <p id="para">我是一个段落</p>

2  <h3 id="para">我是一个h3</h3>

页面上已经有元素的id是para了,所以不能有元素仍然叫para。即使之前叫做para的是一个p,后面叫做para的是一个h3,也不行!是不合法的!

你会发现,我们可以综合利用标签选择器、id选择器一起做效果。比如,我们让所有的p的字号都是20px,让其中某一个的颜色是红色。这就是层叠式样式表的第一层含义,同一个标签可以有多个选择器选择它

类选择器

id有点不好用,因为是唯一的,如果页面上有两个、三个元素,想设置为同样的样式,id就无能为力了。所以就是用类选择器,就是给某一类元素,设置相同的类名,然后通过这个类名来选择。class叫做类名。

1  <p class="warning">我是段落</p>

2  <p class="warning">我是段落</p>

选择的时候,用点:

1  <style type="text/css">

2  .warning{

3  color:red;

4  }

5  </style>

类名的命名和id是一样的,英语字母开头(aa和AA是不一样的类名)、数字、下划线、短横。

可以有多个标签携带同一个类名:

1  <p class="warning">我是段落</p>

2  <p class="warning">我是段落</p>

3  <p>我是段落</p>

4  <p>我是段落</p>

5  <h3>我是一个h3</h3>

6  <h3 class="warning">我是一个h3</h3>

7  <p>我是段落</p>

8  <p>我是段落</p>

9  <h3>我是一个h3</h3>

10  <h3 class="warning">我是一个h3</h3>

同一个标签,可以携带多个类名,用空格隔开

1 <p class="warning xian">我是一个段落</p>

这个p标签同时携带了两个类,所以.warning选择器和.xian选择器能同时选择上他们。

1  .warning{

2  color:red;

3  }

4  .xian{

5  text-decoration: underline;

6  }

注意,使用空格隔开,不是两个class

1 <p class=warning class=xian>我是一个错误的示范</p>

原子类的意思: 比如来制作这个效果:

用原子类是最方便的,所谓的原子类,就是一些简单的属性做成一个类,然后元素自行选择:

1  <style type="text/css">

2  .hong{

3  color:red;

4  }

5  .da{

6  font-size: 50px;

7  }

8  .xian{

9  text-decoration: underline;

10  }

11  </style>

各取所需:

1  <p class="hong da">我是段落</p>

2  <p class="hong xian">我是段落</p>

3  <p class="da xian">我是段落</p>

类名的使用的时候,尽量用有语义的单词来表示:warning、important、ad、main。不要用一些具体的单词:red、hong、left-part、right-part。

写页面到底用id还是class呢?答案非常肯定:class。哪怕页面上只有某一个要改样式,那么我尽量给这一个元素一个单独的class,也不给他id。

这是因为id是js常用的标签,如果你在css就把id用掉了,js程序就有耦合性的问题。

class上样式,id上行为。

高级选择器

后代选择器

后代选择器用空格表示:

1  <div class="zhengzhi">

2  <p>我是一些政治新闻</p>

3  <p>我是一些政治新闻</p>

4  <p>我是一些政治新闻</p>

5  <p>我是一些政治新闻</p>

6  </div>

选择这些p,可以用后代选择器:

1  <style type="text/css">

2  .zhengzhi p{

3  color:blue;

4  }

5  </style>

我们现在要详细介绍一下:

  • 选择的是后代的元素,不一定是儿子,如果是孙子、曾孙子、重孙子……都行

选择的是div1这个div中的后代p:

1  <style type="text/css">

2  .div1 p{

3  color:red;

4  }

5  </style>

可以多重描述祖先顺序,但是顺序必须真实存在:

1  <style type="text/css">

.div1 .div3 p{

3  color:red;

4  }

5  </style>

交集选择器

选择又是p标签,同时又有haha类的元素:

1 p.haha

一般来说,语法是:

1 标签名.类名

别的交集选择器也合法,但是没人这么写:

1 #box.haha

 

1 p.haha.xixi

 

注意

1 div.box

1 div .box

并集选择器

逗号表示并集,“都”

1  <style type="text/css">

2  p,div{

3  color:red;

4  }

5  </style>

等价于:

1  p.haha{

2  color:red;

3  }

4  div.xixi{

5  color:red;

6  }

通配符*

选择所有元素,用*

1  <style type="text/css">

2  *{

3  color:red;

4  }

5  </style>

 

posted @ 2022-02-14 10:33  sunflower-js  阅读(53)  评论(0编辑  收藏  举报