百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Html5+CSS3基础知识汇总-CSS3篇

zhezhongyun 2025-02-06 17:06 17 浏览

今天总结的是CSS3的学习内容

一、CSS简介

CSS3是CSS技术的升级版本,CSS即层叠样式表(Cascading StyleSheet)。CSS3语言是朝着模块化发展的,把它分解成小的模块,并且加入 更多新的模块进来:

                    盒子模型
                    文字特效
                    边框圆角
                    动画
                    多列布局
                    用户界面
                    旋转
                    渐变
                    ...

二、CSS3的应用

2.1.超级选择器

CSS选择器:使用CSS对html页面中的元素实现一对一,一对多或者多对一的控制:

选择器
{
    样式
}

1.属性选择器

在CSS3中追加了三个选择器:[att*=val];[att^=val];[att$=val]–>att表示为属性,val表示为属性的属性值。

[att*=val]:如果元素用att表示的属性的值中包含val指定的字符,那么该元素使用这个样式。

[att$=val]:如果元素用att表示的属性的属性值的结尾字符用val指定的字符,那么该元素使用这个样式。

[att^=val]:如果元素用att表示的属性的属性值的开头字符为用val指定的字符,那么该元素使用这个样式。

注意: /如果纯用数字的时候该样式不会显示成功,需要用\连接与数字最近的符号 注意!只有’-‘的字符需要加’\’/


    
    css3中的属性选择器
    


    

CSS3中的属性选择器

section1A
sectionB
section2-1

2.结构性伪类选择器
(1)类选择器
使用类选择器把相同的元素定义成不同的样式,伪类选择器是已经定义好的不可以随便起名

p.right{
    color:red;
}
p.left{
    colot:blue;
}

(2)伪类选择器—-最常见的伪类选择器:a(使用顺序为:未,已,悬,停)

        a:link{
            color: #ff6600;
        }
        a:visited{
            color: blueviolet;
        }
        a:hover{
            color: aqua;
        }
        /*鼠标点击时*/
        a:active{
            color: darkblue;
        }

(3)伪元素选择器
针对于CSS中已经定义好的伪元素使用的选择器(first-line;first-letter;before;after)。

选择器:伪元素{
    属性:值;
}
选择器.类名:伪元素{
    属性:值;
}

我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以关注我的头条号并在后台私信我:前端,即可免费获取

first-line伪元素选择器:向某个元素中的第一行文字使用样式。

first-letter伪类选择器:向某个元素中的文字的首字母或者第一个文字使用样式。

before:在某个元素之前插入一些内容。

after:在某个元素之后插入一些内容。

可以使用before和after伪元素在页面中插入文字,图像,项目编号等。

插入文字:E:before/after

排除一些不需要插入内容的元素:E:none:before/after

插入图像

插入项目编号

a.在多个标题前加上编号:counter属性对项目追加编号

            元素:before{
                content:counter(计数器);
            }
            元素{
                counter-increment:content属性值中所指定的计数器名称;
            }
    b.对编号中添加文字
    c.指定编号的样式
    d.指定编号的种类:list-style-type
    e.编号嵌套,重置编号
        要对哪一个元素进行重置,那么就在该元素的父元素上进行设置reset。
    f.中编号中嵌入大编号
        h2:before{
            content:counter(大编号计数器)'-'conter(中编号计数器);
    g.在字符串两边嵌套文字符号:open-quoter&close-quoter

    
    伪元素选择器
    


    

CSS中主要有四个伪类选择器

CSS中主要有四个伪类选择器
first-line伪元素选择器:向某个元素中的第一行文字使用样式

first-letter伪类选择器:向某个元素中的文字的首字母或者第一个文字使用样式

befor&after

(4)结构性伪类选择器

  • root选择器:将样式绑定到页面的根元素中。
  • not选择器:只对某个结构元素使用样式,但该元素下面的子结构元素不使用该样式。
  • empty选择器:指定当元素中内容为空白时显示的样式。

    


    
1 2 3
  • target选择器:在用户点击了超链接并转到target元素后,对页面中某个target元素指定样式。
  • 
        
    
    
        

    target选择器

    A B

    A标题

    内容

    B标题

    内容

    first-child:单独指定第一个子元素的样式。

    last-child:单独指定最后一个子元素的样式。

    nth-child:选择器匹配正数下来的第N个子元素,nth-child(odd)为第奇数个子元素,nth-child(even)为第偶数个子元素。

    nth-last-child(n):匹配倒数数下来第n个子元素。

    nth-of-type:正数,当指定元素为标题加内容的时候,如果使用上面的方法会导致真正的指定元素不被成功指定,因此需要使用nth-first-type方法进行指定。

    nth-last-type:倒数,同nth-first-type。

    循环使用样式:nth-child(An+B)–A 表示每次循环中共包括几种样式,B表示指定的样式在循环中所处的位置。

    only-child:只对一个元素起作用。

    
        
        结构性伪类选择器
        
    
    
        

    选择器first-child;last-child;nth-child;nth-last-child

    • No.1
    • No.2
    • No.3
    • No.4
    • No.5
    • No.6
    • No.7
    • No.8
    • No.9
    • No.10
    • No.11
    • No.12

    唯一的

    • 唯一,多加一个就没有啦

    A标题

    内容

    B标题

    内容

    3.UI元素状态伪类选择器
    指定的样式只有在元素处于某种状态下才起作用,在默认状态下不起作用!

    选择器:伪元素{
        属性:值;
    }
    选择器.类名:伪元素{
        属性:值;
    }

    first-line伪元素选择器:向某个元素中的第一行文字使用样式。

    first-letter伪类选择器:向某个元素中的文字的首字母或者第一个文字使用样式。

    before:在某个元素之前插入一些内容。

    after:在某个元素之后插入一些内容。

    可以使用before和after伪元素在页面中插入文字,图像,项目编号等。

    插入文字:E:before/after

    排除一些不需要插入内容的元素:E:none:before/after

    插入图像

    插入项目编号

    a.在多个标题前加上编号:counter属性对项目追加编号

                元素:before{
                    content:counter(计数器);
                }
                元素{
                    counter-increment:content属性值中所指定的计数器名称;
                }
        b.对编号中添加文字
        c.指定编号的样式
        d.指定编号的种类:list-style-type
        e.编号嵌套,重置编号
            要对哪一个元素进行重置,那么就在该元素的父元素上进行设置reset。
        f.中编号中嵌入大编号
            h2:before{
                content:counter(大编号计数器)'-'conter(中编号计数器);
           g.在字符串两边嵌套文字符号:open-quoter&close-quoter   
    
        
        伪元素选择器
        
    
    
        

    CSS中主要有四个伪类选择器

    CSS中主要有四个伪类选择器
    first-line伪元素选择器:向某个元素中的第一行文字使用样式

    first-letter伪类选择器:向某个元素中的文字的首字母或者第一个文字使用样式

    befor&after

    (4)结构性伪类选择器

    • root选择器:将样式绑定到页面的根元素中。
    • not选择器:只对某个结构元素使用样式,但该元素下面的子结构元素不使用该样式。
    • empty选择器:指定当元素中内容为空白时显示的样式。
    
        
    
    
        
    1 2 3
  • target选择器:在用户点击了超链接并转到target元素后,对页面中某个target元素指定样式。
  • 
        
    
    
        

    target选择器

    A B

    A标题

    内容

    B标题

    内容

    first-child:单独指定第一个子元素的样式。

    last-child:单独指定最后一个子元素的样式。

    nth-child:选择器匹配正数下来的第N个子元素,nth-child(odd)为第奇数个子元素,nth-child(even)为第偶数个子元素。

    nth-last-child(n):匹配倒数数下来第n个子元素。

    nth-of-type:正数,当指定元素为标题加内容的时候,如果使用上面的方法会导致真正的指定元素不被成功指定,因此需要使用nth-first-type方法进行指定。

    nth-last-type:倒数,同nth-first-type。

    循环使用样式:nth-child(An+B)–A 表示每次循环中共包括几种样式,B表示指定的样式在循环中所处的位置。

    only-child:只对一个元素起作用。

    
        
        结构性伪类选择器
        
    
    
        

    选择器first-child;last-child;nth-child;nth-last-child

    • No.1
    • No.2
    • No.3
    • No.4
    • No.5
    • No.6
    • No.7
    • No.8
    • No.9
    • No.10
    • No.11
    • No.12

    唯一的

    • 唯一,多加一个就没有啦

    A标题

    内容

    B标题

    内容

    3.UI元素状态伪类选择器
    指定的样式只有在元素处于某种状态下才起作用,在默认状态下不起作用!

    4.兄弟元素选择器
    用来指定位于同一父元素之中的某个元素之后的所有其他某个种类的兄弟元素所使用的样式。一定要是之后的兄弟元素!

    <子元素>~<子元素之后的同级兄弟元素>
        {
            样式
        }

    2.2.文字阴影与自动换行

    1.text-shadow
    p{
        text-shadow:length(阴影离开文字的横方向距离) length(阴影离开文字的纵方向距离) length(阴影模糊半径) color(阴影颜色)
    }

    位移距离:前两个参数代表的阴影离开文字的横(纵)方向距离,不可省略。

    第三个参数代表模糊半径,代表阴影向外模糊时候的范围,数值越大越模糊。

    当没有指定颜色值时,会使用默认文字的颜色。

    指定多个阴影,并且可以针对每个阴影用逗号分隔。

    2.word-break:浏览器文本自动换行。

    3.word-wrap: 长单词与URL地址自动换行。

    4.服务器端字体和@font-face属性

    定义斜体或粗体:在定义字体的时候,可以把字体定义成斜体或者粗体,在使用服务器服务器端字体的时候,需要根据斜体还是粗体使用不同的汉字。

    显示客户端字体:首先将font-family设置为本地的字体名,然后将src属性设置为local(‘字体’)。

    font-variant:设置文本是否大小写。

    font-weight:设置文本的粗细。

    font-stretch:设置文本是否横向的拉伸变形。

    2.3.盒模型

    1.各种盒模型

    inline-block类型

    使用inline-block类型来执行分列显示

    
        
    
    
        

    使用inline-block类型来执行分列显示-1.传统方式

    div1
    div2
    div3

    使用inline-block类型来执行分列显示-1.inline-block方式

    div1div1div1div1div1div1div1 div1div1div1div1div1div1div1div1 div1div1div1div1div1div1div1div1
    div2div2div2div2div2div2div2 div2div2div2div2div2div2div2div2
    div3
    使用inline-block类型来显示水平菜单
    
        
    
    
        

    使用inline-block类型来显示水平菜单-inline-block

    • A
    • B
    • C
    • D
    使用inline-block类型来显示水平菜单
    
        
    
    
        

    使用inline-block类型来显示水平菜单-inline-block

    • A
    • B
    • C
    • D
  • inline-table类型
  • 
        
    
    
        

    使用inline-table类型-一个表格前后都有文字将其环绕

    巴拉巴拉
    1 2
    1 2
    巴拉巴拉

    list-item类型

    可以将多个元素作为列表显示,同时在元素的开头加上列表的标记。

    run-in类型和compact类型

    none类型

    当元素被指定none后,该元素不会显示

    2.显示不下的内容

    overflow属性:指定对盒子中容纳不下的内容的显示办法

    overflow-x属性与overflow-y属性

    textoverflow:在盒子的末尾显示代表省略符号的‘…’,但是该属性只在内容在水平位置上超出时显示。

    3.盒子阴影

    box-shadow:让盒在显示的时候产生阴影的效果

    对盒内子元素设置阴影

    对一个文字或第一行设置阴影:通过first-line或者first-letter

    对表格和对单元格使用阴影

    4.box-sizing宽高计算

    指定针对元素的宽度和高度的计算方法

        (content)border-box:属性值表示元素的宽高度(不)包括内补白区域及边框的宽度高度
    
        
    
    
        

    box-sizing:content&border-box

    box-sizing:border-box代表宽度和高度包含内补白宽度高度,即虽然有padding和border,最终仍然为300px
    box-sizing:content-box:代表不包含宽高度内补白区域,即最后为300px+30px+30px

    2.4.边框和背景样式

    1.新增的背景属性

    background-clip:指定背景的显示范围

    border-box:从边框开始

    padding-box:从内边框开始

    content-box:从内容开始

    background-orgin:指定绘制背景图像的起点

    可以指定绘制时的起始位置,默认为padding,可以为border或者content左上角开始绘制。

    background-size:指定背景中图像的尺寸

    auto

    length

    percentage:以父元素的百分比设置背景图像的宽高度。

    cover:全覆盖。

    contain :与cover相反,主要将背景图片缩小,来适合布满整个容器。

    2.显示多个背景属性: 第一个图像在最上面

    3.圆角边框:border-radius

    指定两个半径:左上右下+左下右上

    当不显示边框的时候,浏览器会把四个角绘制成圆角

    修改边框种类。

    绘制四个不同半径的边框

    4.图像边框:border-image

    可以让元素的长度或宽度处于随时变化时,变化状态的边框统一使用一个图像文件来进行绘制。

    2.5.CSS3变形功能

    1.利用transform实现文字或图像的旋转,缩放,倾斜移动这四种类型的变形处理。

    旋转:totate(角度)

    缩放:scale(值):0.5即为缩放到50%

    倾斜:skew(值),值为角度

    移动:translate(值)

    对一个元素使用多个方法

    transform:方法1 方法2 方法 3 方法4

    改变元素基点

    transform-origin:

    2.6.CSS3的动功能

    1.transition功能:支持从一个属性值平滑到另外一个属性值

    允许CSS属性值在一定的时间内平滑的过度,这种效果可以在单击,获得焦点,被点击或对元素任何改变中触发,并圆滑的以动画效果改变CSS属性值。

    (1)执行变换的属性:transition-property:过渡即将开始

    none:没有属性会获得过渡效果

    all:所以属性会获得过渡效果

    property:定义应用过渡效果的CSS属性名称列表,以逗号分隔

    (2)变换延续时间:transition-duration:规定完成过渡需要花费的时间,默认值零没有效果。

    (3)在延续时间段,变换速率的变化:
    transition-timing-function。

    (4)变换延迟时间:transition-delay:指定一个动画开始执行的时间,也就是当改变元素属性值后多长时间开始执行过渡效果。

    
        
        CSS3中的动画效果
        
    
    
        

    transition

    2.Animations功能:支持通过关键帧的指定来在页面上产生更复杂的动画现象。

    • name:指定合集名称
    • duration:整个动画执行完成所需时间
    • timing-function:实现动画方法
    • iteration-count:重复播放次数
    
        
    
    
        

    animation

    2.7.CSS3的分页

    1.点击及鼠标悬停分页样式

    2.鼠标悬停过渡效果:transition: background-color .9s;

    3.圆角样式:border-radius

    4.边框:border:2px solid darkviolet;

    2.8.布局相关样式

    1.多栏布局

    column-count属性:将一个元素中的内容分成多栏进行显示,要将元素的宽度设置成多个栏目的总宽度

    column-width属性:指定栏目的宽度来生成分栏

    column-gap属性:指定栏目之间的距离

    column-rule:栏目之间添加分隔线

    2.盒布局: 多栏布局的栏目宽度必须相等,指定栏目的宽度的时候也只能统一指定,但是栏目的宽度不可能全部都一样,所以多栏布局比较适合在文字内容页面显示,比如新闻。并不适合整个网页编排时使用。而盒布局就相对比较随意一些,可以定义成不同的页面。

    3.弹性盒子布局

    (1)box-flex:使得盒子布局变成弹性布局:可以自适应窗口

    (2)box-ordinal-group:改变元素的显示顺序

    (3)box-orient:改变元素排列方向

    horizontal:在水平行中从左向右排列子元素

    vertical:从上向下垂直排列子元素

            



    (4)元素的高度宽度自适应:就是元素的高度和宽度可以根据排列的方向改变而改变。
    (5)使用弹性布局来消除空白:方法就是给子div中加入一个box-flex属性。

    (6)对多个元素使用box-flex属性,让浏览器或者容器中的元素的总宽度或者总高度都等于浏览器或者容器高度。

    (7)box-pack属性和box-align属性:指定水平方向与垂直方向的对齐方式(文字,图像,以及子元素的水平方向或是垂直方向上的对齐方式)

    2.9.不同浏览器加载不同的CSS样式

    Media Queries模块是CSS3中的一个和各种媒体相关的重要模块




    原文链接:
    https://blog.csdn.net/qq_27348951/article/details/53378364

    相关推荐

    JPA实体类注解,看这篇就全会了

    基本注解@Entity标注于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表。name(可选):实体名称。缺省为实体类的非限定名称。该名称用于引用查询中的实体。不与@Tab...

    Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用

    开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“InternalServerError”的提示,log日志报错:S3_USE_A...

    用离散标记重塑人体姿态:VQ-VAE实现关键点组合关系编码

    在人体姿态估计领域,传统方法通常将关键点作为基本处理单元,这些关键点在人体骨架结构上代表关节位置(如肘部、膝盖和头部)的空间坐标。现有模型对这些关键点的预测主要采用两种范式:直接通过坐标回归或间接通过...

    B 客户端流RPC (clientstream Client Stream)

    客户端编写一系列消息并将其发送到服务器,同样使用提供的流。一旦客户端写完消息,它就等待服务器读取消息并返回响应gRPC再次保证了单个RPC调用中的消息排序在客户端流RPC模式中,客户端会发送多个请...

    我的模型我做主02——训练自己的大模型:简易入门指南

    模型训练往往需要较高的配置,为了满足友友们的好奇心,这里我们不要内存,不要gpu,用最简单的方式,让大家感受一下什么是模型训练。基于你的硬件配置,我们可以设计一个完全在CPU上运行的简易模型训练方案。...

    开源项目MessageNest打造个性化消息推送平台多种通知方式

    今天介绍一个开源项目,MessageNest-可以打造个性化消息推送平台,整合邮件、钉钉、企业微信等多种通知方式。定制你的消息,让通知方式更灵活多样。开源地址:https://github.c...

    使用投机规则API加快页面加载速度

    当今的网络用户要求快速导航,从一个页面移动到另一个页面时应尽量减少延迟。投机规则应用程序接口(SpeculationRulesAPI)的出现改变了网络应用程序接口(WebAPI)领域的游戏规则。...

    JSONP安全攻防技术

    关于JSONPJSONP全称是JSONwithPadding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...

    大数据Doris(六):编译 Doris遇到的问题

    编译Doris遇到的问题一、js_generator.cc:(.text+0xfc3c):undefinedreferenceto`well_known_types_js’查找Doris...

    网页内嵌PDF获取的办法

    最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保...

    印度女孩被邻居家客人性骚扰,父亲上门警告,反被围殴致死

    微信的规则进行了调整希望大家看完故事多点“在看”,喜欢的话也点个分享和赞这样事儿君的推送才能继续出现在你的订阅列表里才能继续跟大家分享每个开怀大笑或拍案惊奇的好故事啦~话说只要稍微关注新闻的人,应该...

    下周重要财经数据日程一览 (1229-0103)

    下周焦点全球制造业PMI美国消费者信心指数美国首申失业救济人数值得注意的是,下周一希腊还将举行第三轮总统选举需要谷歌日历同步及部分智能手机(安卓,iPhone)同步日历功能的朋友请点击此链接,数据公布...

    PyTorch 深度学习实战(38):注意力机制全面解析

    在上一篇文章中,我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程,从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变...

    聊聊Spring AI的EmbeddingModel

    序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/e...

    前端分享-少年了解过iframe么

    iframe就像是HTML的「内嵌画布」,允许在页面中加载独立网页,如同在画布上叠加另一幅动态画卷。核心特性包括:独立上下文:每个iframe都拥有独立的DOM/CSS/JS环境(类似浏...