CSS学习总结
一、CSS的概念
CSS是级联样式表(Cascading Style Sheets)的缩写。HTML 用于编写页面的内容,而CSS 能够对网页中元素进行精确地排版控制。
二、CSS的具体操作
1.语法
CSS由两部分组成:选择器,以**{}**包裹的一条或多条声明。
选择器:需要改变样式的对象。类别有元素选择器,id选择器和class选择器。
每条声明由一个属性和一个值组成,需用{}包裹且声明需要用 ; 分开。
属性:希望设置的样式属性。每个属性有一个值。属性和值被冒号分开。
元素选择器(举例)
* 这是CSS的注释 */
/* 建议每条申明占一行 */
p{
color:red;
text-align:center; /* 文本居中 */
}
id选择器(举例)
/* 注意:id选择器前有 # 号。 */
#sky{
color: blue;
}
class选择器(举例)
/* 注意:class选择器前有 . 号。 */
.center{
text-align: center;
}
.large{
font-size: 30px;
}
.red{
color: red;
}
2.CSS的生效
新建一个html文件输入以下代码
<html>
<head>
<meta charset="utf-8">
<!-- 注意下面这个语句,将导入外部的 mycss.css 样式表文件 -->
<link rel="stylesheet" type="text/css" href="1css.css">
<title>页面标题</title>
</head>
<body>
<h1>我是有样式的</h1>
<hr>
<p class="haha">hhhhhhhhhhh</p>
</body>
</html>
在当前文件夹下新建一个1css.css文件,输入以下代码
body {
background-color: linen;
text-align: center;
}
h1 {
color: #ff0023;
}
.haha {
margin-top: 100px;
color: chocolate;
font-size: 50px;
}
效果如下图
内部样式表的方法实现:在head元素中引入了style标签,效果一致。
<html>
<head>
<meta charset="utf-8">
<!-- 注意下面这个语句,将导入外部的 mycss.css 样式表文件 -->
<link rel="stylesheet" type="text/css" href="mycss.css">
<title>页面标题</title>
<style>
body {
background-color: linen;
text-align: center;
}
h1 {
color: red;
}
.haha {
margin-top: 100px;
color: chocolate;
font-size: 50px;
}
</style>
</head>
<body>
<h1>我是有样式的</h1>
<hr>
<p class="haha">hhhhhhhhhh</p>
</body>
</html>
内联样式实现:接把样式规则直接写到要应用的元素中,放入body中。
<h3 style="color:green;">I am a heading</h3>
**级联的优先级:**从高到低
内联样式;内部样式表或外部样式表;浏览器缺省样式
3.颜色,尺寸, 对齐的设置
颜色
可以采用颜色名称也可以使用颜色RGB16进制值,来设定前景或背景的颜色。
例如:直接添加到html中。
<!-- 颜色名称 -->
<h3 style="background-color:Tomato;">Tomato</h3>
<!-- 颜色值,3个字节分别代表RGB(Red,Green,Blue)的0~255的值 -->
<h3 style="background-color:#ff0000;">#ff0000</h3>
<!-- 文本颜色 -->
<h3 style="color:Tomato;">Hello World</h3>
<p style="color:DodgerBlue;">Lorem ipsum dolor sit, amet consectetur adipisicing elit.</p>
尺寸
可以用 height 和 width 设定元素内容占据的尺寸,常用单位有像素(px)和百分比(%)。
例如:
**
html代码:
<html>
<head>
<link rel="stylesheet" href="1css.css">
</head>
<body>
<div class="example-1">
这个元素高 200 pixels,占据全部宽度
</div>
<div class="example-2">
这个元素宽200像素,高300像素
</div>
</body>
</html>
CSS代码:
.example-1 {
width: 100%;
height: 200px;
background-color: powderblue;
text-align: center;
}
.example-2 {
height: 100px;
width: 500px;
background-color: rgb(73, 138, 60);
text-align: right;
}
对齐
对元素text-align进行设置:left, center, right任意一种,默认为left。
4.盒子模型
盒子模型:指的是一个 HTML 元素可以看作一个盒子。从内到外,这个盒子是由内容 content, 内边距 padding, 边框 border, 外边距 margin构成。例如下图
Content 盒子的内容,如文本、图片等。
Padding 填充,也叫内边距,即内容和边框之间的区域 。Border 边框,默认不显示。
Margin 外边距,边框以外与其它元素的区域。
html代码:
<html>
<head>
<link rel="stylesheet" href="1css.css">
</head>
<body>
<div class="box1">我是内容一,外面红色的是我的边框。注意边框的内外都有25px的距离。</div>
<div class="box2">我是内容二,外面蓝色的是我的边框。注意与上面元素的外边距,发生了叠加,不是50px而是25px。</div>
</body>
</html>
CSS代码:
.box1 {
height: 200px;
width: 200px;
background-color:#615200;
color: aliceblue;
border: 10px solid red;
padding: 25px;
margin: 25px;
}
.box2 {
height: 300px;
width: 300px;
background-color:#004d61;
color: aliceblue;
border: 10px solid blue;
padding: 25px;
margin: 25px;
}
效果如图:
布局规则:如下图
5.边框与边距
边框
html代码:添加到body中。
<p class="example-1">I have black borders on all sides.</p>
<p class="example-2">I have a blue bottom border.</p>
<p class="example-3">I have rounded grey borders.</p>
<p class="example-4">I have a purple left border.</p>
CSS代码:
.example-1 {
border: 1px dotted black; /* 上下左右都相同 */
}
.example-2 {
border-bottom: 1px solid blue; /* 只设置底部边框 */
}
.example-3 {
border: 1px solid grey;
border-radius: 15px; /* 边框圆角 */
}
.example-4 {
border-left: 5px solid purple;
}
效果如图:
边距
设置样式的代码如下:
padding: 20px; /* 上下左右都相同 */
padding-top: 20px;
padding-bottom: 100px;
padding-right: 50px;
padding-left: 80px;
padding: 25px 50px 75px 100px; /* 简写形式,按上,右,下,左顺序设置 */
padding: 25px 10px; /* 简写形式,上下为25px,左右为10px */
CSS举例:
.example-1 {
padding: 20px; /* 上下左右都相同 */
}
.example-2 {
padding-bottom: 100px;
}
.example-3 {
padding: 25px 50px 75px 100px; /* 简写形式,按上,右,下,左顺序设置 */
}
.example-4 {
padding: 25px 10px; /* 简写形式,上下为25px,左右为10px */
}
效果如图:
6.定位
定位4种属性分别是:static 静态;relative 相对;fixed 固定;absolute 绝对。
static
元素的默认定位方式,无论设置与否,元素都将按正常的页面布局进行。即按照元素在 HTML出现的先后顺序从上到下,从左到右进行元素的安排。
relative
将把元素相对于他的静态(正常)位置进行偏移。
html代码举例:
<html>
<head>
<link rel="stylesheet" href="1css.css">
</head>
<body>
<div class="example-relative">我偏移了正常显示的位置。去掉前</div>
</body>
</html>
CSS代码举例:
.example-relative {
position: relative;
left: 60px;
top: 40px;
background-color: rgb(173, 241, 241);
}
效果如图:
不加relative的效果:
fixed
这将使得元素固定不动(即使你上下左右拖动浏览器的滚动条),元素固定的位置仍由top, bottom, left, right属性确定,但相对的是视口(viewport,就是浏览器的屏幕可见区域)。
<!-- HTML -->
<div class="broad">占位区域。请将浏览器窗口改变大小,看看右下角的按钮发生了什么?</div>
<div class="example-fixed">这个按钮是固定的</div>
<!-- CSS -->
.example-fixed {
position: fixed;
bottom: 40px;
right: 10px;
padding: 6px 24px;
border-radius: 4px;
color: #fff;
background-color: #9d0f0f;
cursor: pointer;
box-shadow: 0 3px 3px 0 rgba(0,0,0,0.3), 0 1px 5px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.2);
}
.broad {
height: 5000px;
width: 5000px;
padding: 20px;
background-color: darkkhaki;
}
效果如图:
absolute
将使元素相对于其最近设置了定位属性(非static)的父元素进行偏移。如果该元素的所有父元素都没有设置定位属性,那么就相对于这个父元素。
<!-- HTML -->
<div class="example-relative">这是父元素,有 relative 定位属性
<div class="example-absolute">
这是子元素,有 absolute 定位属性
</div>
</div>
<!-- CSS -->
.example-relative {
position: relative;
width: 400px;
height: 200px;
border: 3px solid rgb(87, 33, 173);
}
.example-absolute {
position: absolute;
top: 80px;
right: 5px;
width: 200px;
height: 100px;
border: 3px solid rgb(218, 73, 16);
}
效果如图:
7.溢出
当元素内容超过其指定的区域时,我们通过溢出overflow属性来处理这些溢出的部分。
溢出的属性:
visible 默认值,溢出部分不被裁剪,在区域外面显示 hidden 裁剪溢出部分且不可见 。
scroll 裁剪溢出部分,但提供上下和左右滚动条供显示 。
auto 裁剪溢出部分,视情况提供滚动条。
<!-- HTML -->
<div class="example-overflow-scroll-y">You can use the overflow property when you want to have better control of the
layout. The overflow property specifies what happens if content overflows an element's box.
</div>
<!-- CSS -->
.example-overflow-scroll-y {
width: 200px;
height: 100px;
background-color: #eee;
overflow-y: scroll;
}
效果如图:
8.浮动
在一个区域或容器内,我们可以设置float属性让某元素水平方向上向左或右进行移动,其周围的元素也会重新排列。
例如让图片向右浮动的代码:
<html>
<head>
<style>
.example-float-right {
float: right;
}
</style>
</head>
<body>
<img src="https://p4.itc.cn/images01/20210125/090ac63325e34ba1b1ed2db68cb85178.png" width="200" height="300" class="example-float-right" alt="">
<p>《筐出胜利》剧集与以往其他作品不同,运动题材作品更讲究场景和动作的视觉传达,
力求给观众带来更直观、更有冲击力的视觉效果。本部番剧在制作上尝试了更酷炫的风格,
让可爱的羊狼主角们摇身一变,变成了酷帅炙热的少年。其次在画面镜头上也运用了大量的特殊运镜,
通过多个长镜头、环绕镜头等画面处理,呈现出一个开阔的2D世界,并使用华丽的特效来烘托主角的心境,
渲染出浓烈的赛事氛围,让受众在观看时更有代入感。</p>
</body>
</html>
效果如图
9.不透明度
用opacity对任何元素(不过常用于图片)设置不透明度。
值在[0.0~1.0]之间,值越低,透明度越高。
代码举例:(图片我用的本地的)
<html>
<head>
<style>
img {
width: 25%;
float: left;
margin: 10px;
}
.opacity-2 {
opacity: 0.2;
}
.opacity-5 {
opacity: 0.5;
}
.opacity-10 {
opacity: 1;
}
</style>
</head>
<body>
<img class="opacity-2" src="p0.jpg">
<img class="opacity-5" src="p0.jpg">
<img class="opacity-10" src="p0.jpg">
</body>
</html>
10.组合选择器
后代选择器
以空格作为分隔,比如.haha p 代表在div元素内有.haha这种类的所有元素。
代码举例:
<html>
<head>
<style>
.haha p {
background-color: yellow;
}
</style>
</head>
<body>
<div class="haha">
<p>Paragraph 1 in the div .haha.</p>
<p>Paragraph 2 in the div .haha>.</p>
<span>
<p>Paragraph 3 in the div .haha.</p>
</span>
</div>
<p>Paragraph 4. Not in a div .haha.</p>
<p>Paragraph 5. Not in a div .haha.</p>
</body>
</html>
效果如图:
子选择器
也称为直接后代选择器,以>作为分隔,如:.haha > p 代表在有.haha类的元素内的直接
元素。
代码举例:
<html>
<head>
<style>
.haha > p {
background-color: yellow;
}
</style>
</head>
<body>
<div class="haha">
<p>Paragraph 1 in the div .haha.</p>
<p>Paragraph 2 in the div .haha.</p>
<span>
<p>Paragraph 3 in the div .haha - it is descendant but not immediate child.</p>
</span> <!-- not Child but Descendant -->
</div>
<p>Paragraph 4. Not in a div .haha.</p>
<p>Paragraph 5. Not in a div .haha.</p>
</body>
</html>
效果如图:
段落3在.haha类中,但它的直接父元素是span,不是.haha的直接后代,所以不能选择。
11.伪类和伪元素
伪类(pseudo-class)或伪元素(pseudo-element)用于定义元素的某种特定的状态或位置等。
语法:
/* 选择器后使用 : 号,再跟上某个伪类/伪元素 */
selector:pseudo-class/pseudo-element {
property:value;
}
三、学习总结
通过以上的学习,我对CSS有了初步的认识和了解,知道如何用CSS对html进行布局和设计,对CSS的功能使用进行了认识和实操,希望在今后的学习中能熟练掌握以上内容。