文章目录
知识框架图
1. CSS
- CSS 指的是层叠样式表 (Cascading Style Sheets)
- CSS 描述了如何在屏幕、纸张或其他媒体上显示 HTML 元素
- CSS 节省了大量工作,它可以同时控制多张网页的布局
- 外部样式表存储在 CSS 文件中
层叠(级联)样式表。
2. CSS3种导入方法
行内
<h1 style="color: aqua">一级标题</h1>
内部
<style>
h1{
color:red;
}
</style>
位置html文件的head
标签内
外部
<link rel="stylesheet" href="css/style.css">
通过以上链接的方面,同时运行html和css文件
3. 选择器
3.1 *三种基本选择器
标签选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签选择器</title>
<style>
h1{
color: rgba(16, 94, 160, 0.27);
}
p{
font-size: xxx-large;
}
</style>
</head>
<body>
<h1>JavaWeb</h1>
<h1>CSS</h1>
<p>during learning of CSS</p>
</body>
</html>
直接以标签作为style
里的名称
类选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>类选择器</title>
<!--可复用-->
<style>
.title{
color: #e05673;
}
.code{
font-size: 3px;
}
</style>
</head>
<body>
<h1 class="title">JavaWeb</h1>
<h1 class="code">CSS</h1>
<p class="title">during learning of CSS</p>
</body>
</html>
- 以
.类名
的形式使用选择器 - 可在不同标签中复用,呈现相同的样式
- 较常见
id选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>id选择器</title>
<!-- 不可复用-->
<style>
#buttons-hbox{
color: aquamarine;
}
#buttons{
color: chartreuse;
}
</style>
</head>
<body>
<h1 id="buttons-hbox">JavaWeb</h1>
<h1 id="buttons">CSS</h1>
<p>during learning of CSS</p>
</body>
</html>
- 以
#id名
的方式使用 - 具有唯一性
3.2 层次选择器
后代选择器
body p{
color: #e05673;
}
对body往后所有p结点均生效
子选择器
/*子选择器*/
body>p{
color: chartreuse;
}
>
只对下一代的p有效
下兄弟选择器
.active + p{
color: aquamarine;
}
只对当前位置下一位有效,不包括现标签
通用选择器
.active~p{
color: blueviolet;
}
对当前位置以下所有对应标签有效,不包括当前
3.3 结构伪类选择器
/*定位到父元素,选择第二个子元素,若为p标签才修改颜色*/
p:nth-child(2){
color: red;
}
定位到父元素,选择第二个子元素,若为p标签才修改颜色
/*定位到父元素 第二个p标签,以标签类型顺序*/
p:nth-of-type(2){
color: blue;
}
定位到父元素 第二个p标签,以标签类型顺序
/*ul的第一个元素*/
ul li:first-child {
background: #e05673;
}
第一个孩子
/*ul的最后一个元素*/
ul li:last-child{
background: yellow;
}
最后一个孩子
/*触发a标签的停等效果*/
a:hover {
background: aqua;
}
3.4 属性选择器
基础语法
符号 | 含义 |
---|---|
= | 绝对等于 |
*= | 模糊等于 |
^= | 以此开关 |
$= | 以此结尾 |
body
<p class="demo">
<a href="https://www.baidu.com" class="links item first" id="first">1</a>
<a href="" class="links item active" target="_blank" title="test">2</a>
<a href="image/123.html" class="links item">3</a>
<a href="image/123.png" class="links item">4</a>
<a href="image/123.jpg" class="links item">5</a>
<a href="abc" class="links item">6</a>
<a href="/a.pdf" class="links item">7</a>
<a href="/abc.pdf" class="links item">8</a>
<a href="abc.doc" class="links item">9</a>
<a href="abcd.doc" class="links item last">10</a>
</p>
基础style
.demo a{
float: left;
display: block;
height: 50px;
width: 50px;
border-radius: 10px;
background: #2700ff;
text-align: center;
color: gainsboro;
text-decoration: none;
margin-right: 5px;
font: bold 20px/50px Arial;
}
设置demo类下所有的标签
属性选择
/*a标签中有id属性的*/
a[id]{
background: yellow;
}
绝对等于
/*a标签中id属性为first*/
a[id="first"]{
background: yellow;
}
模糊等于
/*选中a标签类中有links*/
a[class*="links"]{
background: greenyellow;
}
以开头
/*选中a标签href中以image开头的*/
a[href^="image"]{
background: rebeccapurple;
}
以结尾
/*选中a标签href中以doc结尾的*/
a[href$="doc"]{
background: aqua;
}
4. 美化网页元素
4.1 为什么要美化网页
- 有效传递页面的信息
- 美化网页,页面漂亮,才能吸引用户
- 突显用户页面的主题
- 提高用户的体验
4.2 字体样式
span关键字
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
span{
font-size: xx-large;
}
</style>
</head>
<body>
<p>
<span>Java</span>学习中
</p>
</body>
</html>
字体
<style>
body{
font-family: 仿宋_GB2312;
font-size: x-large;
font-weight: bolder;
color: gainsboro;
background: black;
}
h1{
font-size: xxx-large;
}
.title{
font-weight: inherit;
}
</style>
4.3 文本样式
颜色
color rgb rgba
h1{
color: rgba(0, 255,255,0.9);
}
对齐方式
h1{
text-align: center;
}
首行缩进
.p1{
text-indent: 2em;
}
行高
line-height = height
.p3{
background: purple;
height: 50px;
line-height: 50px;
}
行高与块的高度一致时,可以实现上下居中
装饰
/*下划线*/
.l1{
text-decoration: underline;
}
/*中划线*/
.l2{
text-decoration: line-through;
}
/*上划线*/
.l3{
text-decoration: overline;
}
4.4 阴影
/*text-shadow: 阴影颜色 水平偏移 垂直偏移 阴影半径*/
#price{
text-shadow: #e05673 2px 5px 5px;
}
4.5 超链接伪类
a:hover
重点记忆使用
/*鼠标悬浮状态*/
a:hover{
color: aqua;
font-size: xxx-large;
}
/*鼠标点击*/
a:active{
color: greenyellow;
}
4.6 列表
<div id="nav">
<h2 class="title">全部商品分类</h2>
<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>
</ul>
</div>
ul li{
list-style: none; /*去除圆点*/
height: 30px;
text-indent: 1em;
}
4.7 背景
/*颜色,图片,图片位置,平铺方式*/
background: red url("") 270px 10px no-repeat;
background-image: url("");
background-repeat: repeat-x/repeat-y/no-repeat;
background-position: 200px 20px;
4.8 渐变
[https://www.grabient.com/]:
圆角边框
div{
width: 100px;
height: 100px;
border: 10px solid red;
border-radius: 50px; /*圆角*/
}
border-radius
可修改矩阵角,当值为长宽的一半时,可呈现圆形
盒子阴影
/*居中 margin: 0 auto*/
<div style="width: 800px; display: block; text-align: center">
<div style="margin: 0 auto">
<img src="images/1.bmp" alt="">
</div>
</div>
5. 浮动
5.1 display
标准文档流
/*block 块元素
inline 行内元素
inline-block 块元素 可以内联 在同一行*/
div{
width: 100px;
height: 100px;
border: 1px solid red;
display: inline;
}
span{
width: 100px;
height: 100px;
border: 1px solid red;
display: inline-block;
}
5.2 float
div{
float:right;
}
5.3 clear
clear: right; /*右侧不允许有浮动*/
clear:left; /*左侧不允许有浮动*/
clear: both; /*两侧不允许有浮动*/
clear: none;
5.4 边框塌陷解决方案
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="father">
<div class="layer01"><img src="images/1.bmp" alt=""></div>
<div class="layer02"><img src="images/photo1.jpg" alt=""></div>
<div class="layer03"><img src="images/QQ图片20210419222850.jpg" alt=""></div>
<div class="layer04">
指一个人发出的笑声,高兴开心欢乐时的状态,抒发快乐的心情,表现一个人很开心快乐的状态。也指人通常用来开玩笑。人的一种笑声,表示高兴、开心、愉悦,也表示兴奋。
</div>
</div>
</body>
</html>
div{
margin: 10px;
padding: 5px;
}
#father{
border: 1px #000 solid;
}
#father:after{ /*解决边框塌陷问题*/
content: '';
display: block;
clear: both;
}
.layer01{
border: 1px #F00 dashed;
display: inline-block;
float: left;
}
.layer02{
border: 1px #00F dashed;
display: inline-block;
float: left;
}
.layer03{
border: 1px #060 dashed;
display: inline-block;
float: right;
}
/*
clear: right;
clear: left;
clear: both;
clear: none;
*/
.layer04{
border: 1px #666 dashed;
font-size: 12px;
line-height: 23px;
display: inline-block;
float: right;
clear: none;
}
核心语句
#father:after{
content: '';
display: block;
clear: both;
}
6. 定位
6.1 相对定位
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
margin: 10px;
padding: 5px;
font-size: 12px;
line-height: 25px;
}
#father{
border: 1px solid #e05673;
padding: 0;
}
#first{
border: 1px solid #209bcb;
background-color: #209b99;
position: relative;
top: -10px;
}
#second{
border: 1px solid #490761;
background-color: #490799;
position: relative;
left: 10px;
}
#third{
border: 1px solid #bfa008;
background-color: #bfa099;
position: relative;
right: -10px;
}
</style>
</head>
<body>
<div id="father">
<div id="first">第一个盒子</div>
<div id="second">第二个盒子</div>
<div id="third">第三个盒子</div>
</div>
</body>
</html>
关键代码
#third{
border: 1px solid #bfa008;
background-color: #bfa099;
position: relative;
right: -10px;
}
position: relative
相对定位,不会超出标准文件流,边框不会被破坏
top
为负时,向上移动
bottom
为负时,向下移动
left
为负时,向左移动
right
为负时,向右移动
方块定位练习
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.box{
width: 300px;
height: 300px;
border: 2px solid red; /*边框粗细颜色*/
padding: 10px;
}
a{
text-decoration: none; /*取消下划线*/
background: hotpink;
width: 100px;
height: 100px;
line-height: 100px; /*文字上下居中*/
text-align: center; /*文字左右居中*/
display: block; /*成块*/
}
a:hover{
background-color: dodgerblue;
}
.second, .four{
position: relative; /*相对移动*/
right: -200px;
top: -100px;
}
.five{
position: relative;
right: -100px;
top: -300px;
}
</style>
</head>
<body>
<div class="box">
<a href="" class="first">链接1</a>
<a href="" class="second">链接2</a>
<a href="" class="third">链接3</a>
<a href="" class="four">链接4</a>
<a href="" class="five">链接5</a>
</div>
</body>
</html>
6.2 绝对定位
- 不会保留原来的位置
- 没有父级元素的前提下,根据浏览器定位
- 有父级元素的限制下,参照父级元素定位
- 在父级元素的范围内移动
总结:相对于父级及浏览器的位置,进行指定的偏移,它不在标准文档流中,原来的位置不会被保留
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
margin: 10px;
padding: 5px;
font-size: 12px;
line-height: 25px;
}
#father{
border: 1px solid #e05673;
padding: 0;
position: relative;
}
#first{
border: 1px solid #209bcb;
background-color: #209b99;
}
#second{
border: 1px solid #490761;
background-color: #490799;
position: absolute;
top: -10px;
}
#third{
border: 1px solid #bfa008;
background-color: #bfa099;
}
</style>
</head>
<body>
<div id="father">
<div id="first">第一个盒子</div>
<div id="second">第二个盒子</div>
<div id="third">第三个盒子</div>
</div>
</body>
</html>
无父级元素
存在父级元素
6.3 固定定位
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body{
height: 1000px;
}
div:nth-of-type(1){
width: 100px;
height: 100px;
background-color: red;
position: absolute;
right: 0;
bottom: 0;
}
div:nth-of-type(2){
width: 50px;
height: 50px;
background-color: yellow;
position: fixed;
right: 0;
bottom: 0;
}
</style>
</head>
<body>
<div>div1</div>
<div>div2</div>
</body>
</html>
position: fixed;
固定位置,不会随着浏览器的滑动而发生改变
6.4 z-index
z-index
决定图层的显示级别
opacity: 0.5;
透明度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>zindex</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="content">
<ul>
<li><img src="images/img.png" alt=""></li>
<li class="tipText">JDBC</li>
<li class="tipBg"></li>
<li>2021-10-02</li>
<li>2栋404</li>
</ul>
</div>
</body>
</html>
#content{
padding: 0px;
margin: 0px;
width: 160px;
overflow: hidden;
font-size: 12px;
line-height: 25px;
border: 1px solid black;
}
ul, li{
list-style: none;
padding: 0px;
margin: 0px;
}
#content ul{
position: relative;
}
.tipText{
position: absolute;
top: 80px;
color: white;
z-index: 999;
}
.tipBg {
background: black;
width: 160px;
height: 18px;
position: absolute;
top: 82px;
opacity: 0.5;
}