CSS基础

简介: 【8月更文挑战第27天】

CSS
层叠样式表
表示样式可以一层一层的层叠覆盖
引入方式
内嵌式
CSS写在style标签中
style 标签虽然可以写在页面任意位置,但是通常约定写在 head 标签中
外链式
CSS 写在一个单独的 .css 文件中


需要通过 link 标签在页面中引入
行内式
CSS写在标签的 style 属性中
配合 js 使用
基础选择器
标签选择器
结果:标签名{css属性名:属性值;}
作用:通过标签名,找到页面中所有这类标签,设置样式
注意点:
标签选择器选择的是一类标签,而不是单独某一个
标签选择器无论嵌套关系有多深,都能找到对应的标签
类选择器
结构:.类名{css属性名:属性值;}
作用:通过类名,找到页面中所有带有这个类名的标签,设置样式
注意点:
所有标签上都有class属性,class属性的属性值称为类名
类名可以有数字、字母、下划线、中划线组成,但不能以数字或者中划线开头
一个标签可以同时有多个类名,类名之间以空格隔开
类名可以重复,一个类选择器可以同时选中多个标签
id选择器
结构:#id属性值{css属性名:属性值;}
作用:通过id属性值,找到页面中带有这个id属性值的标签,设置样式
注意点:
所有标签上都有id属性
id属性值在一个页面中是唯一的,不可重复
一个标签只能有一个id属性值
一个id选择器只能选中一个标签
通配符选择器
结构:*{css属性名:属性值;}
作用:找到页面中的所有的标签,设置样式
注意点:
只会在特殊情况下才会用到
可能会用于取出标签默认的margin和padding
字体和文本样式
字体
用途 属性 取值 注意点 备注
字体大小 font-size 数字 + px 谷歌浏览器默认文字大小16px
单位需要设置,否则无效
字体粗细 font-weight 关键字
正常:normal
加粗:bold
纯数字:100~900的整数
正常:400
加粗:700 不是所有字体都提供了九种粗细,因此部分取值页面中无变化
字体倾斜 font-style 正常:normal
倾斜:italic
字体类型 font-family 具体字体:“Microsoft YaHei”、微软雅黑、黑体、宋体…
字体系列:sans-serif、serif… 字体名称中存在多个单词,推荐使用引号包裹
最后一项字体系列不需要引号包裹
尽量使用系统常见字体,保证不同用户浏览网页都可以正确显示 渲染规则:
1、从左往右按顺序查找,如果电脑中未安装该字体,则显示下一个字体
2、如果都不支持,此时根据操作系统,显示最后字体系列的默认字体
复合属性 font style weight size family 如果需要同时设置单独和连写形式
要么单独的样式写在连写的下面
要么把单独的样式写在连写的里面 只能省略前两个,如果省略了相当于设置默认值

文本
用途 属性 属性值 备注
文本缩进 text-indent 数字 + px
数字 + em em:一个字的大小
文本水平对齐方式 text-align 左对齐:left
居中对齐:center
右对齐:right 如果需要让文本水平居中,text-align 属性给文本所在标签(文本的父元素)设置 可以让以下元素居中:
文本
span标签
a标签
input标签
img标签
如果需要让以上元素水平居中,taxt-align:center需要给以上元素的 父元素 设置
文本修饰 text-decoration 下划线:undeerline
删除线:line-through
上划线:overline
无装饰线:none
行高
作用:控制一行的上下间距
属性名:line-height
取值:
数字 + px
倍数(当前标签 font-size 的倍数)
应用
让单行文本垂直居中可以设置 line-height :文本父元素的高度
网页精准布局时,会设置 line-height:1 可以取消上下间距

行高与font连写的注意点
如果同时设置行高和font连写,注意覆盖问题
font: style weight size/line-height family
颜色取值
颜色表示方式 含义 属性值
关键字 预定义的颜色名 red、green…
rgb表示法 红绿蓝三原色,每项取值:0~255 rgb(0,0,0)、rgb(255,255,255)…
rgba表示法 红绿蓝三原色+a表示透明度,取值范围0~1 rgba(255,255,255,0.3)…
十六进制表示法 #开头,将数字转换成十六进制表示 #ff0000…
标签水平居中
标签水平居中方法总结:margin: 0 auto
注意点:
如果需要让 div、p、h(大盒子)水平居中,直接给当前元素本身设置即可
margin: 0 auto一般针对固定宽度的盒子,如果大盒子没有设置宽度,此时会默认占满父元素的宽度
选择器进阶
后代选择器:空格
作用:根据HTML标签的嵌套关系,选择父元素后代中满足条件的元素
语法:选择器1 选择器2 {css}
结果:在选择器1所找到的标签的后代中,找到满足选择器2的标签,设置样式
注意点:
后代包括:儿子、孙子…
后代选择器中哪个,选择器与选择器之间通过 空格 隔开
子代选择器:>
作用:根据HTML标签的嵌套关系,选择父元素 子代中 满足条件的元素
语法:选择器1 > 选择器2 { css }
结果:在选择器1所找到的标签的子代(儿子)中,找到满足选择器2的标签,设置样式
注意点:
子代只包括:儿子
子代选择器中,选择器与选择器之间通过 > 隔开
并集选择器:,
作用:同时选择多组标签,设置相同的样式
语法:选择器1,选择器2 { css }
结果:找到 选择器1 和 选择器2 选中的标签,设置样式
注意点:
并集选择器中每组选择器之间通过 , 分隔
并集选择器中每组选择器可以是基础选择器或者复合选择器
并集选择器中每组选择器通常一行写一个,提高代码可读性
交集选择器:紧挨着
作用:选中页面中 同时满足 多个选择器的标签
语法:选择器1选择器2{css}
结果:找到页面中既能被选择器1选中,又能被选择器2选中的标签,设置样式
注意点:
选择器之间紧挨着,美欧东西分隔
如果有标签选择器,标签选择器必须写在最前面
hover 伪类选择器
作用:选中鼠标悬停在元素上的转态,设置样式
语法:选择器:hover { css }
注意点:伪类选择器选中的元素的某种状态
emmet语法
作用:通过简写语法,快速生成代码

语法:

记忆 示例 效果
标签名 div


类选择器 .red

id选择器 #one

交集选择器 p.red#one

li


内部文本 ul>li{li的内容}
  • li的内容

创建多个 ul>li*3

背景
背景颜色
属性名:background-color (bgc)
属性值:颜色取值关键字、rgb表示法、rgba表示法、十六进制…
注意点:
背景颜色默认值是透明:rgba(0,0,0,0)、transparent
背景颜色不会影响盒子大小,并且还能看清盒子的大小和位置,一般在布局中习惯先给盒子设置背景颜色
背景图片
属性名:background-image (bgi)
属性值:background-image:url('图片路径')
注意点:
url中可以省略引号
默认是在水平和垂直方向平铺
仅仅是指给盒子起到装饰效果,类似背景颜色,是不能撑开盒子的
背景平铺
属性名:background-repeat (bgr)

属性值:

取值 效果
repeat 默认值,水平和垂直方向都平铺
no-repeat 不平铺
repeat-x 水平平铺
repeat-y 垂直平铺
背景位置
属性名:background-position (bgp)
属性值:background-position:水平方向位置 垂直方向位置;
方向名词:
水平:left 、center、right
垂直:top、center、bottom
数字+px(坐标):
原点(0,0) 盒子的左上角
x轴正向,水平向右
y轴正向,垂直向下
注意点:方位名词取值,和坐标取值可以混用,第一个取值表示水平,第二个取值表示垂直
背景属性连写
属性名:background (bg)
属性值:单个属性值的合写,取值之间以空格隔开
书写顺序推荐:background:color image repeat position
省略问题
按照需求省略
特殊情况:在pc端,如果盒子大小和背景图片大小一样,此时考科一直接写background:url()
注意点:
如果需要设置单独的样式和连写
要么把单独的样式写在连写的下面
要么把单独的样式写在连写的里面
元素显示模式
块级元素
特点:
独占一行
宽度默认是父元素的宽度,高度默认由内容撑开
可以设置宽高
代表标签:div、p、h、ul、li、dl、dt、dd、from、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 转成行内元素 极少
CSS 特性
继承性
特性:子元素有默认继承父元素样式的特点
可以继承的常见属性(文字控制属性都可以继承)
color
font-style、font-weight、font-size、font-family
text-indent、text-align
line-height
注意点:
通过调试工具判断样式是否可以继承

a标签的 color 会继承失效
h系列标签的 font-size 会继承失效
层叠性
特性:
给同一个标签设置不同的样式,此时样式会层叠叠加,会共同作用在标签上
给同一标签设置相同的样式,此时样式会层叠覆盖,最终写在最后的样式会生效
注意点:
当样式冲突时,只有选择器优先级相同时,才能通过层叠性判断结果
优先级
特性:不同选择器具有不同的优先级,优先级高的选择器样式会覆盖优先级低选择器样式
优先级公式:继承 < 通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important
注意点:
!important 写在属性值的后面,分号的前面
!important 不能提升继承的优先级,只要是继承优先级最低
实际开发中不建议使用 !important
权重叠加计算
场景:如果是复合选择器,此时需要通过权重叠加计算方法,判断最终哪个选择器优先级最高会生效
权重叠加计算公式:每一级之间不存在进位

比较规则:
从第一级到第四级依次比较,如果某一级比较出来了,之后的统统不看
如果所有数字都相同,表示优先级相同,则比较层叠性
注意点:!important 如果不是继承,则权重最高
盒子模型
页面中每个标签,都可以看做是一个盒子,通过盒子的视角更方便布局
浏览器在渲染网页时,会将网页中的元素看做一个个矩形区域,称之为盒子
CSS中规定每个盒子分别由一下构成
内容区域 content
内边距区域:padding
边框区域 border
外边距 margin
内容的宽度和高度
作用:利用 width 和 height 属性默认设置是盒子 内容区域的大小
属性:width、height
常见取值:数字+px
边框 border
会撑大盒子尺寸

属性名:border

属性值:单个取值的连写,取值之间以空格隔开

border:10px solid red
线宽、线的种类、线的颜色
单方向设置

属性名:border-方位名词
属性值:单个取值的连写,取值之间以空格隔开
单个属性

控制边框粗细、样式、颜色

作用 属性名 属性值
边框粗细 border-width 数字+px
边框样式 border-style 实线solid、虚线 dashed、点线 dotted
边框颜色 border-color 颜色取值
内边距 padding
border 与 content 之间的间距

属性名:padding
属性值:数字+px padding: 上 右 下 左
CSS3盒子模型,自动内减
给盒子设置 box-sizing:border-box;浏览器会自动计算多余大小,在内容中减去,保证盒子不会被border撑大

外边距 margin
margin:上 右 下 左 数字+px

左右:auto 会左右居中

清除默认内外边距
浏览器会默认给部分标签设置默认的margin和padding

  • {
    margin:0;
    padding:0;
    }
    1
    2
    3
    4
    外边距折叠现象
    合并现象
    场景:垂直布局的块级元素,上下的margin会合并
    结果:最终两者距离为 margin 的最大值
    解决方法:只给其中一个盒子设置margin即可
    塌陷现象
    场景:互相嵌套的块级元素,子元素的 margin-top会作用到父元素上
    结果:导致父元素一起往下移动
    解决方法:
    给父元素设置border-top或者padding-top,分隔父子元素的margin-top
    给父元素设置overflow:hidden
    将子元素转换成行内块元素
    设置浮动
    行内元素的垂直内外边距
    如果想通过 maegin 和padding改变行内标签的位置,无法生效
    通过行高来改变位置 line-height:100px
    结构伪类
    作用:根据元素在HTML中结构关系查找元素
    场景:行用于查找某父级选择器中的子元素
    选择器 说明
    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…

通过n组成常见公式

功能 公式
偶数 2n、even
奇数 2n+1、2n-1、odd
找到前5个 -n+5
找到第五个往后 n+5
伪元素
CSS模拟出标签效果
伪元素 作用
::before 在父元素内容的最前添加一个伪元素
::after 在父元素内容的最后添加一个伪元素
注意点
必须设置 content 属性才能生效
伪元素默认是行内元素
浮动
网页布局:块在一行排列

属性名:float

属性值:left、right…

特点

浮动元素会脱离标准流,在标准流中不占位置
浮动元素比标准流高半个级别,可以覆盖标准流中的元素,但不覆盖内容
浮动找浮动,下一个浮动元素会在上一个浮动元素的后面左右浮动
浮动元素有特殊的显示效果
一行可以显示多个
可以设置宽高
注意点

浮动的元素不能通过text-align:center或者margin:0 auto
清除浮动带来的影响
影响:父子级标签,如果子元素浮动了,父元素没有高度,后面的标准流盒子回受影响,会显示到上面的位置
原因:子元素浮动后脱标,不占位置
目的:需要父元素有高度,从而不影响其他网页元素的布局
清除浮动影响的方法
直接设置父元素高度

额外标签法

在父元素内容的最后添加一个块级元素
给添加的块级元素设置clear:both;
单伪元素清除法

伪元素替代额外标签

.clearfix::after{
content:'';
/块元素/
display:block;
clear:both;
/为了兼容性,补充代码:在网页中看不到伪元素;低版本可能要用/
height:0;
visibility:hidden;
}
1
2
3
4
5
6
7
8
9
双伪元素清除法

.clearfix::before,
.clearfix::after{
content:'';
display:table;
}
.clearfix::after{
clear:both;
}
1
2
3
4
5
6
7
8
给父元素设置overflow:hidden

定位
应用场景

解决盒子与盒子之间的层叠问题,定位后的元素层级最高,可以层叠在其他盒子上面
可以让盒子始终固定在屏幕中的某个位置
定位使用
设置定位方式

属性名:position

常见属性值:

定位方式 属性值
静态定位(默认) static
相对定位 relative
绝对定位 absolute
固定定位 fixed
设置偏移值

偏移值设置分为两个方向,水平和垂直方向各选一个使用即可

选取的原则一般是就近原则

方向 属性名 属性值 含义
水平 left 数字+px 距离左边的距离
水平 right 数字+px 距离右边的距离
垂直 top 数字+px 距离上边的距离
垂直 bottom 数字+px 距离下边的距离
静态定位
position:static;

静态定位就是标准流,不能通过方位属性进行移动
相对定位
相对于自己之前的位置进行移动
position:relative;
特点:
需要配合方位属性实现移动
相对于自己原来的位置进行移动
在页面中占位置,没有脱标
场景:
配合绝对定位组CP(子绝父相)
用于小范围的移动
绝对定位
相对于非静态定位的父元素进行定位移动
position:absolute;
特点:
需要配合方位属性实现移动
父级没有,或者父级没有定位,则默认相对于浏览器可视区域进行移动
在页面中不占位置,已经脱标
场景:
配合绝对定位组CP(子绝父相)
固定定位
相对于浏览器进行定位
position:fixed;
特点:
需要配合方位属性实现移动
相对于浏览器可视区进行移动
在页面中不占位置,已经脱标
场景
让盒子固定在屏幕中的某个位置
显示层级
不同布局方式元素的层级关系
标准流 < 浮动 < 定位
不同定位之间层级关系
相对、绝对、固定默认层级相同
此时HTML中写在下面的元素层级更高,会覆盖上面的元素
z-index:整数取值越大,显示顺序越靠上;必须配合定位才生效
装饰

相关文章
|
3月前
|
前端开发 UED
css基础
css基础
14 0
|
3月前
|
前端开发 UED
CSS 基础
【8月更文挑战第16天】
|
6月前
|
前端开发 容器
CSS 基础 3
CSS 基础 3
31 1
|
6月前
|
Web App开发 XML 前端开发
CSS基础-超详解 (1)
CSS基础-超详解 (1)
33 0
|
6月前
|
前端开发 安全 容器
CSS基础 2(1)
CSS基础 2
22 0
|
6月前
|
前端开发 UED
CSS基础讲解
CSS(层叠样式表,Cascading Style Sheets)是一种用于描述网页元素样式的标记语言。它与HTML一起使用,可以控制网页的布局、字体、颜色、大小、背景等各种外观和样式。 通过在HTML文档中引入CSS样式表,可以简化网页设计和维护过程。通过将样式应用到HTML元素上,可以更改元素的外观,而无需修改HTML本身。这种分离的结构使得样式和内容可以独立开发和管理。
63 1
|
6月前
|
前端开发 JavaScript 程序员
CSS【基础】
CSS【基础】
70 0
|
人工智能 前端开发 JavaScript
CSS基础(4)
为什么需要定位 浮动可以让多个块级盒子一行没有缝隙排列显示, 经常用于横向排列盒子。 定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中某个位置,并且可以压住其他盒子。
55 1
|
移动开发 前端开发 HTML5
CSS基础05
从头学前端-CSS基础05
119 0
|
算法 前端开发
CSS基础之textstyle
CSS基础之textstyle
113 0
CSS基础之textstyle