CSS-知识点

CSS负责页面样式。

选择器

选择器写法

选择器{

        属性:属性值;

        属性:属性值; 

}

选择器属性

属性解释
width
height
background-color背景颜色
font-size文字大小
text-align内容水平对齐方式
text-indent首行缩进
color文字颜色

基础选择器

css样式的引入

内部样式表(不推荐使用):

将style标签写到html的head标签中叫做内嵌式写法

内联样式表:

直接将css样式写到标签中

外部样式表(最常用):

通过link标签引入css文件(后缀:.css)

<link rel="stylesheet" href="css文件地址">

基础选择器类型

基础选择器分类

1. id选择器           对应#

2. class 类选择器 对应 .

3.标签选择器        对应的就是标签

基础选择器介绍

(1)标签选择器

页面所有标签都会执行css的样式

(2)类选择器

class="类选择器名称"

谁调用谁生效,多个标签可以调用同一个类选择器。一个标签可以使用多个class选择器,但是一个标签中只能有一个class。使用多个class选择器时,中间使用空格隔开

class选择器命名规范:

class选择器可以使用字母、下划线、横线开头,不能使用数字、特殊符号开头,

不推荐使用css定义过的关键字进行命名

可以使用汉字命名(但是不推荐使用)

(3)id选择器

具有唯一性,id具有唯一值,一个标签不能调用多个id,一个id只能被一个标签使用,一般配合JS使用

(4)通配符选择器

*{属性:属性值}

一般用于页面初始化

复合选择器

概念:两个或两个以上的基础选择器通过不同的方式进行连接

交集选择器

标签名+class选择器(或者标签+id选择器)

标签中有联合的这个class类或者id才会执行

例:p.text(p标签里面需要有class类名为text的class类才会执行)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p.text{
            color: pink;
        }
    </style>
</head>
<body>
    <!-- 会执行 -->
    <p class="text">段落标签</p>
    <!-- 不会执行 -->
    <p>段落标签</p>
</body>
</html>

后代选择器

写法与交集选择器不同点在于标签名后面需要加上一个空格,表示这个标签的子标签中有这个类名才会执行。文本属性会继承父级

例:p .text(p标签的子标签里面有class类名为text的class类才会执行)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p .text{
            color: pink;
        }
    </style>
</head>
<body>
    <!-- 不会执行 -->
    <p class="text">段落标签</p>
    <!-- 会执行 -->
    <p>
        <span class="text">span标签</span>
    </p>
</body>
</html>

子代选择器(亲儿子选择器)

只对子标签生效

标签名1>标签名2(标签2是标签1的子标签)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p>span{
            color: pink;
        }
    </style>
</head>
<body>
    <p>
        <!-- 会执行 -->
        <span>span标签</span>
        <!-- 不会执行 -->
        <p>段落标签</p>
    </p>
</body>
</html>

并集选择器

多个标签同时使用同一种样式,可以使用并集选择器,标签名之间使用逗号隔开

例:p,span,.text{ }    (p标签,span标签和包含class名为text的class类)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p,span,.text{
            color: pink;
        }
    </style>
</head>
<body>
    <!-- 会执行 -->
    <p>段落标签</p>
    <!-- 会执行 -->
    <span>span标签</span>
    <!-- 会执行 -->
    <div class="text">盒子</div>
    <!-- 不会执行 -->
    <h1>一级标题</h1>
</body>
</html>

属性选择器

input标签常用

例:input[type=text]  input[type=password]

例:标签名[class]{ }   只要p标签中有class类的都会执行

标签名[class=*aa]{ }   只要p标签中class命名中包含aa的都会执行

标签名[class^=aa]{ }   表示p标签中class类名中以aa开头的都会执行

标签名[class$=aa]{ }   表示p标签中class类名中以aa结尾的都会执行

伪类选择器

一般针对a标签

a:link{ } 链接默认状态(现在没用了)

a:visited{ } 表示链接访问之后的状态(基本不用) 表示浏览器访问过该链接

a:active{ }  链接点击瞬间的状态

a:hover{ }  鼠标移入之后显示的状态

hover可以使用到任意标签中(常用)

a:focus{ }  获取焦点之后的状态

文本元素

文本元素属性

(1)改变文字大小:font-size

(2)文字粗细:font-weight

100-300一类(lighter)400-500一类(normol)   600-900一类(bold/bolder)

(3)字体样式:font-style 

italic  字体倾斜

(4)文本修饰:text-decoration 

line-throuht  删除线

underline  下划线

none  没有

取消a标签默认下划线(常用):

 a { text-decoration: none; }

(5)文本居中

水平居中:text-align:center  

垂直居中:line-height:具体高度

使文本内容在多少高度内居中(设置文本元素在多少像素内居中)

(6)选择字体:font-family

属性解释
font-size文字大小
font-weight文字粗细
font-style字体样式
text-decoration文本修饰
line-height行高/垂直居中
text-align文本水平位置
font-family字体

元素及其转换

元素类型

(1)块级元素

独占一行、可以设置宽高

例:div标签 p标签 h标签 li标签

(2)行内元素

不独占一行、不可以设置宽高

例:span标签 a标签 i标签 s标签 u标签 b标签

(3)行内块级元素

不独占一行、可以设置宽高

例:img标签 input标签

转换元素属性

display: inline;

inline行内元素 block块级元素 inline-block行内块级元素 none隐藏

css三大特性

css三大特性分别为:层叠性、继承性和优先级

(1)层叠性

执行的顺序和调用class样式没有关系,取决于css样式表的书写顺序,执行写在后面的(因为代码从上往下识别,下面的会把上面的覆盖)

(2)继承性

发生前提是嵌套

文字颜色、文字大小、字体、字体粗细、文字风格、行高可以继承

特殊情况:

h系列标签不能继承文字大小

a标签不能继承文字颜色

(3)优先级

范围越小,优先级越高

优先级由低到高:

默认样式>标签选择器>类选择器(class)>id选择器>行内样式(内联样式)> !important

背景

背景属性

(1)背景颜色

background-color

(2)背景图片

background-image:url('图片相对路径')

(3)背景图片平铺

background-repeat

repeat平铺 no-repeat不平铺 repeat-x横向平铺 repeat-y纵向平铺

(4)背景定位属性

background-position:参数1 参数2

left right top bottom

背景定位属性有两个值:第一个值是水平方向,第二个值是垂直方向,如果只设置一个值,另外一个默认是center

定位属性可以设置预定值,还可以设置像素,第一个表示距离左边,第二个值表示距离上边

(5)背景滚动

background-attachment:scroll(滚动)或者fixed(固定)

(6)背景属性连写方式

background:url('图片相对路径') no-repeat 定位参数1 定位参数2

连写属性中属性值顺序不做要求,每个属性之间用空格隔开

(7)背景大小

background-size:参数1 参数2;

参数1代表宽,参数2代表高,可以使用百分比也可以使用像素(背景图片的等比例放大缩小)

属性解释
background-color背景颜色
background-image背景图片
background-position背景定位
background-repeat背景平铺
background-attachment背景是否滚动(scroll或fixed)
background-size背景大小

改变层级关系

z-index(图片叠加时使用)

谁大谁在上面,默认值为0

盒子模型

行高

浏览器默认16px

行高=文字高度+上下边距

行高单位:

(a)像素 px (常用)

(b)相对长度单位em

(c)百分比%

(d)不带单位

除了像素(px)外,行高都是与文字大小的乘积

行高单位文字大小行高(转换为px)
20px20px20px
2em20px40px
200%20px40px
220px40px

em和%的行高是和父元素文字大小相乘,不带单位时是与子元素文字大小相乘

em特点:em是以字为单位,1em占一个字符的宽度,大小随字符字号改变而改变,继承父级元素字体大小

边框

(1)边框样式

border-style

实线solid 虚线dashed 点线dotted

(2)边框粗细

border-width

(3)边框颜色

border-color

(4)连写形式

例:border:1px solid red;

可以省略颜色和大小,默认黑色和1px,但是样式必须写,不能省略,书写顺序不做要求,边框尺寸会影响盒子大小,边框设置了上下左右都会改变如果只想改变某一条边,将border改为border-top形式(top上 bottom下 left左 right右)

内外边距

内边距 padding

盒子以内的距离,称为内边距,内边距也会改变盒子的大小

一般情况:盒子尺寸=width+padding*2+border*2

例:padding:20px

如果设置一个值,表示上下左右

如果设置两个值,表示上下、左右

如果设置三个值,表示上、左右、下

如果设置四个值,表示上、右、下、左(顺时针)

如果只想设置一条边,padding-top形式(top、left、bottom、right)

外边距 margin

盒子以外的距离,称为外边距

设置值的情况与内边距padding一样

margin: 0 auto; 表示上下没边距,左右自动,就是盒子居中

overflow

(1)默认值 内容不会被修剪 超出的内容会呈现在元素框之外

overflow:visible;

(2)内容会被修剪 超出部分会隐藏

overflow:hidden;

(3)内容会被修剪 超出部分会隐藏 但是浏览器会显示滚动条用于查看被隐藏的内容

overflow:scroll;

overflow-x:scroll;
overflow-y:scroll;

横向滚动条 overflow-x:scroll;
纵向滚动条 overflow-y:scroll;

(4)浏览器自动显示滚动条

overflow:auto;


定位

CSS布局的手段之一

文档流<浮动流<定位流

(1)静态定位

position:static;

静态定位,相当于回归文档流,一般不用

(2)绝对定位

position:absolute;

特点:

元素使用绝对定位后不占据原来的位置(脱标)

元素使用绝对定位,位置基于浏览器出发

嵌套的盒子,父盒子没有使用定位,子盒子绝对定位,子盒子位置是从浏览器出发

嵌套的盒子,父盒子使用定位,子盒子绝对定位,子盒子位置是从父元素 位置出发

给行内元素使用绝对定位后,转换为行内块 (不推荐使用,推荐使用display:inline-block;)

注意点:

使用定位必须要给定位的位置 left、right、top、bottom

通常不单独使用,配合相对定位使用

使用绝对定位,坐标原点取决于妒父级是否使用相对定位,如果没有会一级一级往上那个找,如果都没有最后会找到body

(3)相对定位

position:relative;

特点:

使用相对定位,位置从自身出发

同样也有left/right top/bottom属性

还占据原来位置

子绝父相:子元素绝对定位,父元素相对定位

行内元素使用相对定位不能转行内块元素

给父级一个相对定位,子元素一个绝对定位,那么子元素设置的left/right top/bottom属性就由相对浏览器变为相对父级

(4)固定定位

position:fixed;

特点:

元素使用绝对定位后不占据原来的位置(脱标)

元素使用固定定位后,位置基于浏览器出发

元素使用固定定位后,会转换为行内块 (不推荐使用,推荐使用display:inline-block;)

(5)粘性定位

position:sticky;

相当于是相对定位和固定定位的结合体

特点:

默认行为:元素在文档流中占据原本的位置,类似于相对定位

触发粘滞:当滚动到粘性定位中设定的值时(如 top: 10px)元素变为固定定位,直到滚动到父级边界时恢复原状

核心属性:必须搭配 top、bottom、left、right中一个或者多个使用,来定义触发粘滞的阈值

粘性定位生效需要满足的条件:

(1)父级的宽高必须大于粘滞元素的宽高(否则没有滚动空间,粘滞效果无法触发)

(2)粘滞元素只能在其父级内固定(当父级完全滚出视口时,元素会跟随父级消失)

CSS补充

定位的盒子

定位的盒子居中:利用定位先向右走50%,然后再向左走盒子的一半(margin-left)

标签包含规范

div可以包含任何标签

p标签不能包含div、h系列列表

行内元素不要包含块元素

规避脱标流

(1)优先考虑标准流

(2)标准流解决不了使用浮动流

(3)浮动解决不了再使用定位流

图片和文字垂直方向的对齐方式

如果不设置,默认属性式

vertical-align:baseline;

vertical-align的垂直状态(top、bottom、center)

CSS可见性

overflow:hidden;               溢出隐藏

visibility:hidden;                隐藏元素、隐藏后元素占据原来的位置

display:none;                    隐藏元素,隐藏后元素不占据原来的位置

display:block;                    元素可见

display:none; 与display:block;配合js使用

 页面初始化

(1)a标签去除下划线

a {

    text-decoration:none;

}

(2)ul标签去除小圆点

ul {

    list-style:none;

}

(3)页面去除初始边距(8px)

* {

    padding:0;

    margin:0;

}   

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        a{
            text-decoration: none;
        }
        ul{
            list-style: none;
        }
    </style>
</head>
<body>
    
</body>
</html>

CSS初始化

因为浏览器兼容问题,不同浏览器对标签的默认值可能不同,为了防止浏览器之间的页面差异,就需要进行CSS初始化,可以选择引用淘宝、腾讯、新浪的CSS初始化代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值