标签的显示样式
块级标签
div
p
h
ul
ol
li
行内元素
a
span
strong
b
em
i
del
s
ins
- 所有的行内元素都在一行上,他的高和宽取决于内容的宽度和高度,我们自定义的高宽无效
- 行内元素中一般放文本或者其他的行内元素
- 可以把行内元素看作是文本
行内块元素
input
img
td
- 默认的宽高就是标签里面内容的宽高,但是我们也可以通过css控制
- 他们可以和相邻的行内元素在一行上,但是彼此之间会通过空格间隔开
- 高度,宽度,内边距,外边距都可以通过css控制
- 可以把行内块元素看作是文本
标签的显示模式相互转换
x{
display:inline
display:block
display:inline-block
}
导航栏案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
nav{
text-align: center;
}
a{
font-size: 20px;
color: #333333;
/*行高等于盒子高,可以让文本上下居中*/
line-height: 50px;
text-decoration:none;
text-align:center;
background-color: pink;
width: 150px;
height: 50px;
display: inline-block;
}
a:hover{
background-color:aqua;
}s
</style>
</head>
<body>
<nav id="nav">
<a href="#">导航栏</a>
<a href="#">导航栏</a>
<a href="#">导航栏</a>
<a href="#">导航栏</a>
<a href="#">导航栏</a>
<a href="#">导航栏</a>
</nav>
</body>
</html>
行高问题
div{
line-height: 10px;
height: 10px
}
CSS的三大特性
层叠样式表
- 多个css样式都修饰同一个标签,那么距离标签距离近的css样式生效
- 层叠时仅仅会层叠掉冲突的样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
a {
color: #000;
font-size: 30px;
}
a {
color: aqua;
}
</style>
</head>
<body>
<nav id="nav">
<a href="#">导航栏</a>
<a href="#">导航栏</a>
</nav>
</body>
</html>
继承性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
nav {
color: aqua;
}
</style>
</head>
<body>
<nav id="nav">
<span>this is span</span>
</nav>
</body>
</html>
优先级
方式 |
贡献值 |
继承或者是* |
0000 |
元素标签 |
0001 |
类,伪类 |
0010 |
ID |
0100 |
行内样式 |
1000 |
!important |
无穷大 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
span {
color: red;
}
nav span{
color: aqua;
}
</style>
</head>
<body>
<nav id="nav">
<span>this is span</span>
</nav>
</body>
</html>
背景
body {
background-image: url(1.jpg);
}
body {
background-image: url(https://www.jb51.cc/res/2020/12-12/21/571664e71899566318514d678929c0f8.png);
background-repeat: repeat;/*默认值,在横向和纵向上都会产生平铺效果*/
background-repeat: no-repeat;/*无论图片多大,都不会产生平铺*/
background-repeat: repeat-x;/*横向上平铺*/
background-repeat: repeat-y;/*纵向上平铺*/
}
background-position: x y;
其中的x y 可以是方位词,如 center,left, right,top,bottom
也可以是 像素值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div {
height: 600px;
width: 600px;
background-color: aqua;
background-image: url(1.jpg);
background-repeat: no-repeat;
background-position: center center;
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
bady{
background-image: url(https://www.jb51.cc/res/2020/12-12/21/571664e71899566318514d678929c0f8.png);
/*不会随着滚动条的滚动而发生变化,默认值是scroll,会随着滚动条的滚动而滚走*/
background-attachment: fixed;
}
购物车案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
a {
height: 208.5px;
width: 500px;
display: block;
background-image: url(./1.jpg);
}
a:hover {
background-position: left bottom;
}
</style>
</head>
<body>
<a href="#"></a>
</body>
</html>
背景半透明
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body {
background-color: pink;
}
div {
height: 200px;
width: 200px;
background: rgba(0,0.3);
}
</style>
</head>
<body>
<div>
this is div
</div>
</body>
</html>
盒子模型
盒子边框border
div {
width: 200px;
height: 200px;
border: solid;
}
通过border可以为盒子设置边框,有如下的选项
solid: 实线
none: 默认值,没有边框
dashed:边框是虚线
dotted:边框为点线
double:边框为双实线
还可以单独为某一个边设置边框
border-left
border-right
border-top
border-bottom
比如:
border-left: 1px solid red;
表格细线边框
table{
width: 300px;
height: 300px;
border: 1px solid;
}
td {
border: 1px solid;
text-align: center;
}
table,td {
border-collapse: collapse;
}
盒子内边距
div {
/*设置上下左右均为10px*/
padding: 10px;
}
div {
/*设置上下10px,左右20px*/
padding: 10px 20px;
}
div {
/*设置上10px,左右15px ,下20px*/
padding: 10px 15px 20px;
}
div {
/*设置上10px,左15px ,右30px,下20px*/
padding: 10px 15px 30px 20px;
}
清除所有的内外边距
* {
margin: 0;
padding: 0;
}
案例新闻列表
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
* {
margin: 0;
padding: 0;
}
body {
background-color: #eee;
}
.article {
width: 378px;
height: 263px;
border: 1px solid #ccc;
margin: 100px;
padding:20px 16px 0;
}
.article h4 {
color: #202026;
font-size: 21px;
border-bottom: 1px solid;
padding-bottom: 2px;
}
.article ul {
margin-top: 12px;
}
.article li {
height: 28px;
line-height: 28px;
list-style:none;
padding: 5px 20px;
border-bottom: 1px dashed #cccccc;
}
.article li a{
text-decoration: none;
font-size: 16px;
color: #333;
}
.article li a:hover{
text-decoration: underline;
}
</style>
</head>
<body>
<div class="article-box">
<div class="article">
<h4 >最新新闻/New Article</h4>
<ul>
<li><a href="#">做一个有上进心的青年。</a></li>
<li><a href="#">做一个有上进心的青年。</a></li>
<li><a href="#">做一个有上进心的青年。</a></li>
<li><a href="#">做一个有上进心的青年。</a></li>
</ul>
</div>
</div>
</body>
</html>
盒子水平居中
div{
/*他可以让div中的 文字,行内元素,行内块元素水平居中对齐*/
text-align: center
}
div {
/*上下0,左右自适应*/
margin: 0 auto;
}
/*或者是这种写法*/
div {
margin: auto;
}
盒子的外边距合并问题
padding不会撑开盒子的情况
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.father {
width:200px;
height: 150px;
background-color: pink;
}
.son {
padding: 20px;
}
</style>
</head>
<body>
<div class="article-box">
<div class="father">
<div class="son">123</div>
</div>
</div>
</body>
</html>
圆角边框
div {
width: 20px;
height: 20px;
border-radius: 50%;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body {
background-color: #eee;
}
.dv {
text-align: center;
}
a {
width: 200px;
height: 200px;
display: inline-block;
color: #f40;
font-weight: 700;
font-size: 18px;
border-radius: 50%;
text-decoration: none;
background-color: #fff;
line-height: 200px;
margin: 30px;
}
a:hover {
background-color: #ff4400;
color: #ffffff;
}
</style>
</head>
<body>
<div class="article-box">
<div class="dv">
<a href="#">点我升级</a>
<a href="#">点我升级</a>
<a href="#">点我升级</a>
<a href="#">点我升级</a>
</div>
</div>
</body>
</html>
盒子影子
box-shadow: 水平阴影 垂直阴影 模糊距离 阴影尺寸 阴影颜色 内/外阴影
水平阴影: h-shadow 必须
垂直阴影: v-shadow 必须
模糊距离: blur 可选
阴影尺寸: spread 可选
阴影颜色: color 可选
内/外阴影: inset 可选
例:
div {
box-shadow: 0 15px 30px rgba(0,0.4)
}