CSS入门知识汇总

1.CSS认识

在谈论CSS的概念之前,我们先说一说web标准的目的——其在于创建一个统一的用于web表现层的技术标准,以便通过不同浏览器或终端设备向最终用户展示信息内容。一个网页的呈现是由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。

而三大部分又是由html、css、js来编写组成的:


结构


HTML


样式


CSS


行为


JS

1.1 CSS的概念及作用

CSS是(Cascading Style Sheets)层叠样式表的缩写 ,简称样式表。

网页设计者使用CSS可以定义元素的样式,包括字体,颜色及其它的高级样式。

采用CSS样式的优点:

1. 提高页面浏览速度。 使用CSS方法,比传统的web设计方法至少节约50%以上的大小。

2. 缩短改版时间,将表现与内容相分离。 只要简单的修改几个CSS文件就可以重新设计一个有成千上万个网页。

3.降低网站流量的费用。带宽要求降低(代码更简洁),成本更低

4.联想容易被搜寻引擎搜索到。 提高网站在百度或google中的排名

5.内容能被更广泛的设备所访问。包括屏幕阅读机,手持设备等。

1.2 CSS的三种基本写法

语法简单说明如下:


单个样式:

样式属性名样式属性值 比如 color:red;


多个样式:

样式属性名:样式属性值 ; 样式属性名:样式属性值 ;

比如 color:red;font-size:120px;

注意:

1.属性值不需要使用引号括起来,除非属性值是由多个单词组成,如:font-family: "sans serif";

2.有的属性可以指定多个属性值,多个属性值间以“,”隔开;

3.当定义多个值时,浏览器按照从前向后顺序选择属性值。如果第1个值有效,则尝试使用,如果第1个无效,则使用第2个,依次类推。

①写法一:在标签中的style属性中直接写样式

1 <!-- 写法一 -->
2 <div style="color: red;font-weight: bold;font-style: italic;font-family:楷体;">叠层样式表</div>

②写法二:在style标签内书写样式,标签可以放在页面的任何位置;推荐写在head、body中

 1 <head>
 2 <meta charset="UTF-8">
 3 <title>Insert title here</title>
 4 <!--div选择器 写法二-->
 5 <style type="text/css">
 6 div {
 7     color: red;
 8     font-weight: bold;
 9     font-style: italic;
10     font-family:楷体;
11 }
12 </style>
13 </head>
14 <body>
15 <div>叠层样式表</div>
16 </body>

③写法三:外部引入样式,实际项目中应用最多,使用link标签进行.css文件外部引用

 1 <head>
 2 <meta charset="UTF-8">
 3 <title>Insert title here</title>
 4 <!-- link中必须要有rel和href两个属性 写法三 -->
 5 <link rel="stylesheet" href="./css/02-css.css">
 6 </head>
 7 <body>
 8 <!-- 写法三:外部引入样式,实际项目中应用最多,使用link标签进行.css文件外部引用-->
 9 <div>叠层样式表</div>
10 </body>

.css文件中写入选择器对应的样式列表,如下:

1 @CHARSET "UTF-8";
2 div {
3     color: red;
4     font-weight: bold;
5     font-style: italic;
6     font-family:楷体;
7 }

2.CSS选择器

2.1基本选择器

CSS基本选择器比较简单,主要分为:通用选择器、标签选择器、类选择器、ID选择器四大类。直接上代码看一下就懂了:

 1 <head>
 2 <meta charset="UTF-8">
 3 <title>Insert title here</title>
 4 <style type="text/css">
 5 /* 1.通用选择器
 6 *{
 7     color: red;
 8     font-weight: bold;
 9     font-style: italic;
10     font-family:楷体;
11 } */
12 /* 2.标签选择器
13 span{
14     color: red;
15     font-weight: bold;
16     font-style: italic;
17     font-family:楷体;
18 } */
19 /* 3.类选择器
20  .spanstyle{
21     color: red;
22     font-weight: bold;
23     font-style: italic;
24     font-family:楷体;
25 } */
26 /* 4.ID选择器
27 #id1{
28     color: red;
29     font-weight: bold;
30     font-style: italic;
31     font-family:楷体;
32 } */
33 </style>
34 </head>
35 <body>
36 <!-- 选择器:选择器名{样式...}
37      1.通用选择器:*{样式};找到所有标签,渲染速度不高;
38      2.标签选择器:标签名{样式};
39      3.类选择器:.类名{样式},选择器名是class属性的值,class属性值可以有多个相同
40      4.ID选择器:#ID属性值{样式},ID取值推荐是唯一的,不唯一都会渲染效果、不报错(但实际项目中必须唯一)-->
41 <div>div样式</div>
42 <span class="spanstyle">span样式</span>
43 <a id="id1">a超链接样式</a>
44 </body>

2.2其他选择器

CSS其他选择器主要有:多元素选择器、后代选择器、子元素选择器、相邻元素选择器、属性选择器这五大类,具体还是看代码:

 1 <head>
 2 <meta charset="UTF-8">
 3 <title>Insert title here</title>
 4 <style type="text/css">
 5 /*1.多元素选择器
 6 div,span,a{
 7     color: red;
 8     font-weight: bold;
 9     font-style: italic;
10     font-family:楷体;
11 } */
12 /*2.后代选择器
13  #intro p{
14     color: red;
15     font-weight: bold;
16     font-style: italic;
17     font-family:楷体;
18 }*/
19 /*3.子元素选择器
20  #intro > p > span {
21     color: red;
22     font-weight: bold;
23     font-style: italic;
24     font-family:楷体;
25 }*/
26 /*4.相邻元素选择器
27 span + p {
28     color: red;
29     font-weight: bold;
30     font-style: italic;
31     font-family:楷体;
32 }*/
33 /*5.属性选择器
34 a[target]{
35     color: red;
36     font-weight: bold;
37     font-style: italic;
38     font-family:楷体;
39 }
40 a[target=_blank]{
41     color: red;
42     font-weight: bold;
43     font-style: italic;
44     font-family:楷体;
45 } */
46 </style>
47 </head>
48 <body>
49 <!-- 选择器:其他选择器
50      1.多元素选择器:多个标签共用一个样式,写法:标签名1,标签名2,标签名n{样式}
51      2.后代选择器:匹配前面的大类选择器(包含)里面的选择器,渲染后代样式;选择器为两种(大/小),中间用空格
52      3.子元素选择器:选择器名称之间用>符号,和后代选择器作用类似,但支持多级下的子元素渲染,比后代选择器定位更精确
53      4.相邻元素选择器:适用于两个同级别元素之间,使用+号连接,会渲染+号之后的那个元素样式
54      5.属性选择器 :匹配所有具有attr属性或匹配所有attr属性,且attr属性值为val的元素渲染-->
55 <div>div样式</div>
56 <span class="spanstyle">span样式</span>
57 <p>p1标签样式</p>
58 <a id="id1">a超链接样式</a>
59 <div id="intro">
60     <p>
61         我是大p<br>
62         <span>我是大p里面的span</span>
63     </p>
64     <p>我是小p</p>
65 </div>
66 <span class="spanstyle">span样式</span>
67 <p>p2标签样式</p>
68 <a href="http://www.baidu.com" target="_blank">baidu.com</a><br>
69 <a href="http://www.taobao.com" target="_top">taobao.com</a>
70 </body>

另外独立来说一说伪类选择器,CSS伪类选择器主要用于某些选择器添加特殊的效果。主要在支持CSS的浏览器上对链接的不同状态以不同的方式显示。这些状态包括:活动状态(active),已被访问状态(visited),未被访问状态(link),和鼠标悬停状态(hover)。

1 a:link {color: #FF0000}        /* 未访问的链接 */
2 a:visited {color: #00FF00}    /* 已访问的链接 */
3 a:hover {color: #FF00FF}    /* 鼠标移动到链接上 */
4 a:active {color: #0000FF}    /* 选定的链接 */

提示:在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。

提示:在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。

提示:伪类名称对大小写不敏感。

下面以一个a:hover的例子来解释一下伪类选择器的作用:

 1 <head>
 2 <meta charset="UTF-8">
 3 <title>Insert title here</title>
 4 <style type="text/css">
 5 /*将所有的a标签的状态都修改成下面这样*/
 6 a{
 7     color:black;
 8     text-decoration: none;  /*不显示下划线*/
 9 }
10 /*当鼠标移上来的状态我们进行单独的修改*/
11 a:hover{
12     color:red;
13     text-decoration: underline;
14     font-size:30px;
15 }
16 </style>
17 </head>
18 <body>
19 <!-- 伪类选择器,主要有四个大的属性:
20      a:link             未访问的链接
21      a:hover   鼠标移动到链接上
22      a:active  选定的链接
23      a:visited 已访问的链接
24       -->
25 <a href="www.baidu.com">百度网址</a>
26 </body>

显示效果如下:

更多CSS伪类知识可以参考:http://www.w3school.com.cn/css/css_pseudo_classes.asp

3. CSS的优先级

CSS样式是有优先级的,具体的样式优先级(渲染顺序)如下:

!important > 行内样式 > id选择器 > 类选择器 > 标签选择器,在选择器优先级(先看优先级)相同的情况下,参照就近原则,具体示例如下代码:

 1 <head>
 2 <meta charset="UTF-8">
 3 <title>Insert title here</title>
 4 <!-- 样式优先级:!important > 行内样式 > id选择器 > 类选择器 > 标签选择器
 5      选择器优先级相同,则是就近原则渲染,即渲染先后 -->
 6 <style type="text/css">
 7 /* div{
 8     color:red !important;
 9 } */
10 /* #divId{
11     color:green;
12 } */
13 .divClass{
14     color: yellow;
15 }
16 div{
17     color: orange;
18 }
19 div{
20     color:black;
21 }
22 </style>
23 </head>
24 <body>
25 <div id="divId" class="divClass" style="color: blue;">我被渲染了</div>
26 </body>

4.CSS的继承性

HTML文档以树形结构进行组织,各元素之间是一种层次关系,这种层次关系同样反映在样式表的应用中。具有层次关系的元素之间,内层元素将继承外层元素的样式,多个外层元素中定义的样式将叠加到内层元素。

HTML中,<body>是其他元素的容器,是其他元素的最外层元素,所以<body>元素中定义的样式将影响其他所有元素的显示格式。

具体示例如下:

 1 <head>
 2 <meta charset="UTF-8">
 3 <title>Insert title here</title>
 4 <!-- 继承性:具有层次关系的元素之间,内层元素将继承外层元素的样式,多个外层元素中定义的样式将叠加到内层元素 -->
 5 <style type="text/css">
 6 .divclass{
 7     color: blue;
 8     border-width:1px;
 9      border-style:solid;
10     border-color:red;
11 }
12 </style>
13 </head>
14 <body>
15 <!--
16 border属性的两种写法:
17 第一种写法: border:border-width border-style border-color
18 第二种写法:border-width:blue;
19         border-style:solid;
20           border-color:red;-->
21 <div style="color: blue;border: 1px solid red">
22     <p>字体变红</p>
23 </div>
24 <div class="divclass">
25     <p>字体变红</p>
26 </div>
27 </body>

具有继承的CSS属性:


说明


对应属性


文本相关的属性是继承的


text-align、color、text-indent、font-family、font-size、

font-style、font-weight、 letter-spacing、word-spacing、

text-transform、line-height等


列表相关的属性是继承的(ul,ol,li)


list-style、 list-style-image、list-style-position、list-style-type

5.更多CSS

本文只列出了本人作为web开发时常用的CSS知识入门进行系统总结,不包含CSS3等特定CSS知识,更多文档及官方知识库请链接w3school官网:

http://www.w3school.com.cn/cssref/index.asp

原文地址:https://www.cnblogs.com/yif0118/p/10660603.html

时间: 2024-10-08 17:58:30

CSS入门知识汇总的相关文章

组合博弈入门知识汇总(转)

(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规 定每次至少取一个,最多取m个.最后取光者得胜. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个, 后取者都能够一次拿走剩余的物品,后者取胜.因此我们发现了如何取胜的法则:如果 n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走 k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的 取法,那么先取者肯定获

redis入门知识汇总

1.什么是redis? Redis 是一个基于内存的高性能key-value数据库. 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存.因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性 能最快的Key-Value DB. Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个va

Solr搜索引擎入门知识汇总

1.技术选型,为什么用solr而不用lucene,或者其他检索工具 lucene:需要开发者自己维护索引文件,在多机环境中备份同步索引文件很是麻烦 Lucene本质上是搜索库,不是独立的应用程序.而Solr是. Lucene专注于搜索底层的建设,而Solr专注于企业应用. Lucene不负责支撑搜索服务所必须的管理,而Solr负责. 一句话概括Solr: Solr是Lucene面向企业搜索应用的扩展 其实相识的技术还有ElasticSearch,但是ES只支持json文件格式,需要靠第三方插件提

nginx服务器入门知识汇总

IP-hash 就是根据IP进行hash计算,然后分配到对应的服务器,好处就是不用session同步,固定IP会固定访问一台服务器,缺点就是恶意攻击,会造成某台服务器压垮.提供的服务不同,面向的地区不同,IP可能会出现集中,造成不均匀,不可控. ginx的并发能力在同类型网页服务器中的表现,相对而言是比较好的,因此受到了很多企业的青睐,我国使用Nginx网站的知名用户包括腾讯.淘宝.百度.京东.新浪.网易等等.Nginx是网页服务器运维人员必备技能之一,下面为大家整理了一些比较常见的Nginx相

移动H5开发入门知识,CSS的单位汇总与用法

说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid app的开发,都用到了css3技术,在css3中,新增了许多单位,rem.vw和vh.vmin和vmax.ch和ex等等,那现在对这些单位分别做一下详细的介绍吧. 1.em 做前端的应该对em不陌生,不是什么罕见的单位,是相对单位,参考物是父元素的font-size,具有继承的特点.如果字体大小是16

H5移动端开发入门知识以及CSS的单位汇总与用法

说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid app的开发,都用到了css3技术,在css3中,新增了许多单位,rem.vw和vh.vmin和vmax.ch和ex等等,那现在对这些单位分别做一下详细的介绍吧. 1.em 做前端的应该对em不陌生,不是什么罕见的单位,是相对单位, 这种技术需要一个参考点,一般都是以<body>的“font-siz

JavaScript正則表達式知识汇总

Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegExp(); 3.RegExp 对象有 3 个方法: 1)test()检索字符串中的指定值,返回值是true或false. var p1=new Reg("e"); document.write(Reg.test("welcome to China!")); 2)exec

JavaScript正则表达式知识汇总

Js 正则表达式知识汇总 正则表达式: 1.什么是RegExp?RegExp是正则表达式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegExp(); 3.RegExp 对象有 3 个方法: 1)test()检索字符串中的指定值,返回值是true或false. var p1=new Reg("e"); document.write(Reg.test("welcome to China!")); 2)exec

web前端工程师知识汇总

分类: Web开发应用 一.何为Web前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/DOM/Flash等各种Web技术进行产品的界面开发.制作标准优化的代码,并增加交互动态功能,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验. Web前端工程师成长之路--知识汇总 图1.前端技术MSS W