css(超详细知识点)

CSS:层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。同时也能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

以上都是官方语句,通俗来讲css是html的拓展,是网页的进一步美化

本篇文章侧重于对css相关知识点的串讲以及和html的对比,我们上次已经讨论过html的用法,对这方面不了解的话,指路文章html详解

目录

1.初识css

2.基础选择器

3.画盒子——背景图

4.字体修饰

 5.复合选择器

1.后代选择器——选中所有后代元素

2.子代选择器——选中子代元素

4.交集选择器——同时满足多个条件的元素

5.伪类选择器——选中元素的某个状态设置样式

6.css特性

1.继承性:子级继承父级文字控制属性

2.层叠性:相同的属性后面覆盖前面,不同的属性叠加

3.优先级:选择器优先级高的样式生效

7.Emmet写法

8.背景属性

1.拆分写法

2.复合写法

9.显示模式

1.类型

2.转换显示模式

10.结构伪类选择器——根据元素结构关系查找元素

11.伪元素选择器——创造虚拟元素

12.盒子模型

13.标准流:默认排列规则

14.浮动(了解)——块级水平排列

15.Fex——弹性布局

16.定位——灵活改变盒子在网页的位置

17.css精灵(拓展)


1.初识css

(1)内部样式:在html当中,我们最常编辑的区域是<body></body>,而在css中我们将涉及到<style>css代码</style>(在title标签下面),如下所示为使用css的基本骨架

<!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>
        /* 选择器{属性:属性值} */
    </style>
</head>
<body>
    
</body>
</html>

(2)外部样式:在css文件当中存放css代码,在html中用link引入,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="#">
    <!-- herf中为css文件地址 -->
</head>
<body>
    
</body>
</html>

之后的讲解更侧重与内部样式,外部样式了解即可。

2.基础选择器

上面的代码中有提到选择器书写的位置,接下来介绍有哪些选择器

  • 标签选择器——选中同标签设置相同样式
  • 类选择器——类名;标签中加class=“类名”
  • id选择器——#id;标签中加id=“id”
  • 通配符选择器——默认样式

其中类和id选择器可以差异化设置标签样式

<!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{
            color: azure;
        }
        .one{
            color: blue;
        }
        #id{
            color: brown;
        }
        /* *{
            color: red;
        } */
    </style>
</head>
<body>
    <p>标签选择器</p>
    <div class="one">类选择器</div>
    <div id="two">id选择器</div>
</body>
</html>

有以下情况出现

如果只添加通配符选择器,也就是上述代码注释取消,将剩余css代码注释掉会有这样的情况

3.画盒子——背景图

div{
    height: 10px;
    /* 盒子高度 */
    width: 50px;
    /* 盒子宽度 */
    background-color:red;
    /* 背景色 */
}

4.字体修饰

        div{
            height: 10px; 
            width: 50px;
            background-color:red;

            /* 字体大小 */
            font-size: 50px;

            /* 字体粗细(粗:700;细:400):400-700 */
            font-weight: 600;

            /* 是否倾斜(normal:正常;italic:倾斜) */
            font-style: italic;

            /* 文本对齐(center:居中;right:右对齐),默认左对齐 */
            text-align: center;

            /* 颜色色值(rgb法,rgba法,十六进制法,r:red,g:green;b:blue;a:透明度) */
            color: #DDAABB;
            /* color: rgb(40,21,46); */
            /* color: rgba(45, 21, 41, 12); */

            /* 行高(数+px;数——size的倍数),垂直居中行高等于height值 */
            line-height: 2;

            /* 文字族——设置字体,浏览器依照顺序和自身能够使用字体进行字体选择 */
            font-family: 'Courier New', Courier, monospace;

            /* font属性——设置公共样式:倾斜,加粗,大小:30px,行高2倍,字体样式 */
            /* font: italic 400 30px/2; */

            /* 文本缩进(数+px;数+em) */
            text-indent: 20px;

            /* 图片居中(图片在div标签下)同文字居中 */

            /* 文本修饰线 none:无;line-through:删除线;underline:下划线;overline:上划线*/
            text-decoration: line-through;
        }

 5.复合选择器

定义:有两个或多个基础选择器,通过不同方式组合(准确高效的选择)

1.后代选择器——选中所有后代元素

父选择器 子选择器{css属性}

2.子代选择器——选中子代元素

父选择器>子选择器{css属性}

3.并集选择器——选中多组相同设置样式的标签

选择器1,选择器2···选择器n{css属性}

4.交集选择器——同时满足多个条件的元素

选择器1选择器2{css属性}

ps:交集选择器中有标签选择器,标签选择器必须写在最前面

5.伪类选择器——选中元素的某个状态设置样式

鼠标悬停状态:选择器:hover{css属性}

ps:存在多个选择器时,选择其一即可。

拓展:

选择器作用
:link访问前
:visited访问后
:active点击时(激活)

6.css特性

1.继承性:子级继承父级文字控制属性

ps:子级拥有自己的样式则不会继承父级。

2.层叠性:相同的属性后面覆盖前面,不同的属性叠加
3.优先级:选择器优先级高的样式生效

公式:通配符<标签<类<id<行内样式<!important(选中范围越大,优先级越低)

叠加计算规则:存在复合选择器时,从左向右依次比较个数,同一级个数多的优先级高,如果个数相同,则向后比较;!important权重最高;继承权重最低。

7.Emmet写法

  • html

  • css:大多数简写方式为属性的首字母

8.背景属性

1.拆分写法
  1. 背景图——background-image(bgi):url(路径)
  2. 背景图平铺方式——background-repeat(bgr):属性值
属性值效果
no-repeat不平铺
repeat平铺(默认)
repeatx水平平铺
repeaty竖直平铺

      3.背景图位置——background-position(bgp):属性值

  • 关键字
关键字位置
left左侧
right右侧
center居中
top顶部
bottom底部

  • 坐标(数字+px,正负都可)

水平:正数向右,负数向左

垂直:正数向下,负数向上

关键字或数字可以只写一个,另一个方向居中

     4.背景图缩放——background-size(bgz)

  • 关键字

cover:覆盖背景区,可能背景图片部分看不见

contain:装入背景区,可能背景图片部分空白

  • 百分比
  • 数字+单位(eg:px)

     5.背景图固定——background-attachment(bga):fixed

2.复合写法

 背景图复合属性——background(bg):属性值(包括以上属性值)

9.显示模式

1.类型
  • 块级元素
    • 独占一行
    • 宽度默认是父级的100%
    • 添加宽高属性生效
  • 行内元素
    • 尺寸由内容决定
    • 添加宽高属性不生效
  • 行内块元素
    • 尺寸由内容决定
    • 添加宽高属性生效
2.转换显示模式

属性名:display

属性值:

属性值效果
block块级
inline-block行内级

10.结构伪类选择器——根据元素结构关系查找元素

选择器说明

E:first-child

查找第一个E元素
E:last-child查找最后一个E元素
E:nth-child(N)查找第N个E元素

ps:N可以是数学公式

功能公式
偶数2n
奇数2n+
5的倍数5n
第5个以后n+5
第5个以前-n+5

11.伪元素选择器——创造虚拟元素

选择器说明
E::before在E元素里面最前面添加一个元素
E::after在E元素里面最后面添加一个元素

ps:

  • 必须设置content:" "属性来设置内容
  • 伪元素默认是行内显示模式
  • 权重和标签选择器相同

12.盒子模型

1.内边距

属性:padding(四个方向内边距相等)/padding-方位名词(距离某一方向内边距)

多值写法:

2.边框线

属性:border

属性值:solid(实线),dashed(虚线),dotted(点线)

ps:border+方位名词(设置单方向边框线)

3.外边距

属性:margin(同padding)

合并现象:垂直排列的兄弟元素,上下margin合并(取最大值)

塌陷问题:父子级的标签,子级的添加使上外边距产生塌陷(导致父级一起向下运动)解决方法如下:

  • 取消子级margin,父级设置padding;
  • 父级设置overflow:hidden;
  • 父级设置border-top

4.尺寸计算

盒子尺寸=内容尺寸+border尺寸+内边距尺寸

防止盒子撑大方法

  • 手动减法border/padding的尺寸
  • 内减模式:box-sizing:border-box

5.清除默认样式

*{
    margin:0;
    padding:0;
}

去掉项目列表符号:list-style:none

6.元素溢出——控制溢出元素内容

属性名:overflow

属性值:

属性值效果
hidden溢出隐藏
scroll溢出滚动(无论是否溢出,均显示滚动条位置)
auto溢出滚动(溢出才显示滚动条位置)

7.行内元素——添加内外边距无法改变垂直位置

行内元素添加line-height

8.圆角——设置外边框为圆角

属性名:border-radius

属性值:数字+px/百分比

ps:属性值是圆角半径

取值个数示例含义
1border-radius:10px;四个圆角半径均为10px
2border-radius:10px 80px;上左+下右:10px;上右+下左:80px;
3border-radius:10px 40px 80px;上左:10px;上右+下左:40px;下右:80pX
4border-radius:10px 20px 40px 0x;

上左:10px;上右:20px;下右:40px;下左:80pX

  • 常见应用-正圆形状。
    • 给正方形盒子设置圆角属性值为 宽高的一半/50%
  • 常见应用 -胶囊形状
    • 给长方形盒子设置圆角属性值为 盒子高度的一半

9.阴影——给元素设置阴影效果

属性名:box-shadow

属性值:x轴偏移量 γ轴偏移量 糊半径 扩散半径 颜色 内外阴影

ps:

  • X轴偏移量 和Y轴偏移量 必须书写.
  • 默认是外阴影,内阴影需要添加 inset

13.标准流:默认排列规则

14.浮动(了解)——块级水平排列

float:属性值

属性值效果
left左对齐
right右对齐
<!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>
        .one{
            width: 50px;
            height: 50px;
            background-color: #444ffe;
            float: left;
    
        }
        .two{
    
            width: 80px;
            height: 40px;
            background-color: aqua;
            float: left;
    
        }
    </style>
</head>
<body>
    <div class="one">one</div>
    <div class="two">two</div>
</body>
</html>

浮动影响:浮动的盒子会脱标,当父级无高度时,子级无法撑开。

如何清除浮动影响?

1.额外清除法

.clearfix{
    clear:both;
}

2.单伪元素法(在父级添加块级元素)

.clearfix::after{
    content:"";
    display:block;
    clear:both;
}

3.双伪元素法

.clearfix::after,
.clearfix::after{
    content:"";
    display:table;
}
.clearfix::after{
    clear:both;
}

4.overflow(父级+css属性)

overflow:hidden

15.Flex——弹性布局

设置方式:父级元素设置display:flex,子元素自动挤压或拉伸

默认主轴为水平方向,侧轴为垂直方向

主轴对齐方式

属性名:justify-content

属性值效果
flex-start默认值,弹性盒子从起点开始依次排列
flex-end弹性盒子从终点开始依次排列
center弹性盒子沿主轴居中排列
space-between弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子之间
space-around弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子两侧
space-evenly

弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等

侧轴对齐方式

属性名

  • align-items:当前弹性容器内所有弹性盒子的侧轴对齐方式(给弹性容器设置)
  • align-self:单独控制某个弹性盒子的侧轴对齐方式(给弹性盒子设置)
属性值效果
stretch弹性盒子沿着侧轴线被拉伸至铺满容器(弹性盒子没有设置侧轴方向尺寸则默认拉伸)
center弹性盒子沿侧轴居中排列
flex-start弹性盒子从起点开始依次排列
flex-end弹性盒子从终点开始依次排列

修改主轴方向
属性名:flex-direction

属性值效果
row水平方向,从左向右(默认)
column垂直方向,从上向下
row-reverse水平方向,从右向左
column-reverse垂直方向,从下向上

弹性伸缩比——控制弹性盒子的主轴方向的尺寸。
属性名:flex
属性值:整数数字,表示占用父级剩余尺寸的份数

弹性盒子换行
原因:弹性盒子可以自动挤压或拉伸,默认情况下,所有弹性盒子都在一行显示。
属性名:flex-wrap
属性值
·wrap:换行
·nowrap:不换行(默认)

16.定位——灵活改变盒子在网页的位置

(1)属性名:position

定位模式属性值是否脱标显示模式参照物
相对定位relative保持标签原有显示模式自己原来位置
绝对定位(子绝父相)absolute行内块特点1.已经定位的祖先元素
2.浏览器可视区
固定定位fixed行内块特点浏览器窗口

(2)边偏移:设置盒子的位置

  • left
  • right
  • top
  • bottom

(3)定位剧中

步骤:

  1. 绝对定位
  2. 水平、垂直边偏移为 50%
  3. 子级向左、上移动自身尺寸的一半
         img{
            position: absolute;
            left: 50%;

            margin-left: -14px;
            margin-top: 50px;
        }
  • 左、上的外边距为 -尺寸的一半
  • transform:translate(-50%,-50%)
        img{
            position: absolute;
            left: 50%;

            /* margin-left: -14px;
            margin-top: 50px; */
            
            transform:translate(-50%,-50%)
        }

(4)堆叠层级 z-ingex——设置定位元素的层级顺序,改变定位元素的显示顺序

        /* div为父级,box1和box2为子级 */

        div{

            height: 50px;

            width: 50px;

        }

        .box1{

            background-color: royalblue;

        }

        .box2{

            background-color: pink;

        }

加入定位默认效果:按照标签书写顺序,后来者居上

        /* div为父级,box1和box2为子级 */
        div{
            position: absolute;
            height: 50px;
            width: 50px;
        }
        .box1{
            background-color: royalblue;
        }
        .box2{
            background-color: pink;
        }

设置边偏移改变位置

设置堆叠层级 z-ingex改变堆叠关系(值大的在上方)

    <style>
        /* div为父级,box1和box2为子级 */
        div{
            position: absolute;
            height: 50px;
            width: 50px;
        }
        .box1{
            background-color: royalblue;

            z-index: 2;
        }
        .box2{
            background-color: pink;

            top: 20px;
            left: 10px;

            z-index: 1;
        }
    </style>

17.css精灵(拓展)

CSS 精灵,也叫 CSS Sprites,是一种网页图片应用处理方式。把网页中一些背景图片整合到一张图片文件中,再background-position 精确的定位出背景图片的位置。

优点:减少服务器被请求次数减轻服务器的压力,提高页面加载速度

步骤:
1.创建盒子,盒子尺寸与小图尺寸相同
2.设置盒子背景图为精灵图
3.添加 background-position 属性,改变背景图位置
3.1 测量小图片左上角坐标
3.2 职负数坣标为 background-position 属性值(向左上移动图片位置)

    <style>       
        div{
            /* 创建盒子,盒子尺寸与小图尺寸相同 */
            width: 112px;
            height: 110px;
            background-color :pink;
            /* 设置盒子背景图为精灵图 */
            background-image:url();
            /* 添加 background-position 属性,改变背景图位置 */
            background-position: -256px-276px;
        }
    </style>

此篇文章到此结束,大家自己也试着找个网页练练手吧!代码无情,人间有情,欢迎大家点赞评论加收藏。内容如有问题还请大家在评论区指点一二。

关于HTML和CSS知识点,我可以给你提供一些基本的信息。HTML(文本标记语言)用于描述网页的结构和内容,而CSS(层叠样式表)用于定义网页的样式和布局。 以下是一些常见的HTML知识点: 1. HTML标签:HTML由一系列标签组成,例如`<html>、<head>、<body>`等。每个标签用于定义不同的元素。 2. 元素:HTML中的元素由开始标签、结束标签和内容组成。例如`<p>这是一个段落。</p>`。 3. 属性:HTML标签可以包含属性,属性提供有关元素的附加信息。例如`<img src="image.jpg" alt="图片">`中的`src`和`alt`是属性。 4. 常见的HTML元素:包括标题标签(`<h1> - <h6>`)、段落标签(`<p>`)、链接标签(`<a>`)、图像标签(`<img>`)等。 以下是一些常见的CSS知识点: 1. CSS选择器:用于选择要应用样式的HTML元素。常见的选择器包括类选择器(`.class`)、ID选择器(`#id`)、元素选择器(`element`)等。 2. 样式属性:CSS使用样式属性来定义元素的外观。例如`color`用于设置文本颜色,`font-size`用于设置字体大小等。 3. 盒模型:CSS中的每个元素都被视为一个矩形的盒子,由内容、内边距、边框和外边距组成。 4. 布局:CSS可以用于控制元素的位置和大小,例如使用`position`属性来设置元素的定位方式,使用`display`属性来设置元素的显示方式等。 这只是HTML和CSS的一小部分知识点,如果你有其他问题或需要更详细的信息,请随时告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值