前端内容就分三部分html、css、javascript(js),对一个网页来说html相当于是一个裸体的人,css相当于给这个人穿上了衣服,javascript相当于给这个人赋予动作行为,今天我们要接触的就是css,样式层叠表。

本篇导航:

一、CSS 语法

CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明。声明包括属性和值。

h1{
color:red;
}

二、css的四种引入方式 

1、行内式

行内式是在标记的style属性中设定CSS样式。这种方式没有体现出CSS的优势,不推荐使用。(优先级最高)

<h1 style="color:red">行内式<h1>

2、嵌入式

嵌入式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中。格式如下:

<style>
h1{
color: red;
}
</style>

3、链接式

单独将css写到一个后缀为.css的文件里,然后将.css文件引入到HTML文件中

<link href="mystyle.css" rel="stylesheet" type="text/css"/>

4、导入式

将一个独立的.css文件引入HTML文件中,导入式使用CSS规则引入外部CSS文件,<style>标记也是写在<head>标记中(不推荐使用)

<style type="text/css">
@import"mystyle.css"; 此处要注意.css文件的路径
</style> 

注意:

导入式会在整个网页装载完后再装载CSS文件,因此这就导致了一个问题,如果网页比较大则会儿出现先显示无样式的页面,闪烁一下之后,再出现网页的样式。这是导入式固有的一个缺陷。使用链接式时与导入式不同的是它会以网页文件主体装载前装载CSS文件,因此显示出来的网页从一开始就是带样式的效果的,它不会象导入式那样先显示无样式的网页,然后再显示有样式的网页,这是链接式的优点。


三、css选择器

1、基本选择器

/*1 标签选择器*/
div{
color: red;
}
/*2 id选择器*/
#p2{
color: red;
}
/*3 class选择器*/
.c1{
color: red;
}
/*4 通配符选择器 * */
* {
color: red;
}

2、组合选择器

/*1 后代选择器  匹配所有属于.c2后代的p*/
.c2 p{
color: red;
}
/*2 子代选择器 匹配所有.c2的子p*/
.c2>p{
color: red;
}
/*3 毗邻选择器 匹配所有紧随.c2之后的同级p*/
.c2+p{
color: red;
}
/*4 兄弟选择器 匹配所有.c2的同级p*/
.c2~p{
color: red;
}
/*多元素选择器 同时匹配所有*/
.c2 .c3,.c2~.c3{
color: red;
background-color: green;
font-size: 15px;
}

注意,关于标签嵌套:

一般,块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。需要注意的是,p标签不能包含块级标签。

3、属性选择器

/*匹配所有具有id属性的p元素,不考虑它的值。(注意:p在此处可以省略。比如“[id]”。以下同。)   */
p[id] {
color:#f00;
}
/*匹配所有class属性等于“error”的div元素 */
div[class=”error”] {
color:#f00;
}
/*匹配所有class属性具有多个空格分隔的值、其中一个值等于“name”的E元素*/
td[class~=”name”] {
color:#f00;
}
/*匹配属性值以指定值开头的每个元素 */
div[class^="test"]{
background:#ffff00;
}
/*匹配属性值以指定值结尾的每个元素 */
div[class$="test"]{
background:#ffff00;
}
匹配属性值中包含指定值的每个元素
div[class*="test"]{
background:#ffff00;
}

4、伪类选择器

1)伪类

用于控制链接的显示效果

a:link(没有接触过的链接),用于定义了链接的常规状态。
a:hover(鼠标放在链接上的状态),用于产生视觉效果。(最常用)
a:visited(访问过的链接),用于阅读文章,能清楚的判断已经访问过的链接。
a:active(在链接上按下鼠标时的状态),用于表现鼠标按下时的链接状态。

2)伪类选择器

 /*格式: 标签:伪类名称{ css代码; }*/
/* 未访问的链接 */
a:link {
color: #FF0000;
}
/* 已访问的链接 */
a:visited {
color: #00FF00;
}
/* 鼠标移动到链接上 */
a:hover {
color: #FF00FF
}
/* 选定的链接 */
a:active {
color: #0000FF;
}

3)示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> <style> .top{
background-color: rebeccapurple;
width: 100px;
height: 100px;
}
.bottom{
background-color: green;
width: 100px;
height: 100px;
} .outer:hover .bottom{
background-color: yellow;
} 注意:一定是outer:hover 控制outer里某一个标签,否则无效 .top:hover .bottom{
background-color: yellow;
}
</style>
</head>
<body> <div class="outer">
<div class="top">top</div>
<div class="bottom">bottom</div>
</div> </body>
</html>

4)before after伪类 

 :before    p:before       在每个<p>元素之前插入内容
:after p:after 在每个<p>元素之后插入内容 例:
p:before{
content:"hello";
color:red;
display: block;
}

四、选择器的优先级 

1、css的继承

继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个BODY定义了的颜色值也会应用到段落的文本中。

body{
color:red;
} <p>hello</p>

这段文字都继承了由body {color:red;}样式定义的颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0。

p{
color:green
}

发现只需要给加个颜色值就能覆盖掉它继承的样式颜色。由此可见:任何显示申明的规则都可以覆盖其继承样式。 

此外,继承是CSS重要的一部分,我们甚至不用去考虑它为什么能够这样,但CSS继承也是有限制的。有一些属性不能被继承,如:border, margin, padding, background等。

div{
border:1px solid #ff0000;
} <div>hello <p>css</p> </div>

2、css的优先级

CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。

样式表中的特殊性描述了不同规则的相对权重,它的基本规则是:

1 内联样式表的权值最高 (1000)

2 统计选择符中的ID属性个数。(100)

3 统计选择符中的CLASS属性个数。(10)

4 统计选择符中的HTML标签名个数。(1)

按这些规则将数字符串逐位相加,就得到最终的权重,然后在比较取舍时按照从左到右的顺序逐位比较。

注意:

1 文内的样式优先级为1,0,0,0,所以始终高于外部定义。

2 有!important声明的规则高于一切。

3 如果!important声明冲突,则比较优先权。

4 如果优先权一样,则按照在源码中出现的顺序决定,后来者居上。

5 由继承而得到的样式没有specificity的计算,它低于一切其它规则(比如全局选择符*定义的规则)。

51、css初识的更多相关文章

  1. 前端之CSS初识

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  2. 0008 CSS初识(行内式、内部样式表、外部样式表)

    typora-copy-images-to: media 第01阶段.前端基础.CSS初识 CSS层叠样式表 学习目标 理解 css的目的作用 css的三种引入方式 应用 css三种引用方式的书写 通 ...

  3. CSS初识- 选择器 &背景& 浮动& 盒子模型

    # CSS初识-目标: > 1. 学会使用CSS选择器 > 2. 熟记CSS样式和外观属性 > 3. 熟练掌握CSS各种基础选择器 > 4. 熟练掌握CSS各种复合选择器 &g ...

  4. 2020年12月-第02阶段-前端基础-CSS初识

    CSS层叠样式表 理解 css的目的作用 css的三种引入方式 1.HTML的局限性 说起HTML,这其实是个非常单纯的家伙, 他只关注内容的语义, 比如`<h1>`表明这是一个大标题,用 ...

  5. 前端之常用标签和CSS初识

    外层div的宽度是100%,就是视口的大小,当视口被拉窄到小于内层div的宽度980px时,比如800px,此时 外层div宽度为800px,内层div宽度依然为980px,而css中只设置了外层di ...

  6. Normalize.css 初识

    一. 用来干嘛的 一个现代的.准备好了支持 HTML5 技术,并且要替代 CSS Reset 处理样式的理念. Normalize.css 使浏览器渲染所有元素更加一致,并且符合现代标准.它只是针对那 ...

  7. 【CSS初识】

    一.CSS是什么? CSS是一种样式表语言,用于为HTML文档定义布局.例如,CSS涉及字体.颜色.边距.高度.宽度.背景图像.高级定位等方面. HTML用于结构化内容:CSS用于格式化结构化的内容. ...

  8. 第四章css初识

    1.CSS(层叠样式表) 2.CSS语法 选择器{ 属性名1:属性值1: 属性名2:属性值2: } 3.引用CSS的三种方式 第一种:行内样式 例:<a style="color:re ...

  9. CSS初识盒子

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

随机推荐

  1. vimgdb安装以及使用

    vimgdb安装 vim-7.3.tar.bz2http://www.vim.org/sources.phpvimgdb-for-vim7.3 (this patch) https://github. ...

  2. 前端使用d3.js调用地图api 进行数据可视化

    前段时间自己研究了demo就是把某个区域的某个位置通过经纬度在地图上可视化.其实就是使用了第三方插件,比现在比较火的可视化插件d3.js echart.js.大致思路就是,把要用到的位置的geojso ...

  3. 创建简单的Python列表

    比如给出电影列表: The Holy Grail The Life of Brian The Meaning of Life 转换为Python可读的列表,需要遵循以下4个步骤: 1.在数据两边加引号 ...

  4. python - dict.setdefault

    index = dict.serdefault(key,default) 尝试往dict中插入新键值key,如果key已存在就原dict不变,否则插入key:defalut:返回值为key在dict中 ...

  5. python requests库学习笔记(上)

    尊重博客园原创精神,请勿转载! requests库官方使用手册地址:http://www.python-requests.org/en/master/:中文使用手册地址:http://cn.pytho ...

  6. win7下使用apache ab 比较测试node与 tomcat

    最近在研究node,都说node单线程.事件环机制,高并发效率高,亲测一下,一探究竟 apache ab 安装 进入:http://httpd.apache.org/download.cgi#apac ...

  7. ios判断手机号是否可用

    + (BOOL)valiMobile:(NSString *)mobileNum { if (mobileNum.length != 11) { return NO; } /** * 手机号码: // ...

  8. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构   前言 学习Python也有一个半月时间了,学到现在感觉 ...

  9. 搭建一个属于自己的webpack config(-)

    搭建一个属于自己的webpack config(-) 前期准备 环境说明 mac 10.12.6 node v8.8.1 npm 5.4.2 全局安装下webpack.webpack-dev-serv ...

  10. System.Security.Cryptography.RSA.FromXmlString 系统找不到指定的文件和X509读取证书文件系统找不到指定的文件异常

    前言: 最近公司增加服务器,在新增加的服务器中发现一些问题. 1.应用程序在读取证书文件中出现"系统找不到指定的文件."异常,但是已经确认证书文件存在.本地测试也可以读取,就在新增 ...