层叠样式表 (Cascading Style Sheets).
CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离.
CSS 基本的语法规则:先是一个选择器,然后 大括号,大括号里有一些样式的内容(键值对).
选择器 + {一条/N条声明}
举例:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div{
/* 这是一个注释 */
color: red;
font-size: 50px;
}
style>
head>
<body>
<div>hello worlddiv>
body>
html>
注意:
- CSS 要写到 style 标签中(后面还会介绍其他写法).
- style 标签可以放到页面任意位置. 一般放到 head 标签内.
- CSS 使用 /* */ 作为注释. (使用 ctrl + / 快速切换);CSS 不支持 // 作为注释.
写在 style 标签中. 嵌入到 html 内部.
理论上来说 style 放到 html 的哪里都行. 但是一般都是放到 head 标签中.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div{
/* 这是一个注释 */
color: red;
font-size: 50px;
}
style>
head>
<body>
<div>hello worlddiv>
body>
html>
通过 style 属性, 把对应的 CSS 内容写进来,来指定某个标签的样式.
只适合于写简单样式. 只针对某个标签生效.
这种写法优先级较高, 会覆盖其他的样式.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<div style="color: blue;font-size: 50px;">hello worlddiv>
body>
html>
实际开发中最常用的方式.
<link rel="stylesheet" href="style.css">
/*
href 后面写的内容和 img 的 src 类似,支持绝对路径/相对路径/网络路径
*/
注意:外部样式和内部样式优先级相同,即后面的覆盖前面的!
创建一个 style.css 文件
div{
color: green;
font-size: 50px;
}
创建一个 demo.html 文件
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<link rel="stylesheet" href="style.css">
head>
<body>
<div>hello worlddiv>
body>
html>
p { color: red; font-size: 30px;}
p {
color: red;
font-size: 30px;
}
虽然 CSS 不区分大小写, 我们开发时统一使用小写字母.
选中页面中指定的标签元素.
基础选择器: 单个选择器构成的
复合选择器: 把多种基础选择器综合运用起来.
特点:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div{
color: red;
font-size: 50px;
}
p{
color: green;
font-size: 30px;
}
style>
head>
<body>
<div>hellodiv>
<div>worlddiv>
<div>javadiv>
<p>这个是 p 标签p>
<p>这个是 p 标签p>
<p>这个是 p 标签p>
body>
html>
特点:
注意:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div{
color: red;
font-size: 50px;
}
/* .开头的就是类选择器 */
.one{
color: green;
}
style>
head>
<body>
<div class="one">hellodiv>
<div>worlddiv>
<div class="one">javadiv>
body>
html>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div{
color: red;
font-size: 50px;
}
/* .开头的就是类选择器 */
.one{
color: green;
}
.two{
font-size: 30px;
}
style>
head>
<body>
<div class="one">hellodiv>
<div>worlddiv>
<div class="one two">javadiv>
body>
html>
特点:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div{
color: red;
font-size: 50px;
}
/* .开头的就是类选择器 */
.one{
color: green;
}
.two{
font-size: 30px;
}
#world{
color: blue;
font-size: 100px;
}
style>
head>
<body>
<div class="one">hellodiv>
<div id="world">worlddiv>
<div class="one two">javadiv>
body>
html>
通配符选择器:是一个特殊的情况,选取所有的标签.
* {
color: red;
}
作用 | 特点 | |
---|---|---|
标签选择器 | 能选出所有相同标签 | 不能差异化选择 |
类选择器 | 能选出一个或多个标签 | 根据需求选择, 最灵活, 最常用. |
id 选择器 | 能选出一个标签 | 同一个 id 在一个 HTML 中只能出现一次 |
通配符选择器 | 选择所有标签 | 特殊情况下使用 |
选中某个元素里边包含的一个元素.
元素1 元素2 {样式声明}
案例:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
li {
color: red;
}
style>
head>
<body>
<ul>
<li>咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ul>
<ol>
<li>咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ol>
body>
html>
结果为:
对于案例,包含两个列表,一个有序列表,一个无序列表,
我们直接对 标签li 使用类选择器,这样所有的标签都是红色;
那么如果我们想 只选中 有序列表,改怎么做呢?
这就需要使用 后代选择器 了.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
ol li {
color: red;
}
/*
#one-ol li {
color: red;
}
*/
style>
head>
<body>
<ul>
<li>咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ul>
<ol class="one" id="one-ol">
<li>咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ol>
body>
html>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
/* ol li {
color: red;
} */
/* #one-ol li {
color: red;
} */
ol .two{
color: blue;
}
style>
head>
<body>
<ul>
<li>咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ul>
<ol class="one" id="one-ol">
<li class="two">咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ol>
body>
html>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
/* ol li {
color: red;
} */
/* #one-ol li {
color: red;
} */
/* ol .two{
color: blue;
} */
ol a {
color: green;
}
style>
head>
<body>
<ul>
<li>咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ul>
<ol class="one" id="one-ol">
<li class="two"><a href="#">咬人猫a>li>
<li>兔总裁li>
<li>阿叶君li>
ol>
body>
html>
和后代选择器类似, 但是只能选择子标签.
元素1>元素2 {样式声明}
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
ol>a {
color: green;
}
style>
head>
<body>
<ul>
<li>咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ul>
<ol class="one" id="one-ol">
<li class="two"><a href="#">咬人猫a>li>
<li>兔总裁li>
<li>阿叶君li>
ol>
body>
html>
可以看到,我们之间越过 li标签,之间选择 a 标签,绿色并没有生效!(a 标签默认为蓝色,点一下就是紫色了)
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
ol>li>a {
color: green;
}
style>
head>
<body>
<ul>
<li>咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ul>
<ol class="one" id="one-ol">
<li class="two"><a href="#">咬人猫a>li>
<li>兔总裁li>
<li>阿叶君li>
ol>
body>
html>
依次选择 ol -> li -> a,这样就可以做到 选中 a 标签,绿色生效!
用于选择多组标签.
元素1, 元素2 {样式声明}
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
ul li, ol li {
color: red;
}
style>
head>
<body>
<ul>
<li>咬人猫li>
<li>兔总裁li>
<li>阿叶君li>
ul>
<ol class="one" id="one-ol">
<li class="two"><a href="#">咬人猫a>li>
<li>兔总裁li>
<li>阿叶君li>
ol>
body>
html>
这里的 有序列表 中的 咬人猫 没有被选中,是因为 咬人猫 是单独的 a 标签 .
a:link 选择未被访问过的链接
a:visited 选择已经被访问过的链接
a:hover 选择鼠标指针悬停上的链接
a:active 选择活动链接(鼠标按下了但是未弹起)
注意事项
举例:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
color: red;
}
div:hover {
color: green;
}
div:active {
color: blue;
}
style>
head>
<body>
<div>
咬人猫
div>
body>
html>
选择器 | 作用 | 注意事项 |
---|---|---|
后代选择器 | 选择后代元素 | 可以是孙子元素 |
子选择器 | 选择子元素 | 只能选亲儿子, 不能选孙子 |
并集选择器 | 选择相同样式的元素 | 更好的做到代码重用 |
链接伪类选择器 | 选择不同状态的链接 | 重点掌握 a:hover 的写法. |
字体表示同一个文字符号的时候,也有多种不同的形式.
body {
font-family: '微软雅黑';
font-family: 'Microsoft YaHei';
}
p {
font-size: 20px;
}
p {
font-weight: bold;
font-weight: 700;
}
/* 设置倾斜 */
font-style: italic;
/* 取消倾斜 */
font-style: normal;
一般是取消倾斜,主要是取消 em 和 i 标签的倾斜.
为了量化的表示一个颜色,计算机中引入了 RGB 这样的概念.
任何一种颜色,都是通过三原色 R(red 红)G(green 绿)B(blue 蓝)不同比例混合来构成的。计算机中针对 R, G, B 三个分量, 分别使用一个字节表示(0-255).
数值越大, 表示该分量的颜色就越浓. 255, 255, 255 就表示白色; 0, 0, 0 就表示黑色.
/* 直接使用单词 */
color: red;
/* 十六进制形式 */
color: #ff0000;
/* RGB 方式 */
color: rgb(255, 0, 0);
十六进制形式表示颜色, 如果两两相同, 就可以用一个来表示.
例如:#ff00ff => #f0f
text-align: [值];
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
.one {
font-size: 50px;
font-weight: bold;
text-align: left;
}
.two {
font-size: 50px;
font-weight: lighter;
text-align: right;
}
.three {
font-size: 50px;
font-weight: normal;
text-align: center;
}
style>
head>
<body>
<div class="one">咬人猫div>
<div class="two">兔总裁div>
<div class="three">阿叶君div>
body>
html>
text-decoration: [值];
常用取值:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
.one {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: center;
text-decoration: underline;
}
.two {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: lift;
text-decoration: overline;
}
.three {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: right;
text-decoration: line-through;
}
style>
head>
<body>
<div class="one">咬人猫div>
<div class="two">兔总裁div>
<div class="three">阿叶君div>
body>
html>
控制段落的 首行 缩进 (其他行不影响)
text-indent: [值];
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: left;
text-decoration: underline;
text-indent: 50px;
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
line-height: [值];
行高 = 文字高度 + 行间距
HTML 中展示文字涉及到这几个基准线:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: left;
text-decoration: underline;
text-indent: 50px;
line-height: 200px;
}
style>
head>
<body>
<div>咬人猫div>
<div>兔总裁div>
body>
html>
background-color: [指定颜色]
这里的颜色设置和之前的文本颜色是一样的.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: left;
text-decoration: underline;
text-indent: 50px;
line-height: 200px;
background-color: grey;
}
style>
head>
<body>
<div>咬人猫div>
<div>兔总裁div>
body>
html>
background-image: url(...);
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: left;
text-decoration: underline;
text-indent: 50px;
line-height: 200px;
background-image: url(../imger/kunkun.jpg);
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
默认是平铺:铺地砖
background-repeat: [平铺方式]
重要取值:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: left;
text-decoration: underline;
text-indent: 50px;
line-height: 200px;
background-image: url(../imger/kunkun.jpg);
background-repeat: no-repeat;
height: 500px;
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
background-position: x y;
计算机中的坐标系是左手系,左上角为坐标原点.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: left;
text-decoration: underline;
text-indent: 50px;
line-height: 200px;
background-image: url(../imger/kunkun.jpg);
background-repeat: no-repeat;
background-position: center;
height: 500px;
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
background-size: length|percentage|cover|contain;
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
font-size: 100px;
color: #F00;
font-weight: lighter;
text-align: left;
text-decoration: underline;
text-indent: 50px;
line-height: 200px;
background-image: url(../imger/kunkun.jpg);
background-repeat: no-repeat;
background-position: center;
background-size: cover;
height: 500px;
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
border-radius: length;
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
width: 200px;
height: 100px;
border: 2px solid green;
border-radius: 10px;
}
style>
head>
<body>
<div>Javadiv>
body>
html>
让 border-radius 的值为正方形宽度的一半即可.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
width: 200px;
height: 200px;
border: 2px solid green;
/* border-radius: 100px; */
border-radius: 50%;
}
style>
head>
<body>
<div>Javadiv>
body>
html>
让 border-radius 的值为正方形高度的一半即可.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
width: 200px;
height: 100px;
border: 2px solid green;
border-radius: 50px;
}
style>
head>
<body>
<div>Javadiv>
body>
html>
有两种方式可以打开 Chrome 调试工具
块级元素:(h1~h6,p, div,ul,li,ol,dl,dt,dd,form)
块级元素特征:
- 能够识别宽高.
- 可以自动换行(独占一行).
- 多个块级元素标签写在一起,默认排序方式为从上至下.
- 是一个容器(盒子), 里面可以放行内和块级元素.
行内元素:(a,span,i,em,strong,b,label,u,ins,del)
行内元素特征:
- 设置宽高无效,左右外边距有效(上下无效). 内边距有效.
- 对 margin 仅设置左右方向有效,上下无效,padding 设置上下左右都有效
- 不会自动进行换行(不独占一行)
- 行内元素只能容纳文本和其他行内元素, 不能放块级元素
通过 display 属性转换,其中 display 有三个值:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
span {
width: 100px;
height: 100px;
display: inline;
}
style>
head>
<body>
<span>咬人猫span>
<span>兔总裁span>
body>
html>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
span {
width: 100px;
height: 100px;
display: block;
}
style>
head>
<body>
<span>咬人猫span>
<span>兔总裁span>
body>
html>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
span {
width: 100px;
height: 100px;
display: inline-block;
}
style>
head>
<body>
<span>咬人猫span>
<span>兔总裁span>
body>
html>
CSS 盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容;盒模型允许我们在其它元素和周围元素边框之间的空间放置元素.
我们所说的盒模型,不适用于 行内元素,都是以 块级元素 为基准来介绍的.
这个盒子由这几个部分构成
可以改四个方向的任意边框.
border-top/bottom/left/right
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
width: 200px;
height: 100px;
border: 10px solid red;
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
* {
box-sizing: border-box;
}
div {
width: 200px;
height: 100px;
border-top: 5px solid red;
border-bottom: 10px dashed green;
border-left: 20px dotted blue;
border-right: 15px solid gray;
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
边框会撑大原有的盒子,这样就改变了原有的盒子,但这个特性是一个挺讨厌的特性,那么如何让边框不撑大盒子呢?
可以通过一个属性来进行设置:box-sizing
另外,通常我们希望页面中所有的元素,都能按照 border-box 来进行布局,所以我们采用 通配符 选择器来进行设置.
* {
box-sizing: border-box;
}
padding 设置内容和边框之间的距离.
只能单纯的设置距离,不能设置粗细,风格,颜色.
可以给四个方向都加上边距
padding-top/bottom/left/right
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
* {
box-sizing: border-box;
}
div {
width: 200px;
height: 100px;
border: 2px red solid;
padding: 10px;
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
* {
box-sizing: border-box;
}
div {
width: 200px;
height: 100px;
border: 2px red solid;
padding-left: 10px;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 20px;
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
可以把多个方向的 padding 合并到一起.
padding: 20px; 表示四个方向都是 20px
padding: 20px 10px; 表示上下内边距 20px, 左右内边距为 10px
padding: 20px 10px 20px; 表示上边距 20px, 左右内边距为 10px, 下内边距为 20px
padding: 20px 10px 20px 30px; 表示 上20px, 右10px, 下20px, 左30px (顺时针)
控制盒子和盒子之间的距离.
和padding类似,可以给四个方向都加上边距
规则同 padding
margin: 10px; // 四个方向都设置
margin: 10px 20px; // 上下为 10, 左右 20
margin: 10px 20px 30px; // 上 10, 左右 20, 下 30
margin: 10px 20px 30px 40px; // 上 10, 右 20, 下 30, 左 40
指定宽度(如果不指定宽度, 默认和父元素一致)
注意:
这个水平居中的方式和 text-align 不一样.
margin: auto 是给块级元素用得到.
text-align: center 是让行内元素或者行内块元素居中的.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
* {
box-sizing: border-box;
}
div {
width: 200px;
height: 100px;
border: 2px red solid;
padding: 20px;
margin: 0 auto;
}
style>
head>
<body>
<div>咬人猫div>
body>
html>
浏览器会给元素加上一些默认的样式, 尤其是内外边距. 不同浏览器的默认样式存在差别.
为了保证代码在不同的浏览器上都能按照统一的样式显示, 往往我们会去除浏览器默认样式.
使用通配符选择器即可完成这件事情.
* {
marign: 0;
padding: 0;
}
弹性布局 是后来引入的特性,使用弹性布局,就可以代替很多旧式的写法,使页面的布局更加简单方便,更加符合逻辑.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
* {
box-sizing: border-box;
}
div {
height: 150px;
background-color: red;
}
span {
background-color: green;
width: 100px;
}
style>
head>
<body>
<div>
<span>1span>
<span>2span>
<span>3span>
div>
body>
html>
此时因为 span 是行内元素,不能设置宽度,所以宽度并未生效.
如果给 div 加上一个 display: flex; 使 div 变为弹性的。结果为:
此时,里边的 span 发生了改变.
宽度生效(此时 span 已经不再是 行内元素了.)
高度默认和父元素一样高.
给 span 加上 height: 100px;尝试改变高度,效果为:
使用弹性布局,就可以更方便的实现居中效果.
给 div 加上 justify-content: space-around; 此时效果为:
这样我们就实现了水平居中.
给 div 加上 align-items: center;此时效果为:
此时就实现了垂直居中.
弹性布局,就可以很方便的让元素在水平方向进行各种常见的排列.
当给一个元素设为 display: flex;此时子元素就不再遵守原来的 “块级元素” “行内元素” 的规则了,变成了弹性元素,这些弹性元素就会按照弹性布局的规则来排列.
基础概念:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
* {
box-sizing: border-box;
}
div {
height: 150px;
background-color: red;
display: flex;
justify-content: flex-start;
align-items: center;
}
span {
background-color: green;
width: 100px;
height: 100px;
}
style>
head>
<body>
<div>
<span>1span>
<span>2span>
<span>3span>
div>
body>
html>
此时元素都排列到右侧了.
此时元素居中排列
先两边元素贴近边缘, 再平分剩余空间.
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
* {
box-sizing: border-box;
}
div {
height: 150px;
background-color: red;
display: flex;
justify-content: space-between;
/* align-items: center; */
}
span {
background-color: green;
width: 100px;
/* height: 100px; */
}
style>
head>
<body>
<div>
<span>1span>
<span>2span>
<span>3span>
div>
body>
html>