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

Html5+CSS3基础知识汇总-CSS3篇(html5和css3基础教程)

myzbx 2025-01-31 14:14 34 浏览

今天总结的是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

    相关推荐

    零基础入门AI智能体:详细了解什么是变量类型、JSON结构、Markdown格式

    当品牌跳出固有框架,以跨界联动、场景创新叩击年轻群体的兴趣点,一场关于如何在迭代中保持鲜活的探索正在展开,既藏着破圈的巧思,也映照着与新一代对话的密码。在创建AI智能体时,我们会调用插件或大模型,而在...

    C# 13模式匹配:递归模式与属性模式在真实代码中的性能影响分析

    C#13对模式匹配的增强让复杂数据处理代码更简洁,但递归模式与属性模式的性能差异一直是开发者关注的焦点。在实际项目中,选择合适的模式不仅影响代码可读性,还可能导致执行效率的显著差异。本文结合真实测试...

    零基础快速入门 VBA 系列 6 —— 常用对象(工作簿、工作表和区域)

    上一节,我介绍了VBA内置函数以及如何自动打字和自动保存文件。这一节,我们来了解一下Excel常用对象。Excel常用对象Excel有很多对象,其中最常用也最重要的包括以下3个:1.Workbo...

    不同生命数字的生肖龙!准到雷普!

    属龙的人总在自信爆棚和自讨苦吃之间反复横跳?看完这届龙宝宝的日常我悟了。属龙的人好像天生自带矛盾体:领导力超强可人缘时好时坏,工作雷厉风行却总在爱情里翻车。关键年份的龙性格差异更大——76年龙靠谱但不...

    仓颉编程语言基础-面向对象编程-属性(Properties)

    属性是仓颉颉中一种强大的机制,它允许你封装对类(或接口interface、结构体struct、枚举enum、扩展extend)内部状态的访问。它看起来像一个普通的成员变量(字段),但在其背后,它通过...

    Python中class对象/属性/方法/继承/多态/魔法方法详解

    一、基础入门:认识类和对象1.类和对象的概念在Python中,类(class)是一种抽象的概念,用于定义对象的属性和行为,而对象(也称为实例)则是类的具体表现。比如,“汽车”可以是一个类,它有...

    VBA基础入门:搞清楚对象、属性和方法就成功了一半

    如果你刚接触VBA(VisualBasicforApplications),可能会被“对象”“属性”“方法”这些术语搞得一头雾水。但事实上,这三个概念是VBA编程的基石。只要理解它们之间的关系,...

    P.O类型文推荐|年度编推合集(一百九十五篇)

    点击左上方关注获取更多精彩推文目录2019年度编推35篇(1V1)《悖论》作者:流苏.txt(1V1)《桂花蒸》作者:大姑娘浪.txt(1V1)《豪门浪女》作者:奚行.txt...

    Python参数传递内存大揭秘:可变对象 vs 不可变对象

    90%的Python程序员不知道,函数参数传递中可变对象的修改竟会导致意想不到的副作用!一、参数传递的本质:对象引用传递在Python中,所有参数传递都是对象引用的传递。这意味着函数调用时传递的不是对...

    JS 开发者必看!TC39 2025 最新动向,这些新语法要火?

    大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。TC39第...

    2025 年值得尝试的 5 个被低估的 JavaScript 库

    这些JavaScript库可能不会在社交媒体或HackerNews上流行起来,但它们会显著提高您的工作效率和代码质量。JavaScript不再只是框架。虽然React、Vue和Sv...

    Python自动化办公应用学习笔记30—函数的参数

    一、函数的参数1.形参:o定义:在函数定义时,声明在函数名后面括号中的变量。o作用:它们是函数内部的占位符变量,用于接收函数被调用时传入的实际值。o生命周期:在函数被调用时创建,在函数执...

    16种MBTI人格全解析|测完我沉默了三秒:原来我是这样的人?

    MBTI性格测试火了这么久,你还不知道自己是哪一型?有人拿它当社交话题,有人拿它分析老板性格,还有人干脆当成择偶参考表。不废话,今天我一次性给你整理全部16种MBTI人格类型!看完你不仅能知道自己是谁...

    JS基础与高级应用: 性能优化

    在现代Web开发中,性能优化已成为前端工程师必须掌握的核心技能之一。本文从URL输入到页面加载完成的全过程出发,深入分析了HTTP协议的演进、域名解析、代码层面性能优化以及编译与渲染的最佳实践。通过节...

    爱思创CSP-J/S初赛模拟赛线上开赛!助力冲入2024年CSP-J/S复赛!

    CSP-J/S组初赛模拟赛爱思创,专注信奥教育19年,2022年CSP-J/S组赛事指定考点,特邀NOIP教练,开启全真实CSP-J/S组线上初赛模拟大赛!一、比赛对象:2024年备考CSP-J/S初...