css常用基础样式复习

322 阅读8分钟

css复习

啥是css

CSS 指层叠样式表 (Cascading Style Sheets),就是对html样式的添加,就是让页面骚起来,这也不是编程语言,什么是样式呢,简单讲就是你的眼睛是元素,那你的眼睛很大,很大就是样式。

引入样式

行内样式

<h1 style="color:red;">天行健,君子以自强不息</h1>

内嵌样式

<!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>Document</title>
    <style>
        h1{
            color: red;
        }
    </style>
</head>
<body>
    <h1 >天行健,君子以自强不息</h1>
</body>
</html>

外部样式

链接样式(写css用这种最好,原因自己查)

<!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>Document</title>
    <link rel="stylesheet" href="style.css"> 
    <!-- 这种方式引入,rel表示文档和链接的关系,href表示文件的位置 -->
    </style>
</head>
<body>
    <h1 >天行健,君子以自强不息</h1>
</body>
</html>

在style.css文件中写

h1{
    color: red;
}

导入样式

<!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>Document</title>
    <style>
		@import url(style.css)
    </style>
</head>
<body>
    <h1 >天行健,君子以自强不息</h1>
</body>
</html>

在style.css文件中写

h1{
    color: red;
}

1.png

选择器

啥是选择器,看看css的组成

2.png

在{}里面的我们叫做声明。选择器的作用就是用来表示这个声明是哪个html标签的

通配符选择器

    <h1 >天行健,君子以自强不息</h1>
    <h2>地势坤,君子以厚德载物</h2>
    <div>随风巽,君子以申命行事</div>
    <span>渐雷震,君子以恐惧修省</span>
*{
    color: red;
}
/* 选择全部 */

3.png

标签选择器

    <h1 >天行健,君子以自强不息</h1>
    <h2>地势坤,君子以厚德载物</h2>
    <div>随风巽,君子以申命行事</div>
    <span>渐雷震,君子以恐惧修省</span>
h1{
    color: red;
}

h2{
    color: green
}

div{
    color: blue;
}
/* 选择对应的标签 */

4.png

类名选择器

    <h1 class="a">天行健,君子以自强不息</h1>
    <h2 class="b d">地势坤,君子以厚德载物</h2>
    <div class="c">随风巽,君子以申命行事</div>
    <span>渐雷震,君子以恐惧修省</span>
.a{
    color: red;
}

.b{
    color: green
}

.c{
    color: blue;
}
.d{
    background-color: black;
}
/* 选择对应的class类名,前面加点,一个标签可以有多个类名 */

5.png

id选择器

    <h1 id="a">天行健,君子以自强不息</h1>
    <h2 id="b">地势坤,君子以厚德载物</h2>
    <div id="c">随风巽,君子以申命行事</div>
    <span>渐雷震,君子以恐惧修省</span>
#a{
    color: red;
}

#b{
    color: green
}

#c{
    color: blue;
}

/* 选择对应的id名,前面加#,一个标签只能有一个id */

6.png

属性选择器

    <h1 name="a">天行健,君子以自强不息</h1>
    <h2 name="b">地势坤,君子以厚德载物</h2>
    <div id="c">随风巽,君子以申命行事</div>
    <span>渐雷震,君子以恐惧修省</span>
h1[name]{
    color: red;
}
h2[name='b']{
    color: green;
}
/* 
[name^='xxx']开头包括xxx
[name$='xxx']结尾包括xxx
[name*='xxx']含有包括xxx
[name~='xxx']连起来含有包括xxx */

/* 选择对应的属性名,[属性名] */

7.png

伪类选择器

<a href="#">天行健,君子以自强不息</a>
a:link{
    color: red;
    /* 未点击的样子 */
}
a:visited{
    color: green;
    /* 点击结束的样子 */
}
a:hover{
    color: yellow;
    /* 鼠标经过的样子 */
}
a:active{
    color: grey;
    /* 点击时的样子 */
}

这个样子就自己看看了,伪类就是后面再加上:条件,还有很多伪类选择器,自己查看吧

伪元素选择器

 <div>天行健,君子以自强不息</div>
div::before{
    /*就相当于在元素的前面添加了一个元素*/
    content:"前面";
    color:red;
}
div::after{
    /*就相当于在元素的后面添加了一个元素*/
    content:"后面";
    color:green;
}

8.png

选择器分组

    <h1 >天行健,君子以自强不息</h1>
    <h2>地势坤,君子以厚德载物</h2>
    <div>随风巽,君子以申命行事</div>
    <span>渐雷震,君子以恐惧修省</span>
h1,h2,div{
    color:red;
}
/*一次选取好几个元素,设置同样的样式*/

9.png

子代选择器

首先我们要知道什么是子代

  <div class="header">
        <h1>男人可以不帅,但一定要骚</h1>
       <p>来啊,快活啊,反正有大把时光</p>
    </div>
    <!-- div包裹住了h1和p,此时,h1和p就是div的子代,div就是h1的父代 -->

然后加入css样式

.header>h1{
    color: red;
}
/*用>指向自己的子代*/

1617760874242.png

后代选择器

这里要知道什么是后代

    <div class="header">
        <h1>男人可以不帅,但一定要骚</h1>
        <p>来啊,快活啊,反正有大把时光</p>
        <dl>
            <dt>如何变帅</dt>
            <dd>开车要快,姿势要帅</dd>
            <dd>天上天下,唯我独尊</dd>
        </dl>
    </div>
  <!-- 这样dl属于div的子代,但dt和dd不属于,而dl,dt,dd,都是div的后代 -->
.header dd{
    color: greenyellow;
}

10.png

相邻兄弟选择器

    <div class="header">
        <h1>男人可以不帅,但一定要骚</h1>
        <p>来啊,快活啊,反正有大把时光</p>
        <dl>
            <dt>如何变帅</dt>
            <dd class="first">开车要快,姿势要帅</dd>
            <dd>天上天下,唯我独尊</dd>
        </dl>
    </div>
  <!-- 这里两个dd就是兄弟相邻元素 -->
.first+dd{
    color: red;
}
/*这个元素相邻的下一个元素*/

11.png

权重和继承

继承

元素的文本字体是否可见等,父级设置后,子代也会继承

    <div class="header">
        <h1>男人可以不帅,但一定要骚</h1>
        <p>来啊,快活啊,反正有大把时光</p>
        <dl>
            <dt>如何变帅</dt>
            <dd class="first">开车要快,姿势要帅</dd>
            <dd>天上天下,唯我独尊</dd>
        </dl>
    </div>
.header{
    color: red;
}

12.png

权重

当两个样式冲突时,就只能选择其中一种作为样式,判断的依据就是权重

引入样式:行内>内嵌>外部

引入样式相同时:!important>id>claa>标签>*>继承

当好几个选择器一起时,比如加了子代什么的自己查

当所有都相同时:后面的比前面的高

一般越具体权重越高

文本样式

有关文本样式

font-family:字体,

font-weight:粗细 normal / bold / bolder / lighter

font-size:大小

大小的单位:px,表示几像素,em,相对于父元素字体的大小,百分比,相对于父元素的大小

color:颜色

颜色的表现方式#xxx,#xxxxxx,颜色单词,rbg(0,0,0),rgba(0,0,0,透明度0~1)

line-height:行高

font-style:字体样式 normal / italic

font-variant:小体大写 normal / small-caps

简写 font: font-family,font-style,font-variant,font-weight,font-size

1、简写时,font-size和line-height只能通过斜杠/组成一个值,不能分开写。

2、顺序不能改变.这种简写方法只有在同时指定font-size和font-family属性时才起作用。而且,如果你没有设定font-weight, font-style, 以及 font-varient ,他们会使用默认值

text-decoration:线条,下划线,删除线什么的 none / underline / overline / line-through

text-shadow:文字阴影 颜色 ,右偏,下偏,模糊程度

white-space:保存空格,换行 normal / pre / nowrap

text-indent:首行缩进

text-align:水平对齐 left / right / center

vertical-align:基线对齐 middle

单行文本省略

  <div class="header">
    天不生我程序员,键道万古如长夜,键来!仙之巅,傲世间!有我键盘就有天!大河之键天上来!一键横天镇世间!破红尘!杀尽仙!一键在手,斩九天!倘若世间无真仙?我愿持键化为仙!!!
  </div>
.header{
   width: 200px;
   overflow: hidden;
   text-overflow:ellipsis;
   white-space: nowrap;
}

13.png

盒模型

展现一下div的强大,一个div由content(内容)+padding(内边距)+border(边)+margin(外边距)

普通盒子和ie盒子有一些区别,我只讲普通盒子

14.jpg

conten的属性

width:宽度

height:高度

padding的属性

padding-bottom:下内边距

padding-left:左内边距

padding-right:右内边距

padding-top:上内边距

padding:内边距简写,有四种写法

  • 一个数据:四边
  • 两个数据:上下 左右
  • 三个数据: 上 左右 下
  • 四个数据:上 右 下 左

box-sizing:border-box 由于内边距会自动顶开content的大小,设置后就不会影响conten的大小

border的属性

border-style:边框样式

border-top:上边框 边框样式 宽度 颜色

。。。。下左右不写了。。。。。

border:简写,直接四条边 边框样式 宽度 颜色

border-radius:圆角

border-top-left-radius:左上角圆角

。。。其他三个角不写了。。。。

margin的属性

margin-top:上外边距

。。。。下左右不写了。。。。。

margin:外边距 ,格式和内边距一样

小心外边距塌陷

块级元素,行内元素和行内块元素

行内元素:  

  • 与其他行内元素并排
  • 不能设置宽高,默认的宽度就是文字的宽度

块级元素:

  • 霸占一行,不能与其他任何元素并列。
  • 能接受宽高,如果不设置宽度,那么宽度将默认变为父级的100%。

行内块元素

  • 又能并排又能设置宽高

但是这三种格式是可以转换的

display: block(块级)/inline(行级)/inline-block(行内块)

显示和隐藏

display为none时,元素消失,啥都没有

visiblity:显示隐藏 hidden元素还在,但看不到了

opacity:透明的0~1

overflow:超出部分隐藏 scroll(隐藏的部分可以滚动查看)/auto(看是否超出,超出滚动查看)/hidden(超出不可看)

盒子阴影

box-shadow:盒子阴影 右偏 下偏 模糊度 颜色

鼠标

鼠标在不同的元素上可以有不同的样子

cursor:鼠标样式

15.png

背景

background-color:背景颜色

background-image:背景图片 url(图片地址)

background-repeat:图片重复排列

background-attachment:背景固定,不随滚动

background-position:背景图片的位置

background-size:背景图片尺寸大小

简写background: [background-color] [background-image] [background-repeat] [background-attachment] [background-position]

background:liner-gradient(角度,颜色 多少开始渐变百分比,颜色,颜色) 线性渐变效果

background:radial-gradient(大小/位置,颜色 多少开始渐变百分比,颜色,颜色) 镜像渐变效果

浮动

浮动的目的就是让独占一行的元素并排,整理浮动之前我还是想说一句,我目前的感觉浮动很垃圾,上有行内块,下有flex,都比浮动要香

float:浮动 left/right

浮动后会脱离标准流,飘到父元素的最上面并排且不占位置,父元素无法感知高度

所以用完浮动我们还要清除浮动

清除浮动

clear: 清除浮动 left/right/both

或者利用BFC

定位

有时候你想在原来的元素上加一些其他元素,但位置难以控制时就需要定位了

postion:定位

left:里左边距离

其他三边省略。。。。。

relative:相对定位,相对于原来的位置改变,原来位置还在

absolute:绝对定位,相对于第一个相对定位的位置发生改变,没用就相对于根元素改变,原来位置不在

fixed:固定定位, 相对于可视窗口改变位置,就是滚动条怎么动,位置都不变

sticky:粘性定位,开始一起滚动后面相对于可视窗口改变位置位置不变