目录
前言
CSS语法立意让网页内容与视觉呈现分离,一方面使得页面维护工作更容易,不会因内容或视觉效果改变影响到另一方,这样的页面设计,也对搜寻引擎更为友善,更容易搜寻到页面内容。
一、css是什么?
CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等
使用CSS样式的一个好处是通过定义某个样式,可以让不同网页位置的文字有着统一的字体、字号或者颜色等
二、笔记
1.CSS代码语法
css 样式由选择符和声明组成,而声明又由属性和值组成
选择符{属性:值}
p{color:red;}
选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到影响
声明:在英文大括号“{}”中的的就是声明,属性和值之间用英文冒号“:”分隔
当有多条声明时,中间可以英文分号“;”分隔
如下所示:
p{font-size:12px;color:red;}
2.代码插入形式
内联式、嵌入式和外部式三种
内联式css样式
就是把css代码直接写在现有的HTML标签中,如下面代码:<p style="color:red">这里文字是红色。</p>
css样式代码要写在style=""双引号中,如果有多条css样式代码设置可以写在一起,中间用分号隔开。如下代码:<p style="color:red;font-size:12px">这里文字是红色。</p>
嵌入式css样式
就是可以把css样式代码写在<style type="text/css"></style>标签之间。如下面代码实现把三个<span>标签中的文字设置为红色:<style type="text/css"> span{ color:red; } </style>
嵌入式css样式必须写在<style></style>之间,并且一般情况下嵌入式css样式写在<head></head>之间
外部式css样式
写在单独的一个文件中
外部式css样式(也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css”为扩展名,在<head>内(不是在<style>标签内)使用<link>标签将css样式文件链接到HTML文件内,如下面代码:<link href="base.css" rel="stylesheet" type="text/css" />
(注意:
1、css样式文件名称以有意义的英文字母命名,如 main.css。
2、rel="stylesheet" type="text/css" 是固定写法不可修改。
3、<link>标签位置一般写在<head>标签之内。 )
3.选择器
每一条css样式定义由两部分组成,形式如下:
选择器{
样式;
}
在{}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素标签选择器
标签选择器其实就是html代码中的标签。如右侧代码编辑器中的<html>、<body>、<h1>、<p>、<img>。例如下面代码:p{font-size:12px;line-height:1.6em;}
上面的css样式代码的作用:为p标签设置12px字号,行间距设置1.6em的样式类选择器
类选择器在css样式编码中是最常用到的,如右侧代码编辑器中的代码:可以实现为“胆小如鼠”、“勇气”字体设置为红色。
语法:
.类选器名称{css样式代码;}
注意:
1、英文圆点开头
2、其中类选器名称可以任意起名(但不要起中文噢)
使用方法:
第一步:使用合适的标签把要修饰的内容标记起来,如下:<span>胆小如鼠</span>
第二步:使用class="类选择器名称"为标签设置一个类,如下:
<span class="stress">胆小如鼠</span>
第三步:设置类选器css样式,如下:
.stress{color:red;}
ID选择器
在很多方面,ID选择器都类似于类选择符,但也有一些重要的区别:
1、为标签设置id="ID名称",而不是class="类名称"。
2、ID选择符的前面是井号(#)号,而不是英文圆点(.)
(
类选择器和id选择器的区别:
相同点:可以应用于任何元素
不同点:
1.ID选择器只能在文档中使用一次。与类选择器不同,在一个HTML文档中,ID选择器只能使用一次,而且仅一次。而类选择器可以使用多次
2.可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以的(不能使用 ID 词列表)
)子选择器
.food>li{border:1px solid red;}
这行代码会使class名为food下的子元素li加入红色实线边框
包含选择器(后代选择器)
包含选择器,即加入空格,用于选择指定标签元素下的后辈元素。如:.first span{color:red;}
(
子选择器与包含选择器的区别:
1.子选择器仅是指它的直接后代,或者可以理解为作用于子元素的第一后代
2.包含选择器是作用于所有子后代元素
)
总结:>作用于元素的第一代后代,空格作用于元素的所有后代通用选择器
通用选择器是功能最强大的选择器,它使用一个(*)号指定,它的作用是匹配html中任意标签元素,如下使用下面代码使用html中任意标签元素字体颜色全部设置为红色:* {color:red;}
伪类选择符
更有趣的是伪类选择符,为什么叫做伪类选择符,它允许给html不存在的标签设置样式,比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色:a:hover{color:red;}
这行代码会使被<a></a>标签包裹的文字内容中的“胆小如鼠”字体颜色在鼠标滑过时变为红色。
分组选择符
当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符(,),如下代码为右侧代码编辑器中的h1、span标签同时设置字体颜色为红色:h1,span{color:red;}
它相当于下面两行代码:
h1{color:red;} span{color:red;}
4.css的继承、层叠和特殊性
继承
CSS的某些样式是具有继承性的,继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。
如某种颜色应用于p标签,这个颜色设置不仅应用p标签,还应用于p标签中的所有子元素文本,这里子元素为span标签。
但注意有一些css样式是不具有继承性的。如border:1px solid red
根据权值来判断使用哪个css样式
浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。
下面是权值的规则:
标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:p{color:red;}
(权值为1)
p span{color:green;}
(权值为1+1=2*)
.warning{color:white;}
(权值为10)
p span.warning{color:purple;}
(权值为1+1+10=12)
#footer .note p{color:yellow;}
(权值为100+10+1=111)
注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低层叠
层叠就是在html文件中对于同一个元素可以有多个css样式存在,当有相同权重的样式存在时,会根据这些css样式的前后顺序来决定,处于最后面的css样式会被应用
如:p{color:red;} p{color:green;}
<p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>
最后 p 中的文本会设置为green,这个层叠很好理解,理解为后面的样式会覆盖前面的样式。
所以前面的css样式优先级就不难理解了:
内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)重要性
我们在做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,怎么办?这时候我们可以使用!important来解决。
如下代码:p{color:red!important;} p{color:green;}
<p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>
这时 p 段落中的文本会显示的red红色。
注意:!important要写在分号的前面
5.CSS格式化排版
文字排版
1,文字排版--字体
我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。下面我们来看一个例子,下面代码实现:为网页中的文字设置字体为宋体。body{font-family:"宋体";}
这里注意不要设置不常用的字体,因为如果用户本地电脑上如果没有安装你设置的字体,就会显示浏览器默认的字体。(因为用户是否可以看到你设置的字体样式取决于用户本地电脑上是否安装你设置的字体。)
2,文字排版--字号、颜色
可以使用下面代码设置网页中文字的字号为12像素,并把字体颜色设置为#666(灰色):body{font-size:12px;color:#666}
3,文字排版--粗体
我们还可以使用css样式来改变文字的样式:粗体、斜体、下划线、删除线,可以使用下面代码实现设置文字以粗体样式显示出来。p span{font-weight:bold;}
4,文字排版--斜体
以下代码可以实现文字以斜体样式在浏览器中显示:p a{font-style:italic;}
<p>三年级时,我还是一个<a>胆小如鼠</a>的小女孩。</p>
5,文字排版--下划线
有些情况下想为文字设置为下划线样式,这样可以在视觉上强调文字,可以使用下面代码来实现:p a{text-decoration:underline;}
<p>三年级时,我还是一个<a>胆小如鼠</a>的小女孩。</p>
删除线,在电商网站上经常见。
p a{text-decoration:line-through;}
段落排版
1,段落排版--缩进
中文文字中的段前习惯空两个文字的空白,这个特殊的样式可以用下面代码来实现:p{text-indent:2em;}
注意:2em的意思就是文字的2倍大小。
2,段落排版--行间距
这一小节我们来学习一下另一个在段落排版中起重要作用的行间距属性(line-height),如下代码实现设置段落行间距为1.5倍。p{line-height:1.5em;}
3,段落排版--字间距、字母间距
文字间隔、字母间隔设置:
如果想在网页排版中设置文字间隔或者字母间隔就可以使用letter-spacing来实现,如下面代码:h1{ letter-spacing:50px; }
<h1>了不起的盖茨比</h1>
注意:这个样式使用在英文单词时,是设置字母与字母之间的间距。
单词间距设置:
可以使用word-spacing来设置英文单词之间的间距,如下代码:h1{ word-spacing:50px; }
<h1>welcome to imooc!</h1>
6.盒分类
元素分类:
在css中,html中的标签元素被分为三种不同的类型:块状元素、内联元素和内联块状元素
常用的块状元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的内联元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的内联块状元素有:
<img>、<input>块级元素(block)
在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是块级元素
设置display:block就是将元素显示为块级元素
如下代码就是将行内元素a转换为块状元素,从页使用a元素具有块状元素特点a{display:block;}
块级元素特点:
1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(一个块级元素独占一行)
2、元素的高度、宽度、行高以及顶和底边距都可设置
3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度行内元素(inline)
在html中<span>、<a>、<label>、<input>、 <img>、 <strong> 和<em>就是典型的行内元素
块状元素也可以通过代码display:inline将元素设置为行内元素。
行内元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度、行高及顶部和底部边距不可设置;
3、元素的宽度就是它包含的文字或图片的宽度,不可改变内联块状元素(inline-block)
内联块状元素就是同时具备内联元素、块状元素的特点
代码display:inline-block
就是将元素设置为内联块状元素
<img>、<input>标签就是这种内联块状标签
inline-block元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度、行高以及顶和底边距都可设置
盒模型--边框
盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色(边框三个属性)。
如下面代码为div来设置边框粗细为2px、样式为实心的、颜色为红色的边框:div{ border:2px solid red; }
上面是border代码的缩写形式,可以分开写:
div{ border-width:2px; border-style:solid; border-color:red; }
注意:
1、border-style(边框样式)常见样式有:
dashed(虚线)| dotted(点线)| solid(实线)2、border-color(边框颜色)中的颜色可设置为十六进制颜色,如:
border-color:#888;
如果有想为p标签单独设置下边框,而其它三边都不设置边框样式怎么办呢?css样式中允许只为一个方向的边框设置样式:
div{border-bottom:1px solid red;}
同样可以使用下面代码实现其它三边上、右、左边框的设置:
div{ border-top:1px solid red; border-right:1px solid red; border-left:1px solid red; }