<link rel="stylesheet" href="">
标签名 { css属性名: 属性值; }
body {
background-color: skyblue;
}
.类名 { css属性名: 属性值; }
.box {
width: 200px;
height: 200px;
}
#id属性值 { css属性名: 属性值; }
#box {
width: 200px;
height: 200px;
}
* { css属性名: 属性值; }
* {
margin: 0;
padding: 0;
}
font-size: 16px;
注意点:
谷歌浏览器默认文字大小是16px
单位需要设置,否则无效
font-weight: bold;
取值:
效果 | 关键字 |
---|---|
正常 | normal |
加粗 | bold |
正常 | 400 |
加粗 | 700 |
font-style: italic;
效果 | 取值 |
---|---|
正常(默认值) | normal |
倾斜 | italic |
font-family: "Helvetica Neue",Helvetica,Arial,"Microsoft Yahei","Hiragino Sans GB","Heiti SC","WenQuanYiMicro Hei",sans-serif;
系统 | 默认字体 |
---|---|
Windows | 微软雅黑 |
macOS | 苹方 |
font: style weight size/line-height family;
color: red;
color: #ff0000;
color: rgb(255, 0, 0);
text-indent: 2em;
取值:
- 数字 + px
- 数字 + em(推荐:1em = 当前标签的 font-size 的大小)
text-align: center;
属性值 | 效果 |
---|---|
left | 左对齐 |
center | 居中对齐 |
right | 右对齐 |
text-align : center 能让哪些元素水平居中?
文本
span标签、a标签
input标签、img标签
注意点:
text-decoration: none;
属性值 | 效果 |
---|---|
underline | 下划线(常用) |
line-through | 删除线(不常用) |
overline | 上划线(几乎不用) |
none | 无装饰线(常用) |
注意:
开发中会使用
text-decoration: none;
清除a标签默认的下划线
选择器1 选择器2 { css }
选择器1 > 选择器2 { css }
选择器1, 选择器2 { css }
选择器1选择器2 { css }
// 鼠标悬停在元素上的状态
选择器:hover { css }
background-color: #000;
background-color: black;
background-color: rgb(0,0,0);
background-color: rgb(0,0,0,0.5);
background-image: url('图片的路径');
注意点:
背景图片中url中可以省略引号
背景图片默认是在水平和垂直方向平铺的
背景图片仅仅是指给盒子起到装饰效果,类似于背景颜色,是不能撑开盒子的
background-repeat: no-repeat;
取值 | 效果 |
---|---|
repeat | (默认值) 水平和垂直方向都平铺 |
no-repeat | 不平铺 |
repeat-x | 沿着水平(x轴)平铺 |
repeat-y | 沿着垂直(y轴)平铺 |
background-position: 0 0;
属性值:background-position: 水平方向位置 垂直方向位置;
属性值:方位名词
属性值:数字 + px (坐标)
分类 | 方向 | 属性值 |
---|---|---|
方位名词 | 水平方向 | left |
方位名词 | 水平方向 | center |
方位名词 | 水平方向 | right |
方位名词 | 垂直方向 | top |
方位名词 | 垂直方向 | center |
方位名词 | 垂直方向 | bottom |
数字 + px | x轴 | 水平向右 |
数字 + px | y轴 | 垂直向上 |
注意点:
方位名词取值和坐标取值可以混使用,第一个取值表示水平,第二个取值表示垂直
background: color image repeat position;
div、p、h系列、ul、li、dl、dt、dd、form、header、nav、footer……
显示特点:
独占一行(一行只能显示一个)
宽度默认是父元素的宽度,高度默认由内容撑开
可以设置宽高
a、span 、b、u、i、s、strong、ins、em、del……
显示特点:
一行可以显示多个
宽度和高度默认由内容撑开
不可以设置宽高
input、textarea、button、select……
特殊情况:img标签有行内块元素特点,但是Chrome调试工具中显示结果是inline
显示特点:
一行可以显示多个
可以设置宽高
属性 | 效果 | 使用频率 |
---|---|---|
display: block |
转换成块级元素 | 较多 |
display: inline-block |
转换成行内块元素 | 较多 |
display: inline |
转换成行内元素 | 极少 |
text-align: center;
适用:
- 文本
- 行内元素。如:span、a
- 行内块元素。如:input、img
注意点:如果需要让以上元素水平居中,此时直接在以上元素的父元素中设置即可。
margin: 0 auto;
适用:
- 块级元素
注意点:直接给当前元素设置即可。
line-height 的值 (等于) 盒子的高度, 即 line-height: 盒子的高度;
适用:单行文本。
子元素有默认继承父元素样式的特点
1. 给同一个标签设置不同的样式 → 此时样式会层叠叠加 → 会共同作用在标签上
2. 给同一个标签设置相同的样式 → 此时样式会层叠覆盖 → 最终写在最后的样式会生效
继承 < 通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important
width: 200px;
height: 200px;
作用 | 属性名 | 属性值 |
---|---|---|
边框粗细 | border-width | 数字 + px |
边框样式 | border-style | 实线 solid、虚线 dashed、点线 dotted |
边框颜色 | border-color | 颜色取值 |
border: 1px solid red;
padding-top: 10px;
padding-right: 20px;
padding-bottom: 30px;
padding-left: 40px;
padding: 10px;
padding: 10px 20px;
padding: 10px 20px 30px;
padding: 10px 20px 30px 40px;
取值 | 示例 | 含义 |
---|---|---|
一个值 | padding: 10px; |
上右下左都设置为10px |
两个值 | padding: 10px 20px; |
上下设置为10px 、左右设置为20px |
三个值 | padding: 10px 20px 30px; |
上设置为10px 、左右设置为20px 、下设置为30px |
四个值 | padding: 10px 20px 30px 40px; |
上设置为10px 、右设置为20px 、下设置为30px 、左设置为40px |
box-sizing: border-box;
优点:浏览器会自动计算多余大小,自动在内容中减去。
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px
margin-left: 40px;
margin: 10px;
margin: 10px 20px;
margin: 10px 20px 30px;
margin: 10px 20px 30px 40px;
取值 | 示例 | 含义 |
---|---|---|
一个值 | margin: 10px; |
上右下左都设置为10px |
两个值 | margin: 10px 20px; |
上下设置为10px 、左右设置为20px |
三个值 | margin: 10px 20px 30px; |
上设置为10px 、左右设置为20px 、下设置为30px |
四个值 | margin: 10px 20px 30px 40px; |
上设置为10px 、右设置为20px 、下设置为30px 、左设置为40px |
* {
margin: 0;
padding: 0;
}
场景:垂直布局 的 块级元素,上下的margin会合并
结果:最终两者距离为margin的最大值
解决方法:避免就好
场景:互相嵌套 的 块级元素,子元素的 margin-top 会作用在父元素上
结果:导致父元素一起往下移动
解决方法:
给父元素设置border-top 或者 padding-top(分隔父子元素的margin-top)
给父元素设置overflow:hidden
转换成行内块元素
设置浮动
场景:给行内元素设置margin和padding时
结果:
水平方向的margin和padding布局中有效!
垂直方向的margin和padding布局中无效!
选择器 | 说明 |
---|---|
E:first-child {} |
匹配父元素中第一个子元素,并且是E元素 |
E:last-child {} |
匹配父元素中最后一个子元素,并且是E元素 |
E:nth-child(n) {} |
匹配父元素中第n个子元素,并且是E元素 |
E:nth-last-child(n) {} |
匹配父元素中倒数第n个子元素,并且是E元素 |
n的注意点:
- n为:0、1、2、3、4、5、6、……
- 通过n可以组成常见公式
功能 公式 偶数 2n
、even
奇数 2n+1
、2n-1
、odd
找到前5个 -n+5
找到从第5个往后 n+5
伪元素:一般页面中的非主体内容可以使用伪元素
区别:
元素:HTML 设置的标签
伪元素:由 CSS 模拟出的标签效果
伪元素 | 作用 |
---|---|
::before |
在父元素内容的最前添加一个伪元素 |
::after |
在父元素内容的最后添加一个伪元素 |
注意点:
- 必须设置content属性才能生效
- 伪元素默认是行内元素
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>
.father {
width: 300px;
height: 300px;
background-color: pink;
}
.father::before {
/* 内容 */
/* content属性必须添加, 否则伪元素不生效 */
// content: '老鼠';
content: '';
color: white;
width: 100px;
height: 100px;
background-color: blue;
/* 默认是行内元素, 宽高不生效 */
display: block;
}
.father::after {
content: '大米';
}
style>
head>
<body>
<div class="father">爱div>
body>
html>
float: left;
float: right
属性名 | 效果 |
---|---|
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>
.top {
margin: 0 auto;
width: 1000px;
/* height: 300px; */
background-color: pink;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
style>
head>
<body>
<div class="top">
<div class="left">div>
<div class="right">div>
div>
<div class="bottom">div>
body>
html>
特点:
例如:.top { height: 300px; }
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>
.top {
margin: 0 auto;
width: 1000px;
height: 300px;
background-color: pink;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
style>
head>
<body>
<div class="top">
<div class="left">div>
<div class="right">div>
div>
<div class="bottom">div>
body>
html>
clear:both;
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>
.top {
margin: 0 auto;
width: 1000px;
background-color: pink;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
.clearfix {
clear: both;
}
style>
head>
<body>
<div class="top">
<div class="left">div>
<div class="right">div>
<div class="clearfix">div>
div>
<div class="bottom">div>
body>
html>
.clearfix::after {
content: '';
display: block;
clear: both;
}
② :补充写法
.clearfix::after {
content: '';
display: block;
clear: both;
/* 补充代码:在网页中看不到伪元素 */
height: 0;
visibility: hidden;
}
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>
.top {
margin: 0 auto;
width: 1000px;
background-color: pink;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
.clearfix::after {
content: '';
display: block;
clear: both;
height: 0;
visibility: hidden;
}
style>
head>
<body>
<div class="top clearfix">
<div class="left">div>
<div class="right">div>
div>
<div class="bottom">div>
body>
html>
.clearfix::before,
.clearfix::after {
content: '';
display: table;
}
.clearfix::after {
clear: both;
}
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>
.top {
margin: 0 auto;
width: 1000px;
background-color: pink;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
.clearfix::before,
.clearfix::after {
content: '';
display: table;
}
.clearfix::after {
clear: both;
}
style>
head>
<body>
<div class="top clearfix">
<div class="left">div>
<div class="right">div>
div>
<div class="bottom">div>
body>
html>
overflow : hidden;
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>
.top {
margin: 0 auto;
width: 1000px;
background-color: pink;
overflow: hidden;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
style>
head>
<body>
<div class="top">
<div class="left">div>
<div class="right">div>
div>
<div class="bottom">div>
body>
html>
position
定位方式 | 属性值 |
---|---|
静态定位 | static |
相对定位 | relative |
绝对定位 | absolute |
固定定位 | fixed |
方向 | 属性名 | 属性值 | 含义 |
---|---|---|---|
水平 | left | 数字 + px | 距离左边的距离 |
水平 | right | 数字 + px | 距离右边的距离 |
垂直 | top | 数字 + px | 距离上边的距离 |
垂直 | bottom | 数字 + px | 距离下边的距离 |
静态定位是默认值,就是之前认识的标准流。
position: static;
position: relative;
position: absolute;
子绝父相
让子盒子往右走大盒子一半
left:50%;
让子盒子往下走大盒子一半
top:50%;
让子盒子往左+往上走自己的一半+ + transform:translate(-50%,-50%);
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 {
/* 1. 绝对定位的盒子不能使用左右margin auto居中 */
position: absolute;
/* margin: 0 auto; */
/* left: 50%, 整个盒子移动到浏览器中间偏右的位置 */
left: 50%;
/* 把盒子向左侧移动: 自己宽度的一半 */
/* margin-left: -150px; */
top: 50%;
/* margin-top: -150px; */
/* 位移: 自己宽度高度的一半 */
transform: translate(-50%, -50%);
width: 400px;
height: 300px;
background-color: pink;
}
style>
head>
<body>
<div class="box">div>
body>
html>
相对于浏览器进行定位移动
代码:position: fixed;
相对于浏览器可视区域进行移动
已经脱标
不同布局方式元素的层级关系:
不同定位之间的层级关系:
场景:改变定位元素的层级
属性名:z-index
属性值:数字
属性值 | 效果 |
---|---|
baseline | 默认,基线对齐 |
top | 顶部对齐 |
middle | 中部对齐 |
bottom | 底部对齐 |
DOCTYPE html>
<html lang="zh-CN">
<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>
input {
height: 50px;
}
style>
head>
<body>
<input type="text" />
<input type="button" value="搜索" />
body>
html>
在标签中加入box-sizing: border-box;
和vertical-align: middle;
即:
input {
height: 50px;
box-sizing: border-box;
vertical-align: middle;
}
DOCTYPE html>
<html lang="zh-CN">
<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>
<img src="../微信小程序/mp-3/images/link-01.png" />
<input type="text" />
body>
html>
找到大盒子,即标签,让其添加vertical-align: middle;
即可让居中:
img {
vertical-align: middle;
}
DOCTYPE html>
<html lang="zh-CN">
<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>
.father {
width: 400px;
height: 400px;
background-color: pink;
}
style>
head>
<body>
<div class="father">
<input type="text" />
div>
body>
html>
在 标签中加入 vertical-align: top;
即可使 input标签与 div的顶部重合,即
input {
vertical-align: top;
}
DOCTYPE html>
<html lang="zh-CN">
<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>
.father {
background-color: pink;
}
style>
head>
<body>
<div class="father">
<img src="../微信小程序/mp-3/images/link-01.png" />
div>
body>
html>
给 input 标签添加 vertical-align: bottom;
或者添加 display: block;
,即可
img {
/* display: block; */
vertical-align: bottom;
}
DOCTYPE html>
<html lang="zh-CN">
<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>
.father {
width: 600px;
height: 600px;
background-color: pink;
line-height: 600px;
}
style>
head>
<body>
<div class="father">
<img src="../微信小程序/mp-3/images/link-01.png" alt="" />
div>
body>
html>
在 img 中添加 vertical-align: middle;
样式即可
img {
vertical-align: middle;
}
场景:设置鼠标光标在元素上时显示的样式
属性名:cursor
常见属性值:
属性值 | 效果 |
---|---|
default | 默认值,通常是箭头 |
pointer | 小手效果,提示用户可以点击 |
text | 工字型,提示用户可以选择文字 |
move | 十字光标,提示用户可以移动 |
场景:让盒子四个角变得圆润,增加页面细节,提升用户体验
属性名:border-radius
常见取值:数字 + px
、百分比
原理:
DOCTYPE html>
<html lang="zh-CN">
<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;
background-color: pink;
margin: 50px auto;
/* 一个值:表示4个角是相同的 */
/* border-radius: 20px; */
/* 4个值:左上 右上 右下 左下 -- 从左上顺时针转一圈 */
/* border-radius: 10px 20px 30px 40px; */
/* 3个值:左上 (右上和左下) 右下 */
/* border-radius: 10px 40px 80px; */
/* 2个值:(左上/右下) (右上/左下) */
border-radius: 10px 80px;
}
style>
head>
<body>
<div>div>
body>
html>
画一个正圆:
盒子必须是正方形
设置边框圆角为盒子宽高的一半 → border-radius:50%
胶囊按钮:
盒子要求是长方形
设置 → border-radius:盒子高度的一半
DOCTYPE html>
<html lang="zh-CN">
<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 {
width: 200px;
height: 200px;
background-color: pink;
border-radius: 50%;
}
.two {
height: 200px;
width: 400px;
background-color: skyblue;
border-radius: 100px;
}
style>
head>
<body>
<div class="one">div>
<div class="two">div>
body>
html>
溢出部分:指的是盒子 内容部分 所超出盒子范围的区域
场景:控制内容溢出部分的显示效果,如:显示、隐藏、滚动条……
属性名:overflow
常见属性值
属性值 | 效果 |
---|---|
visible | 默认值,溢出部分可见 |
hidden | 溢出部分隐藏 |
scroll | 无论是否溢出,都显示滚动条 |
auto | 根据是否溢出,自动显示或隐藏滚动条 |
场景:让某元素本身在屏幕中不可见。如:鼠标:hover之后元素隐藏
常见属性:
visibility: hidden;
display: none;
visibility: hidden;
隐藏元素本身,并且在网页中 占位置
display: none;
隐藏元素本身,并且在网页中 不占位置
注意点:
开发中经常会通过 display属性完成元素的显示隐藏切换
display: none;
(隐藏)、 display: block;
(显示)
本文参考及图片来源:最新前端开发入门教程,web前端零基础html5 +css3+前端项目视频教程