CSS基本语法和引入方式

CSS介绍

为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此而诞生,CSS是 Cascading Style Sheets 的首字母缩写,意思是层叠样式表。有了CSS,html中大部分表现样式的标签就废弃不用了,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁。

css基本语法

css的定义方法是:

选择器 { 属性:值; 属性:值; 属性:值;}

选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性,每个属性有一个或多个值。

代码示例:

div{ width:100px; height:100px; color:red }

CSS引入方法

css页面引入方法:

  1. 外联式:通过link标签,链接到外部样式表到页面中。
  2. 嵌入式/内嵌式:通过style标签,在网页上创建嵌入的样式表。
  3. 内联式:通过标签的style属性,在标签上直接写样式。

style标签,放在head标签里面,在style里面写样式;

在网站首页时建议使用,有助于性能优化,提升用户体验;
注意,嵌入式用的是style标签,而内联式用的是style属性;

/* css引入方法1 */
<link rel="stylesheet" type="text/css" href="css/main.css"> /* css引入方法2 */
<head>
<style type="text/css">
div{ width:100px; height:100px; color:red }
......
</style>
</head> /* css引入方法3 */
<div style="width:100px; height:100px; color:red ">......</div>

css引入方式示例

示例1:引入css文件

/*01.引入css文件.html*/

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS样式引入</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 第一种插入样式的方式-外联式 -->
<link rel="stylesheet" href="./css/main.css">
</head>
<body>
<div>这是一个div标签</div> </body>
</html> /*main.css*/ div {
/*这里是css的注释*/
font-size: 26px;
color: blue;
}

示例2:嵌入式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>内嵌式引入css样式</title>
<!-- 第二种插入样式的方式-嵌入式 -->
<style>
div {
font-size: 30px;
color: red;
}
</style>
</head>
<body> <div>这是一个div标签</div>
</body>
</html>

示例3:直接在标签中写样式示例-内联式/行内样式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>内嵌式引入css样式</title>
</head>
<body>
<!-- 第三种插入样式的方式-内联式 -->
<div style="font-size: 20px;color: yellow">这是一个div标签</div>
</body>
</html>

三种方式总结:
推荐使用外联式,可以使用嵌入式,不太推荐使用内联式;
外联式嵌入式 需要用到选择器,内联式不需要使用选择器,因为它直接在选择器里面;
外联式任何情况都能使用,嵌入式在网站首页优化可以使用;
嵌入式用的是style标签,而内联式内联式用的是style属性;
首页优化用嵌入式,其他用外联式;

CSS文本设置

常用的应用文本的css样式:

  • color 设置文字的颜色,如: color:red;
  • font-size 设置文字的大小,如:font-size:12px;
  • font-family 设置文字的字体,如:font-family:'微软雅黑';
  • font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜;但一般是用来设置不倾斜的。
  • font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗。
  • font 同时设置文字的几个属性,写的顺序有兼容问题,建议按照如下顺序写: font:是否加粗 字号/行高 字体;如: font:normal 12px/36px '微软雅黑';
  • line-height 设置文字的行高,如:line-height:24px;
  • text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉,常用于将a标签的下划线去掉;
  • text-indent 设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px;一个汉字占20px,两个汉字40px。
  • text-align 设置文字水平对齐方式,如text-align:center 设置文字水平居中;span,a标签等只让文字撑开的,暂时不能居中,p,div占一行的,能居中。

01:文本样式应用实例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文本常用样式</title>
<style>
div {
font-size: 22px;
color: red;
/*font-family: "微软雅黑";*/ /*可以写中文,但建议写英文,避免可能出现的乱码*/
font-family: "Microsoft YaHei UI";
font-style: italic;
font-weight: bold;
line-height: 20px;
}
</style>
</head> <body>
<div>
常用的应用文本的css样式:
color 设置文字的颜色,如: color:red;
font-size 设置文字的大小,如:font-size:12px;
font-family 设置文字的字体,如:font-family:'微软雅黑';
font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜
font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗
</div>
</body>
</html>

02:常用的文本应用css样式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文本常用样式</title>
<style>
div {
font-size: 22px;
color: red;
/*font-family: "微软雅黑";*/ /*可以写中文,但建议写英文,避免可能出现的乱码*/
font-family: "Microsoft YaHei UI";
font-style: italic;
font-weight: bold;
line-height: 30px;
text-decoration: underline;
text-indent: 40px;
}
a {
text-decoration: none;
}
p {
text-align: center;
}
</style>
</head> <body>
<div>
常用的应用文本的css样式:
color 设置文字的颜色,如: color:red;
font-size 设置文字的大小,如:font-size:12px;
font-family 设置文字的字体,如:font-family:'微软雅黑';
font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜
font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗
</div>
<p>这是一个span标签</p>
<a href="http://www.baidu.com">百度一下,你就知道</a>
</body>
</html>

CSS颜色表示法

css颜色值主要有三种表示方法:

  1. 颜色名表示,比如:red 红色,gold 金色。
  2. rgb表示,比如:rgb(255,0,0),表示红色。
  3. 16进制数值表示,比如:#ff0000 表示红色,这种可以简写成 #f00。

css颜色表示法示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css颜色表示法</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
div {
font-size: 30px;
/*以下三种方法,效果一致*/
/*color: green;*/
/*color: rgba(0,255,0);*/
color: #00ff00;
}
</style>
</head> <body>
<div>这是一个div标签</div>
</body>
</html>

CSS选择器

如果对同一内容区添加样式,下面的样式会覆盖上面的样式;
在css中,#代表id选择器,.代表类选择器;

常用的选择器有如下几种:

1.标签选择器

标签选择器,此种选择器影响范围大,建议尽量应用在层级选择器中。

标签选择器举例:
*{margin:0;padding:0}
div{color:red}
<div>....</div> <!-- 对应以上两条样式 -->
<div class="box">....</div> <!-- 对应以上两条样式 -->

01标签选择器示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 针对所有的标签选择器,慎用 */
* {
color: red;
}
/* 仅针对所有的div标签选择器 */
div {
font-size: 30px;
}
</style>
</head> <body>
<div>第一个div标签</div>
<div>第二个div标签</div>
<div>第三个div标签</div>
</body>
</html>

01标签选择器示例

2.id选择器

通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id名一般给程序使用,所以不推荐使用id作为选择器。

id选择器举例:
#box{color:red}
<div id="box">....</div> <!-- 对应以上一条样式,其它元素不允许应用此样式 -->

02id选择器示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>id选择器</title>
<style>
div {
font-size: 30px;
color: red;
}
/* id选择器,用#作为id选择器的标识 */
/* 如果对同一内容区添加样式,下面的样式会覆盖上面的样式 */
#d1 {
color: gray;
}
</style>
</head>
<body> <div id="d1">第一个div标签</div>
<div>第二个div标签</div>
<div>第三个div标签</div> </body>
</html>

02id选择器示例

3.类选择器

通过类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。

类选择器举例:
.red{color:red}
.big{font-size:20px}
.mt10{margin-top:10px}
<div class="red">....</div>
<h1 class="red big mt10">....</h1>
<p class="red mt10">....</p>

03类选择器示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>类选择器</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.d1 {
font-size: 30px;
color: deeppink;
}
.d2 {
font-style: italic;
}
.d3 {
color: green;
}
</style>
</head>
<body>
<div class="d1">这是第一个div标签</div>
<div class="d1 d2">这是第二个div标签</div> <!-- 多个类可以作用于一个元素 -->
<!--如果一个元素上有多个类,多个类之间有重复的样式,那么在外联式/嵌入式中后定义的类选择器的样式会覆盖先定义的;-->
<p class="d3 d1">这是一个p标签</p> <p>下面是没有添加类选择器的标签</p>
<div>这是第一个div标签</div>
<div>这是第二个div标签</div>
<p>这是一个p标签</p>
</body>
</html>

03类选择器示例

如果一个元素上有多个类,多个类之间有重复的样式,那么在外联式/嵌入式中后定义的类选择器的样式会覆盖先定义的;而与类选择器的先后顺序无关。

4.层级选择器

主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突。
层级选择器可以包含多层,比如box中嵌套box,二层box下再嵌套span;但一般而言,最好不要超过四层。
层级选择器之间用空格隔开;

层级选择器举例:
.box span{color:red}
.box .red{color:pink}
.red{color:red}
<div class="box">
<span>....</span>
<a href="#" class="red">....</a>
</div>
<h3 class="red">....</h3>

04层级选择器示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>层级选择器</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.d1 {
font-size: 20px;
line-height: 30px;
text-indent: 40px;
}
.d1 span {
color: red;
}
.d1 em {
font-style: normal;
color: gray;
text-decoration: underline;
}
</style>
</head>
<body> <div class="d1">
<span>大千世界,无奇不有。</span>
天地中央,有个曾用一剑劈出天河瀑布的读书人,<em>人间最得意</em>。
东海崖畔,有个不愿飞升枯坐山巅的无名道人,只愿清风拂面。
西方净土,有个喜欢给人说故事的老和尚,豢养有九条天龙。
蛮荒南疆,有个目盲画师,驱使与山岳等高的金甲傀儡,搬动十万大山,铺就一幅锦绣图画。
一个生长在北方的贫寒少年,当他有一天看到头顶竟有成千上万的御剑仙人,如同蝗群过境。他就想去亲眼去看一看,说书先生所说的那位读书人,东海的滔天大潮、西方的黄沙万里和南荒的巍峨大山。
于是,终有一日,少年挎起木剑,一路向南。
</div> <hr />
<div class="d2">
<span>大千世界,无奇不有。</span>
天地中央,有个曾用一剑劈出天河瀑布的读书人,人间最得意。
东海崖畔,有个不愿飞升枯坐山巅的无名道人,只愿清风拂面。
西方净土,有个喜欢给人说故事的老和尚,豢养有九条天龙。
蛮荒南疆,有个目盲画师,驱使与山岳等高的金甲傀儡,搬动十万大山,铺就一幅锦绣图画。
一个生长在北方的贫寒少年,当他有一天看到头顶竟有成千上万的御剑仙人,如同蝗群过境。他就想去亲眼去看一看,说书先生所说的那位读书人,东海的滔天大潮、西方的黄沙万里和南荒的巍峨大山。
于是,终有一日,少年挎起木剑,一路向南。
</div>
</body>
</html>

层级选择器示例

5.组选择器

多个选择器,如果有同样的样式设置,可以使用组选择器,抽离重复样式。组选择器之间用逗号分隔开。

组选择器举例:
.box1,.box2,.box3{width:100px;height:100px}
.box1{background:red}
.box2{background:pink}
.box2{background:gold}
<div class="box1">....</div>
<div class="box2">....</div>
<div class="box3">....</div>

05组选择器示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>组选择器</title>
<style>
/* 使用组选择器抽离重复样式 */
.d1, .d2, .d3 {
font-size: 20px;
text-indent: 40px;
}
.d1 {
/*font-size: 20px;*/
/*text-indent: 40px;*/
color: red;
}
.d2 {
/*font-size: 20px;*/
/*text-indent: 40px;*/
color: blue;
}
.d3 {
/*font-size: 20px;*/
/*text-indent: 40px;*/
color: gray;
}
</style>
</head>
<body> <div class="d1">第一个div标签</div>
<div class="d2">第一个div标签</div>
<div class="d3">第一个div标签</div>
</body>
</html>

组选择器示例

6.伪类及伪元素选择器

常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们可以通过样式在元素中插入内容。
常用于a标签。

伪类选择器举例
.box1:hover{color:red}
.box2:before{content:'行首文字';}
.box3:after{content:'行尾文字';}
<div class="box1">....</div>
<div class="box2">....</div>
<div class="box3">....</div>

06伪类和伪元素选择器示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>伪类和伪元素选择器</title>
<style>
.link {
font-size: 30px;
text-decoration: none;
color: deeppink;
}
/* 使用伪类选择器 在鼠标悬浮链接后变色加粗 */
.link:hover {
color: aqua;
font-weight: bold;
}
.d1, .d2, .d3 {
font-size: 20px;
}
/*使用伪元素选择器,给文字前后添加内容*/
.d1:before {
content: "***";
color: red;
}
.d3:after {
content: "???";
color: blue;
}
</style>
</head>
<body>
<a href="http://www.baidu.com" class="link">百度一下,你就知道</a>
<div class="d1">这是第一个div标签</div>
<div class="d2">这是第二个div标签</div>
<div class="d3">这是第三个div标签</div>
</body>
</html>

06伪类和伪元素选择器示例

注意:

  • id选择器基本不用,用得最多的是类选择器。
  • 如果一个元素上有多个类,多个类之间有重复的样式,那么在外联式/嵌入式中后定义的类选择器的样式会覆盖先定义的;
  • id选择器的权重要高于类选择器的权重,即id和类的样式同时作用于一个内容区,会优先使用id的样式;

最新文章

  1. java 对象序列化与反序列化
  2. AOP详解
  3. Android总结之json解析(FastJson Gson 对比)
  4. SQL Server中Rowcount与@@Rowcount的用法 和set nocount on 也会更新@@Rowcount
  5. 纯html、css3、js的时钟
  6. php函数间的参数传递(值传递/引用传递)
  7. 懂DOS终于发挥了一点作用:phoenix bios密码破解
  8. &amp;&amp;队友最近一周水水
  9. Java中的可变参数以及foreach语句
  10. 【模块应用】MFRC522开发笔记
  11. pyQt 每日一练习 -- 登录框
  12. 函数fsp_header_init
  13. 静态常量(static final)在class文件里是如何的呢?
  14. jQuery整理笔记5----jQuery大事
  15. ASP.NET MVC — 第 4 天
  16. Python自学知识点----Day01
  17. js: 文件(excel)下载处理
  18. tiny png
  19. solr6.4.1搜索引擎(5)使用zookeeper3.4.9分布式集群
  20. 网络基础协议part 1

热门文章

  1. 解决 vscode 中 nuget 插件无法获取包版本的问题
  2. linux命令-挂载命令
  3. opencv与mfc显示图片操作,MFC的鼠标响应在opencv图片上失效,opencv滚轮事件没有响应问题描述解决。
  4. IDEA 2019.2版本下载安装与PJ教程
  5. Create a Solution using the Wizard 使用向导创建解决方案
  6. 松软科技web课堂:SQLServer之ROUND() 函数
  7. [转]VB.net中 excel 的range方法
  8. 微信小程序——仿jqueryValidate表单验证插件WxValidate的二次封装(一)
  9. InfluxDB因修改默认数据目录导致服务无法正常运行的问题(权限问题)
  10. 转载:关于STM32硬件I2C读写EEPROM代码实现原理的理解与总结