CSS(Cascading Style Sheets 层叠样式表)
文章目录
前言
欢迎来到这篇学习总结,在这个数字化时代,网页设计和开发已经成为了一门热门的技能。而在网页设计中,CSS扮演着至关重要的角色。CSS不仅可以为网页添加美观的外观,还可以提供丰富的交互效果和响应式布局。本篇学习总结主要记录了作者本学期对于css学习的过程中的重点。
一、CSS基础知识
1.CSS是什么,它的作用和用途是什么?
-
CSS 指层叠样式表 (Cascading Style Sheets)
-
样式定义如何显示 HTML 元素
-
样式通常存储在样式表中
-
把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
-
外部样式表可以极大提高工作效率
-
外部样式表通常存储在 CSS 文件中
-
多个样式定义可层叠为一个
CSS的主要用途包括:
样式化网页:通过CSS,您可以为网页添加各种样式,使其更加美观和专业。您可以调整字体、颜色、背景、边框等,以及添加动画和过渡效果,使网页更具吸引力。
布局控制:CSS可以帮助您创建灵活的网页布局。您可以使用CSS的盒模型来控制元素的位置、大小和间距,以及使用浮动和定位来实现复杂的布局结构。
响应式设计:CSS还可以实现响应式设计,使网页能够适应不同的屏幕尺寸和设备。通过使用媒体查询和弹性布局,您可以为不同的设备提供不同的样式和布局。
2.CSS的语法结构和基本规则。
CSS的语法结构和基本规则如下:
选择器:选择器用于选择要应用样式的HTML元素。常见的选择器包括标签选择器(如p、h1)、类选择器(如.classname)、ID选择器(如#idname)等。
声明块:声明块由一对花括号{}包围,包含一条或多条样式声明。每个样式声明由属性和值组成,用冒号:分隔。
属性和值:属性用于描述要修改的样式特性,值用于指定属性的具体取值。常见的属性包括color(颜色)、font-size(字体大小)、background-color(背景颜色)等。
注释:注释用于在CSS代码中添加注释说明,以便于他人理解和维护代码。注释以/*开头,以*/结尾。
注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。
3.如何将CSS应用于HTML文档。
将CSS应用于HTML文档的方法有多种,常见的方式包括:
- 内联样式:在HTML元素的style属性中直接编写CSS代码。例如:
<p style="color: red;">Hello,
World!</p>
- 内部样式表:在HTML文档的
<head>
标签中使用<style>
标签来定义CSS样式。例如:
<head>
<style>
p {
color: red;
}
</style>
</head>
<body>
<p>Hello, World!</p>
</body>
- 外部样式表:将CSS代码保存在独立的.css文件中,并在HTML文档中使用
<link>
标签引入外部样式表。例如:
<head>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<p>Hello, World!</p>
</body>
二、CSS id和class选择器
如果要在HTML元素中设置CSS样式,需要在元素中设置"id" 和 "class"选择器。
- id 选择器
id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。
HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 “#” 来定义。
以下的样式规则应用于元素属性 id=“para1”:
#para1
{
text-align:center;
color:red;
}
Remark ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。
- class 选择器
class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,class可以在多个元素中使用。
class 选择器在 HTML 中以 class 属性表示, 在 CSS 中,类选择器以一个点 . 号显示:
在以下的例子中,所有拥有 center 类的 HTML 元素均为居中。
.center {text-align:center;}
也可以指定特定的 HTML 元素使用 class。
在以下实例中, 所有的 p 元素使用 class=“center” 让该元素的文本居中:
p.center {text-align:center;}
多个 class 选择器可以使用空格分开:
.center { text-align:center; }
.color { color:#ff0000; }
三、样式属性和值
学习CSS样式属性和值是理解和应用CSS的关键部分。
-
属性(Property):CSS属性用于描述要修改的样式特性。常见的CSS属性包括:
color
:设置文本颜色。font-size
:设置字体大小。background-color
:设置背景颜色。margin
:设置元素的外边距。padding
:设置元素的内边距。border
:设置元素的边框样式。width
:设置元素的宽度。height
:设置元素的高度。
-
值(Value):CSS属性的值用于指定属性的具体取值。常见的CSS值包括:
- 颜色值:可以使用具体的颜色名称(如
red
、blue
)或使用十六进制(如#FF0000
)或RGB(如rgb(255, 0, 0)
)表示颜色。 - 尺寸值:可以使用像素(如
10px
)、百分比(如50%
)或其他单位(如em
、rem
)表示尺寸。 - 字体值:可以使用具体的字体名称(如
Arial
、Verdana
)或通用字体系列(如serif
、sans-serif
)表示字体。 - 布尔值:表示真或假的值,如
true
或false
。 - 数字值:表示数值,可以是整数或小数。
- 颜色值:可以使用具体的颜色名称(如
-
继承性(Inheritance):某些CSS属性具有继承性,意味着它们的值会被子元素继承。例如,
color
属性具有继承性,如果您在父元素上设置了color
属性,子元素将继承该颜色。 -
优先级(Specificity):当多个CSS规则应用于同一个元素时,优先级决定了哪个规则的样式将被应用。一般来说,ID选择器的优先级最高,其次是类选择器和属性选择器,最后是标签选择器。
-
值的组合和分组:您可以组合多个值来设置一个属性。例如,
font
属性可以同时设置字体大小、字体系列和字体样式。您还可以使用逗号将多个属性值分组在一起,例如,margin
属性可以设置四个方向的外边距值。 -
值的继承和重写:某些属性的值会被子元素继承,但子元素也可以通过设置自己的值来重写继承的值。例如,如果父元素设置了
font-size
属性,子元素可以通过设置自己的font-size
来覆盖继承的值。
以下是一些示例说明:
- 颜色值:
h1 {
color: red;
}
p {
color: #00FF00;
}
span {
color: rgb(0, 0, 255);
}
上述代码中,h1
元素的文本颜色被设置为红色,p
元素的文本颜色被设置为绿色,span
元素的文本颜色被设置为蓝色。
- 尺寸值:
div {
width: 200px;
height: 50%;
margin: 10px;
padding: 20px;
}
上述代码中,div
元素的宽度被设置为200像素,高度被设置为父元素高度的50%,外边距和内边距都被设置为10像素和20像素。
- 字体值:
p {
font-family: Arial, sans-serif;
font-size: 16px;
font-weight: bold;
font-style: italic;
}
上述代码中,p
元素的字体系列被设置为Arial和通用无衬线字体,字体大小被设置为16像素,字体加粗和斜体样式都被应用。
- 布尔值:
input[type="text"] {
display: none;
}
上述代码中,具有type
属性值为text
的input
元素被设置为不显示(隐藏)。
- 数字值:
div {
opacity: 0.5;
z-index: 10;
}
上述代码中,div
元素的不透明度被设置为0.5,z-index
属性被设置为10。
通过这些示例,可以看到如何使用不同的CSS样式属性和值来修改和控制HTML元素的外观和布局。
四、CSS Text(文本)
1.文本颜色
颜色属性被用来设置文字的颜色。
颜色是通过CSS最经常的指定:
-
十六进制值 - 如:
#FF0000
-
一个RGB值 - 如:
RGB(255,0,0)
-
颜色的名称 - 如:
red
一个网页的背景颜色是指在主体内的选择:
body {color:red;}
h1 {color:#00ff00;}
h2 {color:rgb(255,0,0);}
2.文本的对齐方式
文本排列属性是用来设置文本的水平对齐方式。
文本可居中或对齐到左或右,两端对齐.
当text-align
设置为"justify"
,每一行被展开为宽度相等,左,右外边距是对齐(如杂志和报纸)。
h1 {text-align:center;}
p.date {text-align:right;}
p.main {text-align:justify;}
3.文本修饰
text-decoration
属性用来设置或删除文本的装饰。
从设计的角度看 text-decoration
属性主要是用来删除链接的下划线:
a {text-decoration:none;}
4.文本转换
文本转换属性是用来指定在一个文本中的大写和小写字母。
可用于所有字句变成大写或小写字母,或每个单词的首字母大写。
p.uppercase {text-transform:uppercase;}
p.lowercase {text-transform:lowercase;}
p.capitalize {text-transform:capitalize;}
5.文本缩进
文本缩进属性是用来指定文本的第一行的缩进。
p {text-indent:50px;}
6.常见的文本属性值
以下是一些常见的CSS文本属性:
color:设置文本颜色。
font-family:设置字体系列。
font-size:设置字体大小。
font-weight:设置字体粗细。
font-style:设置字体样式(如斜体)。
text-align:设置文本对齐方式。
text-decoration:设置文本装饰效果(如下划线、删除线)。
text-transform:设置文本转换效果(如大写、小写、首字母大写)。
line-height:设置行高。
letter-spacing:设置字母间距。
word-spacing:设置单词间距。
text-indent:设置文本缩进。
text-overflow:设置文本溢出处理方式。
white-space:设置空白字符处理方式。
vertical-align:设置垂直对齐方式。
direction:设置文本方向(如从左到右或从右到左)。
unicode-bidi:设置文本的双向性。
overflow-wrap:设置文本换行规则。
word-break:设置单词的换行规则。
hyphens:设置断字规则。
五、链接(Link)
1.链接样式
链接的样式,可以用任何CSS属性(如颜色,字体,背景等)。
特别的链接,可以有不同的样式,这取决于他们是什么状态。
这四个链接状态是:
a:link
- 正常,未访问过的链接a:visited
- 用户已访问过的链接a:hover
- 当用户鼠标放在链接上时a:active
- 链接被点击的那一刻
以下是四个链接状态的例子:
a:link {color:#000000;} /* 未访问链接*/
a:visited {color:#00FF00;} /* 已访问链接 */
a:hover {color:#FF00FF;} /* 鼠标移动到链接上 */
a:active {color:#0000FF;} /* 鼠标点击时 */
当设置为若干链路状态的样式,也有一些顺序规则:
a:hover
必须跟在a:link
和a:visited
后面a:active
必须跟在a:hover
后面
2.常见的链接样式
根据上述链接的颜色变化的例子,看它是在什么状态。
让我们通过一些其他常见的方式转到链接样式:
文本修饰
text-decoration
属性主要用于删除链接中的下划线:
a:link {text-decoration:none;}
a:visited {text-decoration:none;}
a:hover {text-decoration:underline;}
a:active {text-decoration:underline;}
背景颜色
背景颜色属性指定链接背景色:
a:link {background-color:#B2FF99;}
a:visited {background-color:#FFFF85;}
a:hover {background-color:#FF704D;}
a:active {background-color:#FF704D;}
3.创建一个链接框
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>xxx</title>
<style>
a:link,a:visited
{
display:block;
font-weight:bold;
color:#FFFFFF;
background-color:#98bf21;
width:120px;
text-align:center;
padding:4px;
text-decoration:none;
}
a:hover,a:active
{
background-color:#7A991A;
}
</style>
</head>
<body>
<a href="/css/" target="_blank">这是一个链接</a>
</body>
</html>
效果如下:
六、CSS导航栏
1.标准导航栏
作为标准的 HTML 基础一个导航栏是必须的。
在这个例子中我们将建立一个标准的 HTML 列表导航栏。
导航条基本上是一个链接列表,所以使用 <ul>
和 <li>
元素非常有意义:
实例
<ul>
<li><a href="#home">主页</a></li>
<li><a href="#news">新闻</a></li>
<li><a href="#contact">联系</a></li>
<li><a href="#about">关于</a></li>
</ul>
从列表中删除边距和填充:
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
list-style-type:none
- 移除列表前小标志。一个导航栏并不需要列表标记
移除浏览器的默认设置将边距和填充设置为0
上面的例子中的代码是垂直和水平导航栏使用的标准代码。
2.垂直导航栏
上面的代码,我们只需要 <a>
元素的样式,建立一个垂直的导航栏:
a
{
display:block;
width:60px;
}
display:block
- 显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许我们指定宽度width:60px -
块元素默认情况下是最大宽度。我们要指定一个60像素的宽度
实例:
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 200px;
background-color: #f1f1f1;
}
li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
/* 鼠标移动到选项上修改背景颜色 */
li a:hover {
background-color: #555;
color: white;
}
3.创建链接并添加边框
可以在 <li> or <a>
上添加text-align:center
样式来让链接居中。
可以在 border
<ul>
上添加 border
属性来让导航栏有边框。如果要在每个选项上添加边框,可以在每个 <li>
元素上添加border-bottom
:
ul {
border: 1px solid #555;
}
li {
text-align: center;
border-bottom: 1px solid #555;
}
li:last-child {
border-bottom: none;
}
4.全屏高度的固定导航条
接下来创建一个左边是全屏高度的固定导航条,右边是可滚动的内容。
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 25%;
background-color: #f1f1f1;
height: 100%; /* 全屏高度 */
position: fixed;
overflow: auto; /* 如果导航栏选项多,允许滚动 */
}
5.水平导航栏
有两种方法创建横向导航栏。使用内联(inline)或浮动(float)的列表项。
这两种方法都很好,但如果想链接到具有相同的大小,必须使用浮动的方法。
6.内联列表项
建立一个横向导航栏的方法之一是指定元素, 下述代码是标准的内联:
实例
li
{
display:inline;
}
- display:inline; -
默认情况下,<li>
元素是块元素。在这里,我们删除换行符之前和之后每个列表项,以显示一行。
7.浮动列表项
在上面的例子中链接有不同的宽度。
对于所有的链接宽度相等,浮动 <li>
元素,并指定为 <a>
元素的宽度:
li
{
float:left;
}
a
{
display:block;
width:60px;
}
-
float:left
- 使用浮动块元素的幻灯片彼此相邻 -
display:block
- 显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许我们指定宽度 -
width:60px
- 块元素默认情况下是最大宽度。我们要指定一个60像素的宽度
8.链接右对齐
将导航条最右边的选项设置右对齐 (float:right
):
<ul>
<li><a href="#home">主页</a></li>
<li><a href="#news">新闻</a></li>
<li><a href="#contact">联系</a></li>
<li style="float:right"><a class="active" href="#about">关于</a></li>
</ul>
9.添加分割线
<li>
通过 border-right 样式来添加分割线:
/* 除了最后一个选项(last-child) 其他的都添加分割线 */
li {
border-right: 1px solid #bbb;
}
li:last-child {
border-right: none;
}
10.固定导航条
可以设置页面的导航条固定在头部或者底部:
固定在头部
ul {
position: fixed;
top: 0;
width: 100%;
}
固定在底部
ul {
position: fixed;
bottom: 0;
width: 100%;
}
七、CSS动画
1.定义和用法
一些 CSS 属性是可以有动画效果的,这意味着它们可以用于动画和过渡。
动画属性可以逐渐地从一个值变化到另一个值,比如尺寸大小、数量、百分比和颜色。
实例:
背景颜色逐渐地从红色变化到蓝色:
@keyframes mymove
{
from {background-color:red;}
to {background-color:blue;}
}
/*Safari 和 Chrome:*/
@-webkit-keyframes mymove
{
from {background-color:red;}
to {background-color:blue;}
}
2.常用的动画属性
以下是一些常用的CSS动画属性:
- animation-name:指定动画的名称,可以通过@keyframes规则定义动画的关键帧。
@keyframes slide-in {
from {
transform: translateX(-100%);
}
to {
transform: translateX(0);
}
}
.element {
animation-name: slide-in;
}
- animation-duration:指定动画的持续时间,以秒(s)或毫秒(ms)为单位。
.element {
animation-duration: 2s;
}
- animation-timing-function:指定动画的时间函数,用于控制动画的速度曲线。常见的时间函数有linear(线性)、ease(缓入缓出)、ease-in(缓入)、ease-out(缓出)等。
.element {
animation-timing-function: ease-in-out;
}
- animation-delay:指定动画的延迟时间,以秒(s)或毫秒(ms)为单位。
.element {
animation-delay: 1s;
}
- animation-iteration-count:指定动画的播放次数,可以使用具体的次数(整数)或infinite(无限次)。
.element {
animation-iteration-count: 3;
}
- animation-direction:指定动画的播放方向,可以是normal(正向)、reverse(反向)、alternate(交替播放正向和反向)或alternate-reverse(交替播放反向和正向)。
.element {
animation-direction: alternate;
}
- animation-fill-mode:指定动画在播放前和播放后的样式状态。常见的值有none(动画结束后回到初始状态)、forwards(动画结束后保持最后一帧的状态)、backwards(动画延迟期间显示第一帧的状态)和both(同时应用forwards和backwards)。
.element {
animation-fill-mode: forwards;
}
- animation-play-state:指定动画的播放状态,可以是running(运行)或paused(暂停)。
.element {
animation-play-state: paused;
}
这些CSS动画属性可以组合使用,以创建各种复杂的动画效果。通过调整这些属性的值,可以控制动画的各个方面,如持续时间、速度曲线、延迟时间、播放次数等。
总结
学习css是一个非常漫长的过程,因为其涉及到的方面太广泛了,即使是学到了,也不见得会用,我感受到要熟悉的运用好css需要大量的时间和实践积累,同时多多学习优秀的网页设计也是必要的,这些都有助于学习掌握css。