CSS全面讲解

提示:你的眼睛很好看,眼中应倒映着山川湖泊,星辰大海,更应该去看浩瀚无垠的知识,

为天地立心,为生民立命,为往圣继绝学,为万世开太平 (北宋儒学家张载)

文章目录


前言

来吧,学学这该死的CSS,理清它到底是个什么玩意哈哈哈哈,顺便送大家一段话,天空黑暗到一定程度,星辰就会熠熠生辉,请相信你自己也会成为一束光


一、CSS入门

1.CSS样式介绍

CSS样式由一条或多条以分号隔开的样式声明所组成,每条样式声明包含着一个CSS属性和属性值(即:键值对),键值间用冒号隔开,以分号结束

2.元素内嵌样式

<p style="color:red;font-size:30px">这是一段文本</p>//body区
//style 是元素内嵌样式属性(行内样式属性)
//color 是字体颜色属性 ,red是属性值(形成键值对)
//font-size是字体大小属性,30px是属性值(形成键值对)

3.文档内嵌样式

<style type="text/css">//head区
p{
color:blue;
font-size:40px;
}
</style>
<p>这是一段传说</p>//body区
//在文档head区中创建style元素,再通过选择器的方式来调用指定元素并设置CSS样式

4.外部引用样式

是未来我们做项目的时候,用的最多的一种引用方式
style.css:首先新建CSS文件并在其内设置CSS样式

@charset"utf-8";
//首先声明CSS的字符编码为utf-8(若不写,则默认utf-8)
p{
color:green;
font-size:30px;
}

index.html:在html文件中引用css文件

<link rel=“stylesheet” type="text/css" href="style.css">
//rel是关联的意思,关联的是一个样式表(stylesheet)文档,它表示这个link在文档初始化时将被使用,一般这里是不需要改动的

5.如何调用CSS

1)直接链接法

使用link元素在html页面中链接css文件

//html
<link rel="stylesheet" type="text/css" href="style.css">

//style.css
@charset "utf-8";
p{
font-style:italic;//字体风格设置为古意大利斜体
}

2)间接导入法

如果有多个css文件,可以使用@import在另一个已经链接成功的css文件中导入新的文件(性能不如link链接,还是直接链接法更实用)

//style.css
@charset "utf-8";
@import "text.css";
p{
font-style:italic;//字体风格设置为古意大利斜体
}

6.元素的隐含样式

也就浏览器样式,指的是这个元素在这款浏览器中运行时默认附加的样式

<span style="font-weight:bold;">span手动设置加粗</span>
//span:行内标签,组合文档中的行内元素,在行内定义一个区域,也就是一行内可以被<span>划分成好几个区域,从而实现某种特定效果。其实<span>本身没有任何属性,只有当对它应用样式时,它才会产生视觉上的变化。

<b style="font-weight:normal;">去除b元素的隐含样式</b>
//font-weight:设置文本的粗细,以下有几个属性值
//normal:默认值,定义标准的字符
//bold:定义粗体字符
//bolder:定义更粗的字符
//lighter:定义更细的字符
//100~900:400等同于normal,700等同于bold
//inherit:规定应该从父元素继承字体的粗细

7.层叠与优先级

样式表层叠:对一个元素多次用不同方式设置同一个样式
五种样式优先级排序(从低到高

  • 浏览器样式(元素自身携带的隐含样式)
  • 外部引用样式(link元素引用)
  • 文档内嵌样式(style元素在head区设置)
  • 元素内嵌样式(style属性在元素里面设置)
  • 强行设置最高优先级(important属性设置)
<style>
b{
color:blue;!important
font-size:50px;!important
font-style:italic;
}
</style>

速记:自<link<head<style<important

  • 层叠规则:若不产生样式的冲突,则进行样式的叠加
  • 若产生样式的冲突:则已优先级高的样式为准,进行样式的冲突替换;
  • 若优先级相同:则以后来定义的样式为准,进行样式id冲突替换
 <style>
//id选择器权重最大,最终会显示的背景色 
   #div {
            background: blue;
        }
//class选择器权重比ID选择器小,但是比id选择器大,所以background会被覆盖 
        
   .div {
            font-size: 20px;
            background: red;
        }
//元素选择器权重最小,所以font-size和background会被覆盖 
        
    div {
            padding: 10px;
            font-size: 14px;
            background: red;
        }
    </style>

8.继承和强制继承

样式继承一般只适用于元素的外观(文字、颜色、字体等),而元素在页面的布局样式,则不会被继承,如果你想强制继承布局样式的话,则必须使用强制继承:inherit(强制继承一般很少使用)

<p style="color:red;">这是一段<b>历程</b>经历</p>
//<b>元素嵌套在<p>元素里,<b>元素就继承了<p>的样式

有趣的问题问有趣的人@

子元素b为何不继承父元素span的字体颜色样式?
因为子元素已经设置过字体颜色样式,就不会继承父元素span的字体颜色样式了

父元素p加了外边框,但子元素b没有外边框?
方法1:直接在子元素b的文档内嵌样式里写一个和父元素一模一样的布局样式
方法2:在子元素b的文档内嵌样式中写一个强制继承inherit
b{boder:inherit;}

二、基本选择器

也称单一型选择器

选择器名称及说明
*通用选择器(选择所有元素)
type元素选择器(选择指定类型的元素)
#idid选择器(选择指定id属性的元素)
.classclass选择器(选择指定class属性的元素)
[attr]系列属性选择器(选择指定attr属性的元素)

1.通用选择器

【*】可以匹配到HTML文件中的所有元素
包括:body和html标签,head标签属于页面不可见区域,即使被匹配到了,也显示不出任何效果
html标签和body标签属于页面可见区域,它们都可以被匹配到并显示出效果

*{
boder:1px solid red;
//给元素设置边框:线宽1像素  线型实线  颜色红色
}

2.元素选择器

type】直接使用元素名作为选择器名,可以匹配到HTML文件中的同一种元素

//html 
<p>这是一个段落</p>

//css
p{
color:red;
}

3.ID选择器

#id】直接使用元素id值作为选择器名,可以匹配到HTML文件中的唯一元素

//html
<b id="abc">这是一个段落</b>

//css
#abc{
color:green;
}

4.类选择器

.class】类选择器可以匹配到HTML中的同一类元素

//html
<b class="abc">这是一个段落</b>
<span class="abc">这是一个什么都没有</span>

//css
.abc{
color:blue;
}

若使用"元素名.class值"作为类选择器名,则可以使用类选择器锁定到某一类的某一种元素
//html
<b class="abc">这是一个段落</b>
<span class="abc">这是一个什么都没有</span>
//css
p.abc{
color:blue;}

5.属性选择器

attr】直接使用中括号包括属性名作为选择器名可以匹配到HTML文件中含有某一种属性的元素

//html
<a href="http://www.baidu.com">百度</a>

//css
[href]{
color:red;
}

1)匹配1

匹配时,不但要满足某一属性,还要满足指定属性值

//html
<a href="http://www.baidu.com">百度</a>
<a href="http://www.163.com">网易</a>

//css
[href="http://www.baidu.com"]{
font-size:30px;
}

2)匹配2

匹配时,不但要满足某一属性,还要满足其属性值由指定字符开头^

//html
<input type="text">
<input type="password">

//css
[type^="pass"]{
border:1px solid red;
}

3)匹配3

匹配时,不但要满足某一属性,还要满足其属性值由指定字符结尾$

//html
<input type="text">
<input type="password">

//css
[type$="xt"]{
background:red;
}

4)匹配4

匹配时,不但要满足某一属性,还要满足其属性值包含指定字符*

//html
<a href="http://www.baidu.com">百度</a>
<a href="http://www.163.com">网易</a>

//css
[href *="baidu"]{
background:yellow;
}

5)匹配5

匹配时,不但要满足某一属性,属性值具有多个值且用多个值且用空格隔开时,还要满足其中一个属性值~

//html
<b class="abc def">这是一个段落</b>
<span class="abc">这是一个什么都没有</span>

//css
[class~="def"]{
color:red
}

6)匹配6

匹配时,不但要满足某一属性,属性值具有多个值且用多个值且用减号隔开时,还要满足其中一个属性值

//html
< i lang="ec-us">HTML5</i>

//css
[lang]="en"{
color:red;
}

三、复合选择器

将基本选择器的很多功能进行组合,形成新的特定匹配

选择器名称及说明
s1,s2,s3分组选择器(选择多个选择器的元素)
s1,s2后代选择器(选择指定选择器的后代元素)
s1>s2子选择器(选择指定选择器的子元素)
s1+s2相邻兄弟选择器(选择指定选择器相邻的元素)
s1~s2普通兄弟择器(选择指定选择器后面的元素)

1.三种层次

//祖先、后代、兄弟
<body>
<b id="1">这是一个加粗</b>
//b1
<p >这是<b id="2">一个</b>段落</p>
//b2<p
<b id="3">这是另一个加粗</b>
//b3
<span>这是<i><b id="4">一个</b></i>什么都没有</span>
//b4<span
<b id="5">这是第三个加粗</b>
//b5
</body>

祖先与后代关系:body是祖先父元素
b1,p,b3,span,b5都是body的后代子元素
兄弟关系:b1,p,b3,span,b5
相邻兄弟关系:b1&p - p&b3 - b3&span - span&b5
普通兄弟关系:b1&b5 - b1&b3 -b1&span -p&span - p&b5 - b3&b5
祖先与后代:p是祖先父元素,b2是p的后代子元素
祖先与后代:span是祖先元素;i是后代子元素,b4是后代孙元素

2.分组选择器

【,】将多个选择器通过逗号分割的方式进行混合使用,可以匹配多个元素。(不但可以把某一类基本选择器进行分组,还可以把类选择器、ID选择器、元素选择器、属性选择器等多种不同类型的基本选择则其进行混合分组)

//css1
p,b,span{
color:red;
}

//css2
.abc,#def,span,[href]{
background:yellow;
}

3.后代选择器

【】将两个基本选择器通过空格分割的方式进行混合使用,可匹配某元素的后代元素(后代元素可以是儿子,也可以是孙子,与层次深度无关),也可以混合使用类选择器、ID选择器、元素选择器、属性选择器

//html
<p>这是<b>一个</b>段落</p>
<p>这是<span><b>另一个</b></span>段落</p>

//css
p b{
color:red;
//选择p元素内部所有后代元素b,而不在乎b的层次深度
}

4.子选择器

>】将两个基本选择器通过大于号分割的方式进行混合使用,可匹配某元素的后代子元素(子元素只能是儿子,不能是孙子,与层次深度有关

//html
<p>这是<b>一个</b>段落</p>
<p>这是<span><b>另一个</b></span>段落</p>

//css
p>b{
color:red;
//选择p元素下一层元素b,而不能选择下下一层b元素
}

5.相邻兄弟选择器

+】将两个基本选择器通过加号分割的方式进行混合使用,可匹配某元素下方紧挨着它的相邻兄弟元素(二者具有相同父元素

//html
<b id="abc">这是一个加粗</b>
<p>这是<b>一个</b>段落</p>
<b >这是另一个加粗</b>

//css1
p+b{
color:red;
//选择与p相邻且与它是兄弟关系的b元素
}

//css2
ul>li+li{
background:red;
//选择ul元素的子元素li是相邻兄弟关系的li元素
}

6.普通兄弟选择器

~】将两个基本选择器通过波浪号分割的方式进行混合使用,可匹配某元素下方任意的兄弟元素(大家具有相同父元素)

//html
<b id="abc">这是一个加粗</b>
<p>这是<b>一个</b>段落</p>
<b >这是另一个加粗</b>
<span>这是<b>我</b>呀</span>

//css
p~b{
font-size:30px;
}

四、伪元素选择器

细分为为伪元素选择器和伪类选择器

选择器名称及说明
::first-line伪元素选择器(选择块级元素文本的首行)
::first-letter伪元素选择器(选择块级元素文本的首字母)
::before伪元素选择器(选择元素之前插入内容)
::after伪元素选择器(选择元素之后插入内容)

1.选定块级首行

::first-line】块级元素首行文本被选定,如果想限定某种元素,还可以在两冒号前加上元素名

//css1
::first-line{
color:red;
//开头的首行变成了红色
}

//css2
p::first-line{
color:green;
//块级元素p的首行变成了红色
}

2.选定块级首字母

::first-letter】块级元素首行字符被选定,如果想限定某种元素,还可以在两冒号前加上元素名

//css1
::first-letter{
color:red;
//开头的首字母变成了红色
}

//css2
p::first-letter{
color:green;
//块级元素p的首字母变成了绿色
}

//css3
span::first-letter{
color:green;
//块级元素span的首字母没有任何变化,因为span是行内元素,本身是不会变色的
}

3.文本前插入

before】在文本前插入内容

a::before{
content:'点击';
}

4.文本后插入

after】在文本后插入内容

a::after{
content:'搜索';
}

五、结构性伪类选择器

选择器名称及说明
:root根元素选择器(选择文档中的根元素)
:first-child子元素选择器(第一个子元素)
:last-child子元素选择器(最后一个子元素)
:only-child子元素选择器(唯一子元素)
:only-of-type子元素选择器(特定类型的唯一子元素)
:nth-chlid(n)子元素选择器(第n个子元素)

1.根元素选择器

:root】用来匹配HTML文档中的根元素html

:root{
border:1px solid red;
//线宽 1像素     线型 实线     颜色 红色
//可匹配到html文档中的根元素,即html元素
}

2.子元素选择器

>】带结构性伪类的子元素,可匹配直接包含在其他元素中的单个元素

1)第一个

子元素选择器

ul>li{
color:red;
//子元素选择器:可匹配到父元素ul的每一个li子元素
}

后代元素选择器

ul li:first-child{
color:red;
//带结构性伪类的后代元素选择器:可匹配到元素ul后代中的第一个li子元素
}

元素选择器

li:first-child{
color:red;
//带结构性伪类的元素选择器:可匹配到html中所有元素内部的第一个li子元素
}

无前置选择器

:first-child{
color:red;
//无前置选择器的结构性伪类:可匹配到html文档中的所有元素
//伪类都需要加上前置选择器来限制它的范围,否则将无法做精准匹配
}
ul>li:first-child{
color:red;
//带结构性伪类的子元素选择器:可匹配到父元素ul的第一个li子元素
}

2)最后一个

ul>li:last-child{
color:red;
}
//带结构性伪类的子元素选择器:选择最后一个子元素

3)唯一一个

ul>li:only-child{
color:red;
}
//带结构性伪类的子元素选择器:选择只有唯一子元素的那个子元素
//父元素中有且只有一个子元素,即为独生子元素

4)某一类型

div>p:only-of-type{
color:red;
}
//带结构性伪类的子元素选择器:选择具有特点类型的唯一子元素
//父元素中含有若干子元素,但某一类型的子元素有且只有一个

3.第n个子元素

:nth-chlid(n)】可匹配直接包含在其他元素中的第n个子元素

ul>li:nth-child(2){
color:red;
//带结构性伪类的子元素选择器:选择子元素的第二个元素
}
ul>li:nth-last-child(2){
color:red;
//带结构性伪类的子元素选择器:选择子元素的倒数第二个元素
}
div>p:nth-of-type(2){
color:red;
//带结构性伪类的子元素选择器:选择特定子元素的第二个元素
}
div>p:nth-last-of-type(2){
color:red;
//带结构性伪类的子元素选择器:选择特定子元素的倒数第二个元素
}

六、UI伪类选择器

UI伪类选择器前置冒号,能够根据元素在文档中的状态匹配元素,主要用于匹配input表单控件

选择器名称及说明
:enabledUI选择器(选择启用状态的元素)
:disabledUI选择器(选择禁用状态的元素)
:checkedUI选择器(选择被选中input勾选元素)
:defaultUI选择器(选择默认元素)
:validUI选择器(验证有效选择input元素)
:invalidUI选择器(验证无效选择input元素)
:requiredUI选择器(有required属性选择元素)
:optionalUI选择器(无required属性选择元素)

1.启用状态

:enabled】可根据元素是否处于启用状态来匹配html文档中的元素

:enabled{
border:1px solid red;
}

2.禁用状态

:disabled】可根据元素是否处于禁用状态来匹配html中的元素

:disabled{
border:1px solid red;
//文本框是禁用状态,边框变为红色
}

3.勾选状态

:checked】可根据元素是否处于勾选状态来匹配html中的元素(只用于input单选框和复选框)

:checked{
display:none;//设置为隐藏效果
//UI伪类选择器:可匹配到html文档中处于勾选状态的表单元素
}

4.默认状态

:default】可根据元素是否处于默认值状态来匹配html文档中的元素(常用于从一组类似的元素中选择默认元素)

一组单选或复选框中,设置为checked已勾选状态的input元素即为默认状态

:default{
diaplay:none;//设置为隐藏效果
//UI伪类选择器:可匹配到html文档中处于勾选状态的表单元素
}

5.输入验证合法

:valid】可根据元素输入验证时是否处于合法状态来匹配html文档中的元素

:valid{
border:1px solid green;
//文本框输入合法,边框变为绿色
}

6.输入验证不合法

:invalid】可根据元素输入验证时是否处于不合法状态来匹配html中的元素

:valid{
border:1px solid blue;
//邮箱框输入不合法,边框仍为蓝色
}

7.必填状态

:required】可根据元素输入验证时是否处于必填状态来匹配html中的元素

:required{
border:1px solid red;
}

8.非必填状态

:optional】可根据元素输入验证时是否处于非必填状态来匹配html中的元素

:otional{
border:1px solid red;
}

七、动态伪类选择器

选择器名称及说明
:link动态选择器(未访问的超链接元素)
:visited动态选择器(已访问的超链接元素)
:hover动态选择器(悬停在超链接上的元素)
:active动态选择器(激活超链接上的元素)
:foucs动态选择器(获取焦点的元素)

1.鼠标未点击

:link】对鼠标未点击访问过的超链接设置样式

a:link{
color:redl
}

2.鼠标已点击

:visited】对鼠标已点击访问过的超链接设置样式

a:visited{
color:orange;
}

3.鼠标悬停

:hover】可对鼠标悬停在超链接上设置样式

a:hover{
color:blue;
}

4.鼠标按住

:active】可对鼠标按在超链接上不放时设置样式

a:active{
color:blue;
}

5.鼠标获取焦点

:focus】可对鼠标获取焦点时进行样式设置

a:focus{
border:1px solid red;
}

八、其它伪类选择器

选择器名称及说明
:not其它选择器(否定选择的元素)
:empty其它选择器(选择没有任何内容的元素)
:lang其它选择器(选取包含lang属性的元素)
:target其它选择器(选取URL片段标识指向元素)

1.not选择器

:not()】也称否定选择器或反选择器,能够匹配与括号中所写情况正好相反的元素

a:not([href*="baidu"]){
color:red;
}

2.empty选择器

:empty】也称空内容选择器,能够匹配没有添加任何内容的元素

:empty{
display:none;
//空内容不等同于空元素
//本身不能添加任何内容的元素被称为“空元素”
//空元素:<br> <hr> <input> <img> <link> <meta>
}

九、CSS颜色与度量单位

1.CSS颜色

英文颜色值(含义)十六进制颜色值(十进制颜色值)
black(黑色)#000000(0,0,0)
silver (银灰色)#c0c0c0(192,192,192)
gray(灰色)#808080(128,128,128)
white(白色)#ffffff(255,255,255)
maroon(栗色)#800000(128,0,0)
red(红色)#ff0000(255,0,0)
purple(紫色)#800080(128,0,128)
fuchsia(紫红)#ff00ff(255,0,255)
green(绿色)#008000(0,128,0)
lime(闪光绿)#00ff00(0,255,0)
olive(橄榄色)#808000(128,128,0)
yellow(黄色)#ffff00(255,255,0)
navy(海军蓝)#000080(0,0,128)
blue(蓝色)#0000ff(0,0,255)
teal(水鸭色)#008080(0,128,128)
aqua(浅绿色)#00ffff(0,255,255)

十六进制颜色值可以进行缩写
#ff0000-------->#f00

2.十进制颜色值方案

十进制表示方法比较多样化,主要RGB模型和HSL模型

函数说明及示例
rgb(r,g,b)用rgb(红、绿、蓝)模型表示颜色 rgb(0,128,128)
rgba(r,g,b,a)用rgb(红、绿、蓝、透明度)模型表示颜色 rgb(0,128,128,0.5)
hsl(h,s,l)用HSL(色相、饱和度、亮度)模型表示颜色 hsl(120,100%,30%)
hsla(h,s,l,a)用HSL(色相、饱和度、亮度、透明度)模型表示颜色 hsla(120,100%,30%,0.5)

a表示透明度在0~1之间

1)rgb(红+绿+蓝)

//css1
@charset "utf-8";
p{
color:rgb(255,0,0)
//红色
}

//css2
@charset "utf-8";
b{
color:rgba(255,0,0,0.5)
//红色,透明度为50%
}

2)hsl(色相+饱和度+透明度)

//css1
@charset "utf-8";
p{
color:hsl(120,100%,30%)
//绿色
}

//css2
@charset "utf-8";
b{
color:hsla(120,100%,30%,0.5)
//绿色且透明度为20%
}

3.度量单位

1)绝对长度单位

现实世界的度量单位,CSS支持五种绝对长度单位

单位标识符说明
in英寸
cm厘米
mm毫米
pt
pc秒差距

2)相对长度单位

依托其它类型的单位,CSS支持五种相对长度单位

单位标识符说明
em与元素字号挂钩(根据字号来改变大小)
ex与元素字体的“x高度”挂钩
rem与根元素的字号挂钩
px像素,与分辨率挂钩
%百分比,相对于另一值的百分比

十、CSS文本样式1

font-size        设置字体的大小  
xx-small:设置最小号字体
x-small:设置更小号字体
small:设置小号字体
medium:设置中等字体
large:设置大号字体
x-large:设置更大号字体
xx-large:设置最小号字体
font-variant     设置英文字体是否转换为小型大写
normal:所有小型大写字母全部恢复成与汉字等高的大型小写字母
small-caps:所有的大型小写字母全部转换成比汉字略矮一点的小型大写字母

font-style       设置字体是否倾斜
italic:表示(使用语言包中)斜体字
oblique:表示让文字倾斜(在语言包中没有斜体字时使用)
normal:默认值,表示让倾斜状态恢复到正常状态

font-weight      设置字体是否加粗
bold:粗体
bolder:更粗的字体(在浏览器上无表现)
lighter:更细的字体
normal:默认值,让加粗的字体到正常
100~900:600及之后为加粗

font-family      设置font字体
font             设置字体样式复合写法
[是否倾斜  是否加粗  是否转大型小写  字体大小  字体名称]

@font-face       设置web字体
属性值说明
数字+px使用像素单位精确设置固定字体大小
small,large非精确设置更小或更大
数字+%使用百分比单位精确设置字体相对于父元素字体的百分比大小
smaller,larger非精确设置字体相对于父元素字体的更小或更大值

十一、CSS文本样式2

text-decoration   装饰文本出现各种划线
underline:让文本的底部出现一条下划线
overline:让文本的顶部出现一条上划线
line-through:让文本的中部出现一条删除划线
blink:让文本进行闪烁(基本都不支持)
none:让本身具有划线装饰的文本取消

text-transform    将英文文本转换大小写
capitalize:将英文单词首字母大写
uppercase:将英文转换为大写字母
lowercase:将英文转换为小写字母
none:将已被转换大写或小写的值恢复到最初的状态

text-shadow       给文本添加阴影
[水平偏移  垂直偏移  模糊度  阴影颜色]

text-align        设置文本对齐方式
left:设置文本水平左对齐
right:设置文本右对齐
center:设置文本居中对齐
justify:设置文本两端对齐

white-space       设置文本中空白格的处理方式
normal:空白符被压缩为1个,文本排满时只能做自动换行(默认)
nowrap:空白符被压缩为1个,文本不能做任何换行
pre:空白符被全部保留,文本只能强制换行

letter-spacing    设置文本中字符的间距(每个字母之间的距离)
word-spacing      设置文本中英文单词的间距(每个单词之间距离)
line-height       设置文本中段落间距(行高)
word-wrap         控制段词
normal:不断开过长的英文单词(默认值)
break-word:断开单词

text-indent       设置文本中段落首行缩进

十二、CSS+Div布局

在CSS样式中,将盒子模型的内边距、边框和外边距,按top、bottom、left、right的四个方向,分别进行定义和设置,描述盒子的属性
box盒子
content(内容)、padding(内边距或填充)
border(边框)、margin(外边距)

1.position属性

为什么要提出position指定元素的定位类型?
作用就是决定元素在文档中的定位方式,虽然元素可以使用top、bottom、left、right定位,但是这些属性无法工作

1) static静态定位(默认值)

即没有定位,遵循正常的文档流现象,不会受到top、bottom、left、right的影响
static

2) relative相对定位

没有脱离文档流,相对于自身在常规流的位置进行偏移定位
在这里插入图片描述

3) absolute绝对定位

脱离文档流,相对于离自身最近的定位祖先元素的位置进行偏移定位
在这里插入图片描述

4)fixed固定定位(窗口)

脱离文档流,相对于浏览器窗口进行偏移定位,即使窗口是滚动的它也不会移动,像一个不能移动的悬浮窗

5) sticky粘性定位

  1. 当top、bottom、left、right都不设置具体值,sticky不会生效,其效果与static一致
  2. 当top、bottom、left、right至少设置一个具体值时,元素具备两种状态(相对定位、固定定位)

以top:100px为例:当元素相对于窗口顶部大于100px,元素处于类似relative相对定位状态;
一旦元素相对于窗口顶部的距离小于或等于100px,元素立马切换到类似fixed固定定位状态

2.float属性

  • float:left;
    控制网页元素向左浮动
  • float:right;
    控制网页元素向右浮动
  • float:none;
    没有浮动
  • clear:left;
    清除向左浮动
  • clear:right;
    清除向右浮动
  • clear:none;
    没有清除

总结

欲穷千里目,更上一层楼,小伙伴们通过本章的学习是否更了解CSS了呢>-<求点赞,求分享,求关注,嘿嘿

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端进击者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值