目录
中文名:层叠样式表
作用:美化HTML标签
书写位置:
1.在标签的style属性中书写 这样的方式,编写的样式无法给别的标签使用,如果网页中有多个该样式的标签,此时代 码就会较为冗余(内联样式)
2.在style标签中书写
3.在css文件中书写,通过link标签引入到需要使用的html文件中,一般这种方式最标准
作用::寻找指定的html标签
1.统配选择器
作用:给当前网页中所有标签都使用
语法: *{
css样式
}
例如:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <style type="text/css">
- *{
- font-size: 50px;
- }
- </style>
- </head>
- <body>
- <font>
- JAVA
- </font>
- </body>
- </html>
2.标签选择器
作用:给当前网页指定标签设置样式
语法:
标签名{
css样式 }
例:给font标签指定属性
- font{
- font-size: 50px;
- color: #0079F5;
- }
- <font>
- JAVA
- </font>
3.class选择器
作用:给当前网页class属性值为xxx的设置样式
语法: .class的属性值{
css样式 }
例:
- .text{
- font-size: 80px;
- color: red;
- }
- <font class="text">font01</font>
- /**
- text为自己命名的
- */
4.id选择器 作用:给当前网页中id属性值为xxx的设置样式.
语法: #id的属性值{
css样式 }
例:
- #f{
- font-size: 80px;
- }
<font id="f">Java</font>
5.伪类选择器
鼠标悬浮:hover
语法: hover{
鼠标悬浮在该标签上,该标签的样式}
例:
- #f{
- font-size: 80px;
- }
- #f:hover{
- color: red;
- }
<font id="f">Java</font>
效果为鼠标放在上面,字体就会变红,不放就是正常颜色
获取焦点:focus
语法: 选择器:focus{
css样式}
border::点击后框框大小
color:颜色
- input:focus{
- border: 10px ;
- color: #0079F5;
- }
<input type="text" />
优先级:内联>id选择器>class选择器>标签选择器>统配选择器
如果多个优先级相同的给同一个标签设置样式,谁在后使用谁的
大小:font-size
字体:font-family :例 宋体,楷体...
颜色:color
rgb(红色,绿色,蓝色);
rgba(红色,绿色,蓝色,透明度)
透明度取值范围:0~1,0表示全透明,1表示不透明
- /*color: #FF9900;*/
- /*color: rgb(255,0,0);*/
格式:font-style
normal | 默认值。浏览器显示一个标准的字体样式。 |
italic | 浏览器会显示一个斜体的字体样式。 |
oblique | 浏览器会显示一个倾斜的字体样式。 |
笔画粗细:font-weight
装饰:text-decoration
none | 默认。定义标准的文本。 |
underline | 定义文本下的一条线。 |
overline | 定义文本上的一条线。 |
line-through | 定义穿过文本下的一条线。 |
文本位于标签的位置:text-align
一行字所占高度:line-height
background-color:背景颜色
background-image: 背景图片
background-size:背景大小
background-repeat:是否平铺
background-position:背景位置
background:背景
- /*background-color: #FF0000;*/
- background-image: url("img/qianfeng.png");
- background-size:10% 10%;
- background-repeat:no-repeat;
- background-position:center center;
1.行内元素:
特点:设置宽高无效,标签大小由标签中内容决定,不会独占一行
如:font标签
2.行内块元素:
特点:设置宽高有效,不独占一行
如:img,input
3.块级元素
特点:设置宽高有效,独占一行
如:h1,h2,p,div,li
修改改标签的元素类型
通过display属性进行修改
inline-block:行内块元素
inline:行内元素
block:块元素
none:隐藏
flex:弹性盒子
宽/高 width/height
内边距:标签内,内容距离边框的距离 padding
边框:边框厚度 border
border:10px solid #0000CC
顶部没了为html自带bug
边框的大小,solid为实现的意思
外边距:当前标签距离父容器或兄弟标签的距离 margin
可以设置距离其它距离的位置
标准盒子:
计算标签占用大小:左外边距+左边框+左内边距+宽+右内边距+右边框+右外边距 = 真实 的宽 默认的就是该类型的盒子
上述的就为标准盒子
IE盒子:
计算方式:左外边距 + 宽 + 右外边距 = 真实的宽
设置盒子类型为IE盒子:box-sizing: border-box;
与标准盒子相比
- #box01{
- background: red;
- width: 200px;
- height: 200px;/*
- * 本来盒子的大小
- */
- padding: 30px;
- /*加了内边距,盒子变大 */
-
- border: 20px solid black;
- /* 加了边框 */
-
- margin: 50px;
- }
- #box02{
- background: red;
- width: 200px;
- height: 200px;
- /* 盒子大小不变*/
-
- padding: 30px;/*内容变小了,边框,内边距被减去了 */
-
- border: 20px solid black;
- margin: 50px;
- box-sizing: border-box;/* 设置为ie盒子*/
- }
浮动:
float:left从左向右
right 从右向左
给所有需要子标签加
- #box{
- width: 300px;
- height: 200px;
- background: orange;
- }
- .box_item{
- width: 100px;
- height: 100px;
- border: 1px solid black;/* 整一个属性*/
- /*float: left;*/ /* 悬浮自带补齐,但是因为边框也有大小会折到下一行 */
- }
- <div id="box">
- <div class="box_item"></div>
- <div class="box_item"></div>
- <div class="box_item"></div>
- <div class="box_item"></div>
- <div class="box_item"></div>
- <div class="box_item"></div>
-
- </div>
效果如图
独占一行所以从上到下排列
float: left;/* 悬浮自带补齐,但是因为边框也有大小会折到下一行 */
这时候把class属性的width: 100px; height: 100px;都变为98px即可解决
空间塌陷:不使用浮动时,使box属性为0,填入内容,内容会填满空间。
- #box{
- width: 300px;
- /*height: 200px;*/
- background: orange;
- }
使用浮动后:
高度不定义也是希望用内容撑起来,让其更加灵活,给定后也可能导致边框与后面的叠加
但是高度没了,父容器没了,导致空间塌陷,具体原因我也不知道,毕竟我不是专业前端
解决方案:
- .clearAfter:after{
- content: ".";
- overflow: hidden;
- clear: both;
- height: 0;
- display: block;
- }
- 在其浮动的标签的父容器的class属性值中加入clearAfter即可
反正是解决了
定位:属性:position
1.浏览器窗口定位:fixed
相对与浏览器窗口的位置,不会保留标签的原位置
- #gg{
- width: 240px;
- height: 160px;
- background: red;
- position: fixed;
- right: 0;//距离右边的距离
- bottom: 0;//距离底部的距离
- // left 左边
- // top 顶部
- }
-
- <div id="gg">
- <font>这是一个广告</font>
- </div>
2.相对定位:relative 相对于标签的原位置, 注意:会保留标签的原位置
- #box02{
- background: greenyellow;
- position: relative;
- left: 50px;//一般用这两个,
- top: -50px;
-
-
- //bottom reight这两个可能有的浏览器不适配
- }
给其加入层级 z-index: -1;//层级可以让其去任意一层,有个定位才能用
3.绝对定位:absolute,相对与最近一层做过定位的父容器的位置,不会保留原位置
父容器定位随便做,每填值都行
注意:里面的坐标类似于这样
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <style type="text/css">
- #box{
- width: 300px;
- height: 200px;
- background: brown;
- display: flex;/*弹性布局,会默认平分*/
- }
- .div{
- width: 100px;
- height: 100px;
- border: 1px solid black;
- box-sizing: border-box;
- }
- </style>
- </head>
- <body>
- <div id="box">
-
- <div id="box01" class="div">1</div>
- <div id="box02" class="div">2</div>
- <div id="box03" class="div">3</div>
- <div id="box04" class="div">4</div>
- <div id="box05" class="div">5</div>
- <div id="box06" class="div">6</div>
- <div id="box07" class="div">7</div>
-
- </div>
- </body>
- </html>
- display: flex;/*弹性布局,会默认平分*/
- flex-wrap: wrap;/*会自动换行,按给的宽度自动排列,此时不设置父容器高度也不会空间塌陷*/
不设置高度
居中:
- <style type="text/css">
- #box{
- width: 300px;
- height: 200px;
- background: orchid;
- display: flex;/*设置为弹性盒子*/
- }
- #div{/*此标签就在父标签中居中,只有一个时有效*/
- width: 100px;
- height: 100px;
- background: palevioletred;
- margin:auto;/*自动居中*/
- }
- </style>
检测窗口的大小,不同大小有不同的页面,这样可以适配多种屏幕大小
- <style type="text/css">
- *{
- margin: 0;
- padding: 0;
- }
- html,body{
- width: 100%;
- height: 100%;
- }
- #content{
- width: 100%;
- width: 100%;
- }
- @media only screen and (min-width: 100px) and (max-width: 640px) {
- #content{
- background: black;/*例如在这个区间背景为黑*/
- }/*显示器屏幕100px到640px用这个 */
- }
-
- @media only screen and (min-width: 640px) and (max-width: 1400px) {
- #content{
- background: red;/*例如在这个区间背景为红*/
- }/*显示器屏幕640px到1400px用这个 */
-
- }
-
- ....不同尺寸写一套不同的css这样就可以适应不同的屏幕大小
-
-
-
- </style>
box-shadow
box-shadow(X轴偏移量 Y轴偏移量 blur阴影模糊半径 spread阴影扩展半径 阴影颜色 position投影方式 )
x :值为正数时,阴影在右侧;值为负数,阴影在元素左
y:值为正数时,阴影下方;值为负数,阴影在上方
blur 值越大,阴影则更不锋利而更朦胧 / 模糊。负值是不合法的,会被修正成 0
spread:阴影扩展半径,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值是,则缩小。前提是存在阴影模糊半径。
position:默认为外投影,可设置为 inset 变为内投影
border-radius 10%就是这个效果
transform:rotate(45deg) ;/*例如顺时针旋转45°*/
transform:translateX(x轴平移)translateY(y轴平移) scale(0~1缩小,大于1变大);
设置背景变化
- @keyframes anim{
- 0%{
- background-image: url(img/IMG_20221024_222535.jpg) ;
- background-size: 100% 700px;
- }
- 50%{
- background-image: url(img/QQ图片20220325160444.jpg);
- background-size: 100% 700px;
- }
- 100%{
- background-image: url(img/IMG_20221024_222535.jpg);
- background-size: 100% 700px;
- }
-
- }
- body{
- animation: anim 2s linear infinite;
- }
- //anim 2s表示循环2s,linear infiite表示不停线性循环背景