CSS(Cascading Style Sheets)样式表是一种用来描述网页样式的语言。通过CSS,可以定义网页中的文字大小、颜色、字体、背景、边框等样式。本文将从以下几个方面来解析网页中的CSS样式表:
一、CSS样式表的引入
CSS样式表可以通过以下两种方式引入到网页中:
1. 内部样式表
在HTML文档的“head”标签中,通过“style”标签来定义样式。例如:
<style>
body {
font-size: 16px;
}
</style>
2. 外部样式表
将样式定义在外部的CSS文件中,并在HTML文档中通过“link”标签引入。例如:
<link rel=\"stylesheet\" href=\"style.css\">
在上面的例子中,“href”属性指定了CSS文件的路径。
二、CSS样式的基本语法
CSS样式的基本语法由“选择器”、“属性”和“属性值”组成。例如:
p {
color: red;
font-size: 16px;
}
在这个例子中,“p”是选择器,表示选择所有的段落。属性是“color”和“font-size”,属性值分别是“red”和“16px”。
三、CSS选择器
CSS选择器是用来指定样式作用于哪些HTML元素的。选择器可以根据元素的名字、类别、ID来进行指定。
1. 元素选择器
最常用的是根据HTML元素的名字来指定样式。
例如:
p {
color: red;
}
div {
background-color: gray;
}
2. 类选择器
通过指定元素的类名来指定样式。类名可以在HTML文档中多次使用。
例如:
.red-text {
color: red;
}
.blue-text {
color: blue;
}
3. ID选择器
通过指定元素的ID来指定样式。每个ID在HTML文档中只能使用一次。
例如:
#header {
font-size: 24px;
}
#footer {
font-size: 16px;
}
四、CSS属性
CSS属性就是描述样式的具体内容。CSS属性可以分为以下几类:
1. 文本属性
text-align:水平对齐方式,包括left、right、center、justify。
text-decoration:文本修饰效果,包括underline(下划线)、overline(上划线)、line-through(中划线)等。
text-shadow:文本阴影效果,包括水平位移、垂直位移、模糊半径和颜色等。
2. 字体属性
font-size:字体大小,可以指定多种单位,如px、em、rem等。
font-family:字体类型,有西文字体和中文字体等。
font-weight:字体粗细,包括normal(普通)、bold(粗体)、lighter(较细)等。
3. 段落属性
background-color:背景颜色。
border:边框样式,包括border-width(宽度)、border-style(样式)、border-color(颜色)。
padding:边框与内容之间的距离。
margin:元素外边界与周围元素之间的距离。
4. 其他属性
width:元素宽度。
height:元素高度。
opacity:不透明度。
transition:动画效果。
五、常见的CSS单位
在CSS样式中,常见的单位有以下几种:
1. 像素(px)
是指硬件的屏幕像素。例如在样式表中设置font-size:16px;,那么文字大小就会是16个像素大小。
2. 百分比(%)
是指相对于父元素的百分比。例如在样式表中设置width:50%;,那么元素宽度就是其父元素宽度的一半。
3. em
是指相对于当前元素字体大小的倍数。例如在样式表中设置font-size:1.5em;,那么字体大小就是其父元素字体大小的1.5倍。
4. rem
是指相对于根元素字体大小的倍数。例如在样式表中设置font-size:1.5rem;,那么字体大小就是根元素字体大小的1.5倍。
六、样式的优先级
样式的优先级是指当多个样式同时作用于同一个HTML元素时,哪个样式会被优先使用。优先级的计算方式为:
1. 在样式表中使用!important,该样式会优先使用。
2. 在HTML中使用style属性。这种样式的优先级要高于样式表中定义的样式。
3. 样式表中使用ID选择器。ID选择器的优先级要高于标签选择器和类选择器。
4. 样式表中使用类选择器和属性选择器。类选择器和属性选择器的优先级相同。
5. 样式表中使用标签选择器。标签选择器是最低优先级的样式。
七、CSS盒模型
CSS盒模型是用来描述HTML元素的布局,是CSS样式中很重要的一部分。盒模型由四个部分组成:
1. 内容(content)
即元素包含的所有内容,如文本、图片等。
2. 内边距(padding)
内边距是内容与边框之间的空间,在样式表中通过padding属性来定义。
3. 边框(border)
边框是元素的边界,是一个或多个线条或曲线。在样式表中通过border属性来定义。
4. 外边距(margin)
外边距是元素与周围元素之间的空间,在样式表中通过margin属性来定义。
CSS盒模型及其四个组成部分如下图所示:
![CSS盒模型](https://img-/0831150914278?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQnJ1bm9fS2FzaG9u/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)
在实际使用中,经常会遇到盒模型的问题,例如元素的宽度不够,或者内外边距影响了元素的大小等问题。需要仔细理解和掌握CSS盒模型的相关知识。
八、响应式布局
随着移动设备的普及,网页的响应式布局(Responsive Web Design,RWD)变得越来越重要。响应式布局是将网页的设计和布局自适应地调整到不同设备的屏幕大小。
CSS媒体查询是实现响应式布局的主要方法。在样式表中使用@media来定义不同屏幕尺寸的CSS样式。例如:
@media (max-width: 768px) {
body {
font-size: 14px;
}
}
在上面的例子中,当屏幕宽度小于等于768px时,网页的字体大小就会被设置为14px。
九、总结
本文详细介绍了网页中的CSS样式表,包括样式表的引入方式、基本语法、选择器、属性、单位、优先级、盒模型、响应式布局等方面。通过本文的学习,希望读者可以更深入地理解和掌握CSS样式表的相关知识,从而能够写出更酷炫、更实用的网页。
一、什么是 CSS?
CSS(Cascading Style Sheets)指层叠样式表,是一种用于描述 HTML 或 XML 文档展示样式的语言。CSS 技术允许将文档的内容与其样式分开,使得样式相关行为与内容分离。
CSS 在网页开发中扮演了非常重要的角色,它允许我们改变网页的外观、布局和格式。通过定义样式表,网页开发人员可以集中控制页面显示样式,以及统一风格。
二、CSS 样式表的引入方式
目前,在网页开发中使用 CSS 样式表有以下 3 种主要方式:
1.外部样式表
外部样式表指的是将样式表文件与页面分离,创建一个 .css 文件,通过链接 HTML 文件方式引用。这种方式可以实现一份样式表适用于多个 HTML 页面,并且可以方便地修改样式。
例如,创建一个样式表文件 style.css,其中包含以下代码:
```css
/* 定义网页中所有段落的字体为 16px,颜色为红色 */
p {
font-size: 16px;
color: red;
}
```
在 HTML 文件头部添加以下代码即可引用外部样式表:
```html
<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">
```
链接的 href 属性指向样式表文件的路径。
2.内部样式表
内部样式表指的是将样式表代码写在 HTML 文件的头部,使用 style 标签包裹。这种方式可以实现样式表和 HTML 页面的更加紧密,但是不利于样式的重复使用和管理。
例如,定义一个内部样式表可以使用以下代码:
```html
<style>
/* 定义网页中所有段落的字体为 16px,颜色为红色 */
p {
font-size: 16px;
color: red;
}
</style>
```
3.行内样式
行内样式指的是将样式代码直接写在 HTML 标签的 style 属性中。这种方式可以实现单独为某个标签设置样式,但是不利于样式的重复使用和管理。
例如,为一个段落设置行内样式可以使用以下代码:
```html
这是一个红色字体的段落。
```
三、CSS 样式规则
CSS 样式规则指的是如何定义样式的规则,它由选择器和声明块组成。选择器用于选择 HTML 文档中的元素,而声明块则用于定义元素应该如何显示。
一个 CSS 样式规则由以下三部分组成:
```css
选择器 {
属性: 值;
属性: 值;
...
}
```
其中,选择器用于指定样式应该被应用到的 HTML 元素,属性用于设置元素的某种样式属性,而值则是属性的具体取值。
例如,以下代码使用选择器 p 来定义所有段落的样式:
```css
p {
font-size: 16px;
color: red;
}
```
在上面的代码中,p 是选择器,表示应该将样式应用到 HTML 文档中所有的段落元素。font-size 和 color 是属性,分别用于设置字体大小和字体颜色,16px 和 red 则是属性的具体取值。
四、CSS 选择器
CSS 选择器是指用于选择 HTML 文档中的某些元素,或者一组元素的语法。根据选择器不同,可以选择元素的不同属性和特征。选择器由一个或多个选择符构成,多个选择符之间用空格分隔。
1.元素选择器
元素选择器是根据 HTML 元素名称来匹配元素的选择器。它形式为一个标签名,表示应该选择该 HTML 元素。例如:
```css
div {
background-color: #ff0000;
}
```
在上面的代码中,div 是一个元素选择器,表示应该为所有的 div 元素设置背景颜色。
2.类选择器
类选择器是根据给定的 class 名称来匹配元素的选择器。它形式为一个以点号(.)开头的名称,表示应该选择具有该 class 名称的 HTML 元素。例如:
```css
.my-class {
font-size: 20px;
}
```
在上面的代码中,.my-class 是一个类选择器,表示应该为所有带有 class=\"my-class\" 的元素设置字体大小为 20px。
3.ID 选择器
ID 选择器是根据给定的 ID 名称来匹配元素的选择器。它形式为一个以井号(#)开头的名称,表示应该选择具有该 ID 名称的 HTML 元素。例如:
```css
#my-id {
color: #fff;
}
```
在上面的代码中,#my-id 是一个 ID 选择器,表示应该为所有带有 id=\"my-id\" 的元素设置字体颜色为白色。
4.后代选择器
后代选择器是指可以选择某个元素内部的另一个特定元素的选择器。它形式为两个选择器的组合,中间使用空格分隔。例如:
```css
.page-title h1 {
font-size: 24px;
}
```
在上面的代码中,.page-title h1 是一个后代选择器,表示选择所有 class=\"page-title\" 的元素内部的 h1 元素,并将其字体大小设置为 24px。
5.子元素选择器
子元素选择器是指选择指定元素下的第一级子元素的选择器,形式为“父元素 >子元素”。例如:
```css
ul >li {
font-size: 16px;
}
```
在上面的代码中,ul >li 是一个子元素选择器,表示选择 ul 元素下的所有 li 元素,并将它们的字体大小设置为 16px。
6.同级选择器
同级选择器是指选择与指定元素在同一层次上的元素。例如:
```css
.input ~ .error {
display: none;
}
```
在上面的代码中,.input ~ .error 是一个同级选择器,表示选择所有和 class=\"input\" 元素同级别且具有 class=\"error\" 的元素,并将它们设置为 display: none。
7.伪类和伪元素
伪类和伪元素是指不属于上述几种选择器类型,但是可以用于选择元素中某些状态的选择器。
比如,:hover 伪类可以选择鼠标悬浮在元素上时元素的状态:
```css
a:hover {
color: red;
}
```
在上面的代码中,:hover 是一个伪类选择器,表示选择当鼠标悬浮在 a 元素上时的状态,将颜色设置为红色。
各种选择器的使用场景各不相同,开发者应该选择合适的选择器进行使用。
五、CSS 样式属性
CSS 样式属性用于定义 HTML 元素的外观、布局和格式。每个样式属性包含一个属性名称和一个值,属性名称用于指定要更改的属性类型,值用于指定属性的具体值。
下面列举几个常用的样式属性及对应的用法和取值:
1.字体样式
font-family:设置字体名字。例如:
```css
body {
font-family: Arial, sans-serif;
}
```
在上面的代码中,font-family 属性设置了网页的字体为 Arial 和系统无法识别该字体时的默认 sans-serif 字体。
font-size:设置字体的大小。取值可以是像素、em 或百分比等单位。例如:
```css
h1 {
font-size: 32px;
}
```
在上面的代码中,font-size 属性设置了 h1 标题的字体大小为 32px。
font-weight:设置字体的粗细程度。取值可以是 normal、bold 或数字。例如:
```css
strong {
font-weight: bold;
}
```
在上面的代码中,font-weight 属性设置了 strong 标签的字体为粗体。
2.颜色样式
color:设置文本颜色。取值可以是颜色名称,或使用 RGB 值或十六进制值。例如:
```css
p {
color: blue;
}
```
在上面的代码中,color 属性设置了所有段落的文本颜色为蓝色。
background-color:设置元素背景颜色。取值可以是颜色名称,或使用 RGB 值或十六进制值。例如:
```css
body {
background-color: #ccc;
}
```
在上面的代码中,background-color 属性设置了网页背景颜色为灰色。
3.布局样式
width:设置元素的宽度。取值可以是像素、百分比等单位。例如:
```css
img {
width: 100%;
}
```
在上面的代码中,width 属性设置了所有图片宽度为 100%。
height:设置元素的高度。取值可以是像素、百分比等单位。例如:
```css
div {
height: 200px;
}
```
在上面的代码中,height 属性设置了所有 div 元素高度为 200px。
margin 和 padding:分别用于设置元素的外边距和内边距。取值可以是像素、百分比等单位,也可以是 auto。例如:
```css
div {
margin: 10px;
padding: 20px;
}
```
上面的代码中,margin 属性设置了所有 div 元素的外边距为 10px,padding 属性设置了所有 div 元素的内边距为 20px。
注意:margin 和 padding 也可以设置为 top、right、bottom、left 四个方向的值,其中 top 对应上边距、right 对应右边距、bottom 对应下边距、left 对应左边距。例如:
```css
div {
margin-top: 5px;
margin-right: 10px;
margin-bottom: 5px;
margin-left: 10px;
}
```
上面的代码中,分别设置了 div 元素上、右、下、左四个方向的外边距。
4.边框和圆角样式
border:设置元素边框。该属性可分为三个值:边框粗细、边框样式、边框颜色。例如:
```css
div {
border: 1px solid #ccc;
}
```
上面的代码中,border 属性设置了 div 元素边框的粗细为 1px、边框样式为实线、边框颜色为灰色。
border-radius:设置元素边框圆角。例如:
```css
div {
border-radius: 10px;
}
```
上面的代码中,border-radius 属性设置了 div 元素边框的圆角半径为 10px。
以上是常见的样式属性,还有更多属性可供使用。
六、CSS 样式优先级
在 CSS 中,当一些样式同时作用于同一个元素时,就会产生样式覆盖和优先级问题。
CSS 样式优先级如下(从高到低):
1.行内样式(style 属性):给标签直接指定样式属性。
2.ID 选择器:按照给定 ID 属性的值匹配元素。
3.类选择器、属性选择器和伪类选择器:按照类、属性和伪类的优先级从后往前匹配元素。同级别时按样式表中的顺序。
4.元素选择器、伪元素选择器和通配符选择器:按照选择器出现的顺序从后往前匹配元素。
当不同选择器应用到同一个元素时,CSS 样式的优先级可以让一个样式领先于另一个样式,更具体地:
1.如果两个规则具有相同的优先级,后面的规则会覆盖前面的规则。
2.在相同的优先级和特定性级别的规则下,CSS 样式表中出现最后的规则会覆盖先前出现的规则。
三种表示顺序是不同的,例如:选择器列表为 #id p img 和 img,这意味着更具体的选择器(前者)将优先。
七、CSS 框模型
在网页布局中,元素通常被视为一个矩形框,包括内容、填充、边框和边距。这就是 CSS 框模型,它定义了网页排版所需的一些重要概念和属性。
CSS 框模型分为标准框模型(W3C)和 IE 盒子模型(IE 规定了元素占用的空间的计算方式),它们之间主要的差别在于计算元素宽度和高度的方式不同。
1.标准框模型
在标准框模型中,元素的大小是由内容区域、填充区域、边框和边距组成的。元素宽度和高度不包括边框和填充,只包括内容区域的宽度和高度。即:元素的实际大小 = 内容区域的宽度和高度。
元素的大小计算公式为:
元素实际宽度 = 内容区域宽度 + 左填充宽度 + 右填充宽度 + 左边框宽度 + 右边框宽度 + 左边距宽度 + 右边距宽度
同理,元素的实际高度 = 内容区域高度 + 上填充高度 + 下填充高度 + 上边框高度 + 下边框高度 + 上边距高度 + 下边距高度
如下图所示,一个元素的框模型是由内容区、内边距、边框和外边距四个区域组成的:
![css-box-model](https://user-/77647027/137663797-888028dc-d320-4e9c-ae90-5788a3b4d4ad.png)
可以使用 CSS 样式属性来控制各个区域的大小:
1.设置内边距和边框尺寸:
```css
div {
padding: 10px;
border: 1px solid #ccc;
}
```
2.设置外边距尺寸:
```css
div {
margin: 10px;
}
```
2.IE 盒子模型
在 IE 盒子模型中,元素的大小是由内容区域、边框、填充和边距组成的。元素的宽度和高度包括内容区域、填充和边框的尺寸。即:元素的实际大小 = 内容区域的宽度和高度 + 填充和边框的宽度和高度。
元素的大小计算公式为: