文章目录
UP主:
黑马
链接:
CSS 快速掌握_学习资源库_阿里云培训中心-阿里云 (aliyun.com)
- CSS 的style的使用方式
-
嵌入式
-
外链式
-
行内式
- 文本属性
- 字体属性
.example{
font-style: italic; /* 设置斜体 */
}
- 一般比较特殊的字体,会使用图片进行展示。如果用户的系统中没有该字体,字体会被设置为宋体。
- font 中的参数顺序必须严格
- 复合元素选择器
eg.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div,h2{
color: red;
}
</style>
</head>
<body>
<h2>abc</h2>
<div><h2>b</h2></div>
<h2>c</h2>
</body>
</html>
- 多元素选择器:多个元素同样的设置
- E F ,属于E标签下的所有的F
- E > F, 只有E的儿子,不包括孙子
- E+F, 两者必须相邻紧挨,样式才能够生效
- 列表样式属性
- 采用url可以在其中套用图片
- 伪类选择器
- 属性选择器
- 针对属性值的种类,进行筛选设置样式
- 继承性
- 内层元素样式与外层元素相同时,内层元素样式会覆盖外层元素。
- 除了文本与字体的属性可以被继承,其余的样式都不能被继承。
- 优先级
行内样式 > ID选择器 > 类选择器 > 标签选择器
- 一般来说,选择器指向越准确,其优先级越高
- 无论多选择器还是单选择器,都满足上述的级别要求
- !important
属性: !important
作用: 提高所属标签的权重
注意:
- !important提升的是属性的权重,不是选择器的权重
- !important 不能提升继承来的权重
- 单个标签可携带多个类名
优点:
- 减少代码量
-
class div3 用 class div1 div2来代替
-
如果标签内多个类名的属性设置出现冲突,以CSS中最后出现的代码作为标准,与HTML中class的属性值的顺序无关
- 背景样式属性
- background-color 设置背景颜色,需要:
元素有内容
or元素有宽度和高度
- 标准文档流
- 空白折叠现象: 需要各个标签紧密相连,中间不留空白
- 高矮不齐现象:
- 浮动
需求: 多个元素排在同一行【行内元素的特性】;能够给元素设置宽高 【块内元素的特性】
-
利用 float 属性 【right】
- 浮动元素脱离标准文档流,不占用空间
- 通用选择清除所有的页边距,不会限制之后的排版
-
清除浮动:浮动元素会影响下面元素的布局;布置了浮动元素不会被其父元素包裹
-
- 给浮动元素父元素设置固定的高度(不建议使用)【元素的高度一般不是手动设置的,需要根据自身的内容自定义】
.fatherclass{ height: 400px; }
-
- 清除浮动属性样式 clear : [clear:left; clear:right; clear:both ]
- 使用方法:在最后一个浮动元素下面新建div, 其主要功能是清除浮动
- overflow:hidden 将列表的元素进行清除
-
- 盒子模型
-
参数解释:
- width: “宽度”,盒子里面内容的宽度
- height:“高度”,盒子里面内容的高度
- padding:“内填充”,盒子里内容到边框的距离
- border:“盒子的外边框”
- margin:“外边距”,盒子与盒子之间的间距
-
只有标准文档流中的margin使用{margin: auto}才会实现水平居中
-
text-align只能实现文本的对齐
-
margin竖直方向的外边距不会叠加,只会选择最大的部分
-
margin的作用主要是实现兄弟之间的间距,父子之间给父类使用padding-top等
- border 属性
– 线形
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box{
width: 100px;
height: 700px;
border-top: 10px solid red ;
border-bottom: 10px solid blue;
border-right: 10px solid green;
border-left: 10px solid yellow;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
- display
- block: 块级元素 (将隐藏元素显示)
- inline:行内元素
- none: 将显示元素隐藏
– 综合案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Display综合案例展示</title>
<style>
*{
margin: 0;
padding: 0;
}
body{
background: url(https://x0.ifengimg.com/res/2022/1D5560C2B4D662B165273C9F6E98834C7C2D3377_size163_w1080_h668.jpeg);
}
ul{
list-style: none; /* 移除列表前面的特定标记 .*/
}
.nav{
width: 960px;
height: 40px;
margin: 100px auto;
}
.nav ul li{
float: left;
width: 120px;
height: 40px;
line-height: 40px;
text-align: center;
background: url(https://img.tukuppt.com/bg_grid/00/06/69/fuBjXWNzvg.jpg!/fh/350) repeat-x;
}
.nav ul li a:link,.nav ul li a:visited{
text-decoration: none;
color: white;
}
.nav ul li a{
width: 120px;
height: 40px;
display: block; /*将行内元素转化为块元素*/
}
.nav ul li a:hover{
background: url(https://photo-static-api.fotomore.com/creative/vcg/veer/612/veer-158533090.jpg);
}
</style>
</head>
<body>
<div class="nav">
<ul>
<li><a href="#">网站栏目</a></li>
<li><a href="#">网站栏目</a></li>
<li><a href="#">网站栏目</a></li>
<li><a href="#">网站栏目</a></li>
<li><a href="#">网站栏目</a></li>
<li><a href="#">网站栏目</a></li>
<li><a href="#">网站栏目</a></li>
<li><a href="#">网站栏目</a></li>
</ul>
</div>
</body>
</html>
- 定位:position
– 固定定位 position:fixed
- 固定定位元素脱离了标准文档流
- 固定定位元素高于标准文档流
- 固定定位元素不再占用空间
- 固定定位元素不会发生滚动
用法:
- 生成返回顶部状态栏
参考代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>固定定位返回顶部按钮</title>
<style>
*{
margin: 0;
padding: 0;
}
a{
position: fixed;
width: 80px;
height: 60px;
display: block;
background-color: purple;
text-decoration: none;
color: white;
text-align: center;
line-height: 30px;
font-weight: bold;
}
</style>
</head>
<body>
<a href="#">返回<br/>顶部</a>
<img src="https://ts1.cn.mm.bing.net/th/id/R-C.454adc7c22b464bca65a0ba2726fd3aa?rik=IiFCDoOAU181uQ&riu=http%3a%2f%2fpic.baike.soso.com%2fp%2f20131112%2f20131112161515-39763088.jpg&ehk=YhGJuIBQy4yp58Al%2bJQOMfNYfgG1Y0hhXCBHD4AQw78%3d&risl=&pid=ImgRaw&r=0&sres=1&sresct=1">
<img src="https://ts1.cn.mm.bing.net/th/id/R-C.454adc7c22b464bca65a0ba2726fd3aa?rik=IiFCDoOAU181uQ&riu=http%3a%2f%2fpic.baike.soso.com%2fp%2f20131112%2f20131112161515-39763088.jpg&ehk=YhGJuIBQy4yp58Al%2bJQOMfNYfgG1Y0hhXCBHD4AQw78%3d&risl=&pid=ImgRaw&r=0&sres=1&sresct=1">
<img src="https://ts1.cn.mm.bing.net/th/id/R-C.454adc7c22b464bca65a0ba2726fd3aa?rik=IiFCDoOAU181uQ&riu=http%3a%2f%2fpic.baike.soso.com%2fp%2f20131112%2f20131112161515-39763088.jpg&ehk=YhGJuIBQy4yp58Al%2bJQOMfNYfgG1Y0hhXCBHD4AQw78%3d&risl=&pid=ImgRaw&r=0&sres=1&sresct=1">
</body>
</html>
- 生成网站顶部导航栏
参考代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>固定定位实现顶部导航栏</title>
<style>
*{
margin: 0;
padding: 0;
}
.nav{
width: 100%;
height: 60px;
background-color: #222222;
position: fixed;
top: 0;
left: 0;
}
.nav .inner_c{
width: 1000px;
height: 60px;
margin: 0px auto;
background: #222222;
}
ul{
list-style: none;
}
ul li{
float: left;
width: 150px;
height: 60px;
line-height: 60px;
text-align: center;
}
ul li a{
display: block;
width: 150px;
height: 60px;
text-decoration: none;
color: white;
font-weight: bold;
}
ul li a:hover{
background-color: gold;
}
body{
padding: 60px;
}
</style>
</head>
<body>
<div class="nav">
<div class="inner_c">
<ul>
<li><a href="#">网站栏目1</a></li>
<li><a href="#">网站栏目2</a></li>
<li><a href="#">网站栏目3</a></li>
<li><a href="#">网站栏目4</a></li>
<li><a href="#">网站栏目5</a></li>
<li><a href="#">网站栏目6</a></li>
</ul>
</div>
</div>
<img src="https://tse1-mm.cn.bing.net/th/id/OIP-C.A8uRzfFyePFXVe9TN25XiQHaFP?rs=1&pid=ImgDetMain" >
<img src="https://ts1.cn.mm.bing.net/th/id/R-C.454adc7c22b464bca65a0ba2726fd3aa?rik=IiFCDoOAU181uQ&riu=http%3a%2f%2fpic.baike.soso.com%2fp%2f20131112%2f20131112161515-39763088.jpg&ehk=YhGJuIBQy4yp58Al%2bJQOMfNYfgG1Y0hhXCBHD4AQw78%3d&risl=&pid=ImgRaw&r=0&sres=1&sresct=1">
</body>
</html>
```
#### -- 相对定位 position:relative
相对定位是相对于原来的自己定位。
##### -- 特点:
1. 相对定位元素没有脱离标准文档流
2. 相对定位元素会覆盖标准文档流中的元素
**参考代码:**
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>相对定位案例</title>
<style>
input[type="text"]{
font-size: 36px;
}
input[type="button"]{
position: relative;
top: 5px;
}
</style>
</head>
<body>
<input type="text"><input type="button" value="检测输入">
</body>
</html>
- 绝对定位:position: absolute
- 绝对定位参照于祖先定位元素进行定位,即查找父元素是否进行了定位的设置,如果都没有,会相对于浏览器窗口进行定位
- Z-index 属性
决定谁在谁上,谁覆盖谁
- 只有设置了定位的元素才有 z-index
- z-index无单位,为正整数,默认为0
- 多个定位元素的z-index同级,则后面的会覆盖前面的
- 结构伪类
- border collap
在CSS中,“border collapse” 是指表格边框的合并方式。这个属性是 border-collapse
,用于控制表格单元格的边框是合并在一起还是分开显示。
border-collapse
属性有两个可能的值:
collapse
: 边框合并在一起。相邻单元格的边框会合并成一个边框,看起来像是一个连续的边框。separate
: 边框分开显示。相邻单元格的边框会分开显示,每个单元格都有自己的边框。
示例
<table>
<tr> <td>单元格1</td>
<td>单元格2</td>
</tr> <tr> <td>单元格3</td>
<td>单元格4</td>
</tr></table>
table {
width: 100%; border-collapse: collapse; /* 边框合并 */
}
td {
border: 1px solid black; padding: 8px;}
在这个例子中,border-collapse: collapse;
使得表格的边框合并在一起,相邻单元格的边框会合并成一个边框。
如果将 border-collapse
设置为 separate
,边框会分开显示:
table {
width: 100%; border-collapse: separate; /* 边框分开 */
border-spacing: 10px; /* 控制边框之间的间距 */
}
td {
border: 1px solid black; padding: 8px;}
在这个例子中,border-collapse: separate;
使得每个单元格都有自己的边框,并且可以使用 border-spacing
属性来控制边框之间的间距。
- 伪元素
伪元素(Pseudo-elements)是CSS中的一种特殊选择器,用于在元素的特定部分添加样式或内容。伪元素以双冒号(::
)开头,用于区分伪类(以单冒号开头)。伪元素允许在文档中插入内容,而不需要修改HTML结构。
常见的伪元素
以下是一些常见的伪元素及其用途:
::before
: 在元素内容之前插入内容。::after
: 在元素内容之后插入内容。::first-line
: 选择元素的第一行内容。::first-letter
: 选择元素的第一个字母。::selection
: 选择用户选择的文本部分。
示例
::before
和 ::after
<p class="example">这是一个示例段落。</p>
.example::before {
content: "开始:";
color: red;}
.example::after {
content: "结束。";
color: blue;}
在这个例子中,::before
伪元素在段落内容之前插入“开始:”,::after
伪元素在段落内容之后插入“结束。”。
::first-line
和 ::first-letter
<p class="example">这是一个示例段落。这是一个示例段落。</p>
.example::first-line {
font-weight: bold; color: green;}
.example::first-letter {
font-size: 2em; color: purple;}
在这个例子中,::first-line
伪元素选择段落的第一行,并将其字体加粗并设置为绿色。::first-letter
伪元素选择段落的第一个字母,并将其字体大小设置为2倍,颜色设置为紫色。
::selection
<p class="example">选择这段文字看看效果。</p>
.example::selection {
background-color: yellow; color: red;}
在这个例子中,::selection
伪元素选择用户选择的文本部分,并将其背景颜色设置为黄色,文本颜色设置为红色。
注意事项
content
属性: 对于::before
和::after
伪元素,content
属性是必需的。可以是一个字符串、一个URL(用于插入图像)、一个计数器(用于生成编号)等。- 兼容性: 虽然大多数现代浏览器都支持伪元素,但在某些旧版浏览器中可能需要使用单冒号(
:
)来兼容。
- 文本阴影
- 盒子阴影
- 圆角矩形
border-radius:A, B, C, D
A,B,C,D分别代表其四个角的情况。如果后面只有一个数值,默认对四个角都进行该圆化操作。