(1)内嵌式:CSS写在style标签中(小案例)
提示:style标签可以写在页面任意位置,但是通常约定写在head标签中
(2)外联式:CSS写在一个单独的.css文件中(项目中)
需要通过link标签
在网页中引入
注释:
rel="styleheet"表示关系为样式表
代码:
(3)行内式:CSS写在标签的style属性中(配合js使用)
Document
你好世界
这是div标签
这个div是什么颜色
a标签默认是行内元素,宽高由内容撑开,并且无法设置宽高,此时默认情况用户只能点击文字区域才能跳转
如果把a标签转换成块级元素,此时可以设置宽高,会让a标签范围更大,用户可以点击调整的区域也越大
因为用户鼠标放在二维码图片上也能跳转,所以证明img也是在a的范围内,因此把img写在a标签的内部
宽度不设置块元素会默认占满一行
ul li a {
display: block;
height: 40px;
text-decoration: none;//去除下划线
color: #000;
}
.类名{
css属性名:属性值;
}
空格隔开
即可主要是配合js做页面效果的
结构:
#id属性值{
css属性名:属性值;
}
注意点:
* {
css属性名:属性值;
}
找到页面中所有的标签,设置样式
"en">
"UTF-8">
"X-UA-Compatible" content="IE=edge">
"viewport" content="width=device-width, initial-scale=1.0">
Document
"one">pppppp
"one">这个p是什么颜色的
"blue">2222222222
pppppp
这个p是什么颜色的
2222222222
选择器1 选择器2{
css
}
选择器1 > 选择器2{
css
}
作用:同时选择多组标签,设置相同的样式
语法:
选择器1,选择器2{
css
}
结果:
注意点:
作用:选中鼠标悬停在元素上的状态,设置样式
注意:
选择器语法:
选择器:hover{
css
}
Document
这是一个p标签
这是p标签:box
ppppppp
这是div标签:box
中间用,隔开
最后写一个种类
兜底,就是前边都没有,就按这种类的字体使用
font:style weight size family;
Document
这是一段div文字
- text-indent:em ;
- text-indent: 18px ;
取值:
属性值:
- left: 左对齐
- center: 居中对齐
- right: 右对齐
注意:
如果需要让以上元素水平居中,text-align:center
取值:
- underline://下划线(常用)
- ine-through: //删除线(不常用)
- overline://上划线(几乎不用)
- none://无装饰线(常用)
/*开发中会使用*/
text-decoration:none;
/*清除a标签下的下划线*/
控制一行的上下行间距
取值:
应用:
单行文本垂直居中
可以设置line-height:文字父元素高度font:style weight size/line-height family;
Document
测试
关注XXX,订阅更多精彩内容 点开小编的文章要趁早哦,不然新的文章都要凉凉了 自从佟丽娅离婚之后,38岁的佟丽娅一改往日的保守低调,开始大胆尝试性感路线,很多网友和粉丝第一次知道,原来佟丽娅也是“性感女神”,
佟丽娅
/* 水平居中 */
margin: 0 auto;
background-color:rgba(0,0,0,透明度);
background-image: url(../图片/小米.webp);
background-repeat: repeat //默认值,水平和垂直方向都平铺
background-repeat: no-repeat //(不平铺)图片只显示一个
background-repeat: repeat-x //(沿这水平方向(x轴)平铺)
background-repeat: repeat-y //(沿着垂直方向(y轴)平铺)
background-position
属性值:background-position:水平方向位置 垂直方向位置
水平方向:(left center right)
垂直方向:(top center bottom)
background:color image repeat position;
/* 背景图位置如果是英文单词,可以颠倒位置 .如果是数值的话,不能颠倒位置*/
1.独占一行(一行只能显示一个)
2.宽度默认是父元素宽度(父元素宽度的100%),高默认由内容撑开
3.可以设置宽高
div,p,h系列,ul,li,dl,dt,dd,form,header,nav,footer...
1.一行可以显示多个
2.宽度和高度默认由内容撑开
3.不可以设置宽高(写了也不生效)
a,span,b,u,i,s,strong,ins,em,del...
input, textarea,button,select....
display:block 转换成块级元素
display:inline-block 转换成行内块元素
display:inline 转换成行内元素
(1)块级元素一般作为大容器,
但是:
(2)a标签内部可以嵌套任意元素
可以继承的常见属性:(文字控制属性都可以继承)
- 1.color
- 2.font:style weight size family
- 3.text-indent (缩进)
- 4.text-align(水平居中)
继承失效的特殊情况:
特性:
优先级公式: (谁更精准,谁的优先级高)
注意点:
!important 能将优先级加到最大
①!important写在属性值的后边,分号的前面
②!important不能提升继承的优先级,只要是继承优先级最低
③实际开发中不建议使用!important
都是继承的话,继承里边谁高,看继承哪个父级,哪个选择器生效
复合选择器:
场景:
如果是复合选择器,此时需要通过权重叠加计算方法 判断最终那个选择器优先级最高会生效
权重计算公式:(每一级之间不存在进位)
第一级 第二级 第三级 第四级
( 0 , 0 , 0 , 0 )
复合选择器中 行内样式 id选择器 类选择器 标签选择器
的个数 的个数 的个数 的个数
比较规则:
①先比较第一级数字,如果比较出来了,之后通通不看
②如果一级数字相同,再去比较二级数字,如果比较出来,后边统统不看了
③…
④如果最终数字都相同,表示优先级相同,则比较层叠性
注意点: !important如果不是继承,则权重最高,天下第一
- E:first-child{} 匹配父元素中的第一个子元素,并且是E元素
- E:last-child{} 匹配父元素中最后一个子元素,并且是E元素
- E:nth-child(n){} 匹配父元素中第n个子元素,并且是E元素
- E:nth-last-child(n){} 匹配父元素中倒数第n个元素,并且是E元素
- E:nth-last-child(4n){} 匹配父元素中第4n个元素,并且是E元素
- E:nth-last-child(-n+4){} 匹配父元素中前4个元素,并且是E元素
"en">
"UTF-8">
"X-UA-Compatible" content="IE=edge">
"viewport" content="width=device-width, initial-scale=1.0">
Document
- 这是第1个li
- 这是第2个li
- 这是第3个li
- 这是第4个li
- 这是第5个li
- 这是第6个li
- 这是第7个li
- 这是第8个li
一般页面中的非主体内容可以使用伪元素
网页中的装饰性小图一般用这个
区别:
种类:
- 类名::before 作用:在父元素的最前添加一个伪元素
- 类名::after 作用:在父元素的最后添加一个伪元素
注意点:
Document
"father">爱
浏览器解析行内标签或行内块标签时,如果标签换行书写会产生一个空格的距离
浮动作用:
现在的作用:网页布局
float: left; //左浮动
float: right; //右浮动
浮动的特点:
1.浮动元素会脱离标准流(简称脱标),在标准流中不占位置相当于从地面飘到空中
(脱离标准流,只会盖标签,但是不盖内容)
2.浮动元素比标准流高半个级别,可以覆盖标准流中的元素
3.浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
4.浮动元素有特有的显示效果
浮动的标签是顶对齐的(不想顶对齐,可以设置margin)
注意点:
操作:
1.在父元素内容的最后添加一个块级元素
给添加的块级元素设置clear:both
- clear有(left,right)分别清除左右的影响
- clear:both清除所有的影响
缺点:会在页面中添加额外的标签,会让页面的html结构变复杂
操作:用伪元素代替额外标签
(1)基本写法:
.clearfix::after{
content:'';
display:block;
clear:both;
/*补充代码,让网页中看不到伪元素*/
height: 0;
隐藏的功能
visibility: hidden;
}
优点: 工作中常用,直接给标签加类即可清除浮动
写法:
.clearfix::after{
content:'';
display:table;
}
/*真正清除浮动的标签*/
.clearfix::after{
clear:both;
}
overflow:hidden;
CSS规定,每个盒子分别由:
- 内容区域(content),
- 内边距区域(padding),
- 边框区域(border),
- 外边距(margin)
构成,这就是盒子模型
属性名:border
属性值:单个的取值的连写,取值之间以空格隔开
快捷键bd+tab
边框连写形式:
border:10px solid red;
- 线条的种类( solid:实线
dashed:虚线
dotted:点线
....)
①边框单向取值:
边框单方向设置: 只给盒子的某个方向设置边框
border-right: 1px solid #000;
②边框属性:
/*粗细:*/border-width: 数字加px;
/*样式:*/border-style: 实线solid,虚线dashed,点线dotted;
/*颜色:*/border-color: 颜色取值;
③边框圆角设置:
属性名:border-radius : 圆角的半径+px或者百分比
border-radius : 10px;
属性名: padding: 数字加px;
padding : 10px;
- padding可以当做复合属性使用,表示单独设置某个方向的内边距
- padding后边最多取四个值,上右下左;按照顺序顺时针取值
- (1)取三个值:上,左右,下
- (2)取两个值:上下,左右
- (3)多值写法,永远都是从上开始,顺时针转一圈,如果数不够,看对面的值
------
### (3)自动内减: box-sizing
- 操作:给盒模型设置属性:
- ```css
box-sizing:border-box;
浏览器会默认给部分标签设置默认的内外边距:padding margin ,
但是在一般项目开始前,需要先清除这些标签默认的margin和padding后续自己设置
最简单方法:
/*方法一-设置全部*/
* {
margin:0;
padding:0;
}
/*方法二:(并集选择想删除的标签)*/
h1,h2,div,ul...{
margin:0;
padding:0;
}
margin: 0 auto;
list-style:none;
只设高度,不设宽度即可
使用步骤:
1.设置定位的方式
- 属性名:position
- 常见属性值:
- 静态定位:position:static
- 相对定位:position:relative
- 绝对定位:position:absolute
- 固定位置:position:fixed
2.设置偏移值:
介绍:
/*代码:*/position:relative;
特点:
拼爹型定位: 相对于非静态定位的父元素进行定位移动
绝对定位:
(查找父级就近找定位的父级,如果逐层查找找不到这样的父级,就以浏览器窗口为参照物进行定位)
(1)先找已经定位的父级,如果有这样的父级,就可以以这个父级作为参照物来进行定位
(2)有父级,但是父级没有定位,以浏览器窗口为参照物进行定位
代码:
position:absolute;
特点:
应用场景:
注意:
/* 位移:自己宽高的一半 */
transform: translate(-50%, -50%);
保持标签的位置一直不变,网页随意滚动,标签位置不变
死心眼型的,相对于浏览器进行定位移动
/*代码:*/position:fixed;
特点:
应用场景:
值为整数 取值越大,标签越显示在上边
标签默认值是0注意:要配合定位才能生效
z-index: 999;
基线:
浏览器处理行内和行内块的显示模式时候是按照文字的对齐方式来的
(1)想要解决这个问题,可以将图片格式改为块模式
(2)使用vertical-align :
场景:解决行内/行内块元素垂直对齐问题
问题:
- 属性名:vertical-align
- 属性值:
- vertical-align:baseline 默认基线对齐
- vertical-align:top 顶部对齐
- vertical-align:middle 中部对齐
- vertical-align:bottom 底部对齐
- 属性名:cursor
- 常见属性值:
- cursor:default 默认值,通常是箭头
- cursor:pointer 小手效果,提示用户可以点击
- cursor:text 工字型,提示用户可以选择文字
- cursor:move 十字光标,提示用户可以移动
属性名:overflow
属性值:
visible 默认值,溢出部分可见
hidden 溢出部分隐藏
scroll 无论内容是否溢出,都显示右下滚动条
auto 根据是否溢出,自动显示或隐藏滚动条
text-overflow: ellipsis; //溢出部分变为省略号
white-space: nowrap; //禁止换行
让某元素本身在屏幕中不可见,如鼠标hover后元素隐藏
常见属性:
- 1.visibility:hidden //隐藏的时候占位置(工作中不常用)
- 2.display:none;(常用) //隐藏的时候不占位置(工作中常用)
/* 鼠标悬停的时候显示二维码 */
/* 显示的是code,所以hover后边要加作用对象
这段代码的意思就是:当鼠标悬停在.app上时 .code的样式*/
.nav ul li .app:hover .code{
display: block;
}
opacity: 0.3;
/后边跟属性名 和时间+s后缀/
transition: /*后边跟属性名 和时间+s后缀*/
box-shadow: 0 2px 3px 0 rgba(118,118,118,0.2);
title:网页标题标签
description:网页描述标签(desc)
keywords:网页关键词标签(kw)
写在html框架里边的meta里边