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属性中直接写样式
<!-- 写法一 -->
<div style="color: red;font-weight: bold;font-style: italic;font-family:楷体;">叠层样式表</div>
②写法二:在style标签内书写样式,标签可以放在页面的任何位置;推荐写在head、body中
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!--div选择器 写法二-->
<style type="text/css">
div {
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
}
</style>
</head>
<body>
<div>叠层样式表</div>
</body>
③写法三:外部引入样式,实际项目中应用最多,使用link标签进行.css文件外部引用
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- link中必须要有rel和href两个属性 写法三 -->
<link rel="stylesheet" href="./css/02-css.css">
</head>
<body>
<!-- 写法三:外部引入样式,实际项目中应用最多,使用link标签进行.css文件外部引用-->
<div>叠层样式表</div>
</body>
.css文件中写入选择器对应的样式列表,如下:
@CHARSET "UTF-8";
div {
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
}
2.CSS选择器
2.1基本选择器
CSS基本选择器比较简单,主要分为:通用选择器、标签选择器、类选择器、ID选择器四大类。直接上代码看一下就懂了:
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
/* 1.通用选择器
*{
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
} */
/* 2.标签选择器
span{
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
} */
/* 3.类选择器
.spanstyle{
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
} */
/* 4.ID选择器
#id1{
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
} */
</style>
</head>
<body>
<!-- 选择器:选择器名{样式...}
1.通用选择器:*{样式};找到所有标签,渲染速度不高;
2.标签选择器:标签名{样式};
3.类选择器:.类名{样式},选择器名是class属性的值,class属性值可以有多个相同
4.ID选择器:#ID属性值{样式},ID取值推荐是唯一的,不唯一都会渲染效果、不报错(但实际项目中必须唯一)-->
<div>div样式</div>
<span class="spanstyle">span样式</span>
<a id="id1">a超链接样式</a>
</body>
2.2其他选择器
CSS其他选择器主要有:多元素选择器、后代选择器、子元素选择器、相邻元素选择器、属性选择器这五大类,具体还是看代码:
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
/*1.多元素选择器
div,span,a{
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
} */
/*2.后代选择器
#intro p{
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
}*/
/*3.子元素选择器
#intro > p > span {
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
}*/
/*4.相邻元素选择器
span + p {
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
}*/
/*5.属性选择器
a[target]{
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
}
a[target=_blank]{
color: red;
font-weight: bold;
font-style: italic;
font-family:楷体;
} */
</style>
</head>
<body>
<!-- 选择器:其他选择器
1.多元素选择器:多个标签共用一个样式,写法:标签名1,标签名2,标签名n{样式}
2.后代选择器:匹配前面的大类选择器(包含)里面的选择器,渲染后代样式;选择器为两种(大/小),中间用空格
3.子元素选择器:选择器名称之间用>符号,和后代选择器作用类似,但支持多级下的子元素渲染,比后代选择器定位更精确
4.相邻元素选择器:适用于两个同级别元素之间,使用+号连接,会渲染+号之后的那个元素样式
5.属性选择器 :匹配所有具有attr属性或匹配所有attr属性,且attr属性值为val的元素渲染-->
<div>div样式</div>
<span class="spanstyle">span样式</span>
<p>p1标签样式</p>
<a id="id1">a超链接样式</a>
<div id="intro">
<p>
我是大p<br>
<span>我是大p里面的span</span>
</p>
<p>我是小p</p>
</div>
<span class="spanstyle">span样式</span>
<p>p2标签样式</p>
<a href="http://www.baidu.com" target="_blank">baidu.com</a><br>
<a href="http://www.taobao.com" target="_top">taobao.com</a>
</body>
另外独立来说一说伪类选择器,CSS伪类选择器主要用于某些选择器添加特殊的效果。主要在支持CSS的浏览器上对链接的不同状态以不同的方式显示。这些状态包括:活动状态(active),已被访问状态(visited),未被访问状态(link),和鼠标悬停状态(hover)。
a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
a:active {color: #0000FF} /* 选定的链接 */
提示:在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。
提示:在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。
提示:伪类名称对大小写不敏感。
下面以一个a:hover的例子来解释一下伪类选择器的作用:
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
/*将所有的a标签的状态都修改成下面这样*/
a{
color:black;
text-decoration: none; /*不显示下划线*/
}
/*当鼠标移上来的状态我们进行单独的修改*/
a:hover{
color:red;
text-decoration: underline;
font-size:30px;
}
</style>
</head>
<body>
<!-- 伪类选择器,主要有四个大的属性:
a:link 未访问的链接
a:hover 鼠标移动到链接上
a:active 选定的链接
a:visited 已访问的链接
-->
<a href="www.baidu.com">百度网址</a>
</body>
显示效果如下:

更多CSS伪类知识可以参考:http://www.w3school.com.cn/css/css_pseudo_classes.asp
3. CSS的优先级
CSS样式是有优先级的,具体的样式优先级(渲染顺序)如下:
!important > 行内样式 > id选择器 > 类选择器 > 标签选择器,在选择器优先级(先看优先级)相同的情况下,参照就近原则,具体示例如下代码:
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 样式优先级:!important > 行内样式 > id选择器 > 类选择器 > 标签选择器
选择器优先级相同,则是就近原则渲染,即渲染先后 -->
<style type="text/css">
/* div{
color:red !important;
} */
/* #divId{
color:green;
} */
.divClass{
color: yellow;
}
div{
color: orange;
}
div{
color:black;
}
</style>
</head>
<body>
<div id="divId" class="divClass" style="color: blue;">我被渲染了</div>
</body>
4.CSS的继承性
HTML文档以树形结构进行组织,各元素之间是一种层次关系,这种层次关系同样反映在样式表的应用中。具有层次关系的元素之间,内层元素将继承外层元素的样式,多个外层元素中定义的样式将叠加到内层元素。
HTML中,<body>是其他元素的容器,是其他元素的最外层元素,所以<body>元素中定义的样式将影响其他所有元素的显示格式。
具体示例如下:
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 继承性:具有层次关系的元素之间,内层元素将继承外层元素的样式,多个外层元素中定义的样式将叠加到内层元素 -->
<style type="text/css">
.divclass{
color: blue;
border-width:1px;
border-style:solid;
border-color:red;
}
</style>
</head>
<body>
<!--
border属性的两种写法:
第一种写法: border:border-width border-style border-color
第二种写法:border-width:blue;
border-style:solid;
border-color:red;-->
<div style="color: blue;border: 1px solid red">
<p>字体变红</p>
</div>
<div class="divclass">
<p>字体变红</p>
</div>
</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
CSS入门知识汇总的更多相关文章
- HTML入门知识汇总
1. HTML认识 1.1 什么是HTML HTML是描述(制作)网页的语言,指的是超文本标记语言(Hyper Text Markup Language). 超文本:就是指页面内可以包含图片.链接.甚 ...
- CSS基础知识汇总
前言 原文连接:http://www.cnblogs.com/wanghzh/p/5805678.html 在此基础上又做了大量的扩充 CSS简介 CSS是Cascading Style Sheets ...
- CSS基本知识汇总
1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets),是一种用来表现 HTML 文档样式的语言,样式定义如何显示 HTML 元素,是能够真正做到网页表现与结构分离的 ...
- redis入门知识汇总
1.什么是redis? Redis 是一个基于内存的高性能key-value数据库. 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库 ...
- HTML5的快速使用和css3的入门知识汇总
各位开发者朋友和技术大神大家好!博主刚开始学习html5 ,自本周开始会每周更新技术博客,与大家分享每周所学.鉴于博主水品有限,如发现有问题的地方欢迎大家指正,有更好的意见和建议可在评论下方发表,我会 ...
- 看这一篇就够了,css选择器知识汇总
对大多技术人员来说都比较熟悉CSS选择器,举一例子来说,假设给一个p标签增加一个类(class),可是执行后该class中的有些属性并没有起作用.通过Firebug查看,发现没有起作用的属性被覆盖了, ...
- Solr搜索引擎入门知识汇总
1.技术选型,为什么用solr而不用lucene,或者其他检索工具 lucene:需要开发者自己维护索引文件,在多机环境中备份同步索引文件很是麻烦 Lucene本质上是搜索库,不是独立的应用程序.而S ...
- nginx服务器入门知识汇总
IP-hash 就是根据IP进行hash计算,然后分配到对应的服务器,好处就是不用session同步,固定IP会固定访问一台服务器,缺点就是恶意攻击,会造成某台服务器压垮.提供的服务不同,面向的地区不 ...
- MyBatis入门知识汇总
为什么要使用MyBatis? 我们都知道,在学习mybatis之前,要在Java中操作数据库,需要用到JDBC,但是在使用JDBC时会有许多缺陷. 比如: 1.使用时需要先进行数据库连接,不用后要立 ...
随机推荐
- Centos 6.9 安装xtrabackup-2.4.8 通用包,yum安装,全量备份,增量备份
xtrabackup-2.4.8的安装及使用 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备 ...
- SSM-Spring-02:Spring的DI初步加俩个实例
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- DI:依赖注入 第一个DEMO:域属性注入 java类:(Car类和Stu类,学生有一辆小汽车) packag ...
- 你必须知道的EntityFramework 6.x和EntityFramework Core变更追踪状态
前言 只要有时间就会时不时去看最新EF Core的进展情况,同时也会去看下基础,把握好基础至关重要,本节我们对比看看如标题EF 6.x和EF Core的不同,希望对正在学习EF Core的同行能有所帮 ...
- Scrapy 1.4 文档 04 例子
最好的学习方法是举例说明,Scrapy也不例外. 因此,我们有一个名为 quotesbot 的 Scrapy 项目,您可以通过它来学习更多关于 Scrapy 的知识. 它包含两个用于http://qu ...
- SpringMvc 这篇文章写得不错 多多学习2017.6.29
http://www.cnblogs.com/bigdataZJ/p/springmvc1.html 博客园链接
- ajax跨域问题(php)
ajax出现请求跨域错误问题,主要原因就是因为浏览器的"同源策略". 解决方法(我只用过下面这3种): 1. 架设服务器代理:即浏览器请求同源服务器,再由后者请求外部服务(之前博主 ...
- 用Visual Studio Code Debug世界上最好的语言(Mac篇)
用Visual Studio Code Debug世界上最好的语言(Mac篇) 首先,你要有台Macbook Pro,接着才继续看这个教程. PS:Windows用户看这里用Visual Studio ...
- Java一次读取文本文件所有内容
转自https://www.cnblogs.com/longronglang/p/7458027.html#undefined 我们做文本处理的时候的最常用的就是读写文件了,尤其是读取文件,不论是什么 ...
- search_request.go
package types type SearchRequest struct { // 搜索的短语(必须是UTF-8格式),会被分词 // 当值为空字符串时关键词会从下面的Token ...
- BZOJ_4813_[Cqoi2017]小Q的棋盘_dfs
BZOJ_4813_[Cqoi2017]小Q的棋盘_dfs Description 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能 在有连线的格 ...