首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

CSS2基础(part-1)

编程知识
2024年08月20日 20:39

CSS2基础

基础

简介

【全称】Cascading Style Sheets,又名层叠样式表

  • 层叠:一层一层上去
  • :列表
  • 样式:如文字大小,颜色,元素宽高等。

CSS 描述了在屏幕、纸质、音频等其他媒体上的元素应该如何被渲染的问题。

语言类型

标记语言,为HTML结构美化样式,实现语义与效果的分离,更好地美化网页,优化网页结构

作用于HTML的方式

行内样式(不推荐

语法

<!--写在标签中的style中-->
<body>
    <h1 style="color:skyblue;">title</h1>
</body>

缺点:

  • 工作量大,效率低下
  • html和css耦合性太高,css使html结构与样式分离的作用微乎其微

内部样式

语法

<head>
    <meta charset="UTF-8">
    <title>内部样式</title>
    <style>
        h1{
            color: skyblue;
        }
        h2{
            color: greenyellow;
        }
    </style>
</head>
<body>

优点

  • 结构和样式已经初步分开,代码可以进行服用

缺点

  • 需要复制到另一个html文件才可以实现样式复用,耗费时间

[!NOTE]

一开始写CSS样式的时候,可以使用内部样式,不用再开一个.css文件来赋予结构样式,

到后来熟练了可以使用外部样式,写在.css文件中

外部样式

语法

<!--HTML文件-->
<head>
    <meta charset="UTF-8">
    <title>外部样式表</title>
    <link rel="stylesheet" href="../CSS/03.css">
    <!--head中写link来连接外部样式表-->
    <!--rel:关系  href:来源-->
</head>
/*CSS文件*/
h1{
    color: skyblue;
}
h2{
    color: gray;
}

最常使用的方式,实际开发几乎都使用外部样式表

优点

  • 第一次通过浏览器渲染后,CSS样式就会因为与.html文件的分离而进行缓存,下次渲染则可以提高访问速度

样式的优先级

顺序

行内样式 > 内部样式 = 外部样式

attention

  • 遵循“后来者居上”的原则
  • 相当于涂鸦,涂了第二层,第一层就会看不见了

语法规范

结构

选择器 找到想要更改样式的元素
声明块 一个或多个声明(声明:[属性名: 属性值;])
h2{
    color: gray;
}

代码风格

风格 作用
展开风格 开发时推荐,便于维护和调试
紧凑风格 项目上线时推荐,可以减小文件体积,以节约网络流量,同时使打开网页的速度更快

CSS选择器

基本选择器

通配选择器

作用

选中所有的HTML元素(清除样式的时候有用)

* {
	color: red;
}

元素选择器

作用

为某种元素统一设置,无法实现同类型的差异化

标签名 {
    属性名: 属性值;
}

类选择器

作用

通过元素中的class的属性值来进行可以自己分类的样式分配

元素中的class属性的属性值可以有多个,用空格隔开

class属性的属性值尽量为字母+数字,用-连接,避免纯数字的出现

/*假设有一个元素h1,它的class属性的属性值为skyblue*/
.skyblue {
    color: skyblue;
}

ID选择器

作用

选中唯一的元素通过id属性的属性值(其中的原理是不同的元素,id属性的属性值必须不同

/*假设有一个元素h1,它的id属性的属性值为special*/
#special {
    color: skyblue;
}

复合选择器

交集选择器

作用

选中同时符合多个条件的元素

选择器1选2选3 {
    color: skyblue;
}
/*比如p.blue 就是说class属性的属性值为blue的p标签(双重筛选)*/

[!NOTE]

  • 有标签名必须写在前面
  • 不可能同时出现两个元素选择器

并集选择器

作用

选中多个选择器对应的元素

h2,
h3,
p {
            font-size: large;
        }
/*
选择器1,
选择器2,
选择器3 {
 属性名: 属性值;
}

*/
  • 一般竖着写
  • 集体声明,可以缩小样式表的体积

HTML元素之间的关系

  • 父元素
  • 子元素
  • 祖先元素(爸爸也算是祖先)
  • 后代元素(儿子也算是后代)
  • 兄弟元素

为后面的后代选择器等选择器做知识储备


后代选择器(id,类也可)

作用

选中指定元素中,符合要求的后代元素

<style>
        ul li {
            color: skyblue;
            font-size: large;
        }
    </style>
<ul>
        <li>l</li>
        <li>o</li>
        <li>v</li>
        <li>e</li>
        <li>
            <a href="#">love</a>
        </li>
        <li>
            <ul>
                <li>1</li> <!--这个也可以被选中-->
            </ul>
        </li>
    </ul>

[!TIP]

  • 最后选中的是后代,不包括祖先
  • 须符合html的嵌套要求 (可以跨代寻找
  • 子代和孙子辈以及等等可以同时兼顾

子代选择器

作用

选中指定元素中符合要求的子代元素

选1>选2>选3 {
 color: skyblue;
}
/*
选择器可以不从最外面开始找寻元素
*/

兄弟选择器

作用

选中指定元素后,符合条件的相邻兄弟元素

分类

分类 语法 作用
相邻 选1+选2 向下找同代,第一个如果是选2,则赋予样式
通用 选1~选2 向下找通带,如果是选2,则赋予样式,可以不止一个
<style>
		ul+ol {
            color: skyblue;
        }
        p+h2 {
            color: yellow;
        }
        h2~h3 {
            color: aquamarine;
            font-size: large;
        }
</style>
<body>
    <div>
        <ul>
            <li>love</li>
            <li>like</li>
        </ul>
        <ol>
            <li>long</li>
            <li>lonely</li>
        </ol>
        <p>paragrah</p>
        <h3>title333</h3>
        <h2>title2</h2>
        <h3>title3</h3>
        <h3>title33</h3>
</body>

属性选择器

作用

选中属性值符合一定要求的元素

 /* 第一种写法,选中具有相同属性的元素 */
        [title] {
            color: skyblue;
        }
        /* 第二种写法,选中属性以及属性值都相同的元素 */
        [title = "1"] {
            color: aquamarine;
        }
        /* 第三种写法,选中属性相同,且属性值开头相同的元素 */
        [title^="a"] {
            color: yellow;
        }
        /* 第四种写法,选中属性相同,且属性值结尾相同的元素 */
        [title$="e"] {
            font-size: larger;
        }
        /* 第五种写法,选中属性相同,且属性值中包含部分值的元素 */
        [title*="1"] {
            color: brown;
        }

伪类选择器

概念解析

不是真的类class,而是元素的一种状态

分类

动态伪类 意思 结构伪类 意思
link(超链接独有) 尚未连接 first-child 第一个孩子
visted(超链接独有) 连接过 last-child 最后一个孩子
hover 鼠标悬停 nth-child(n) 第n个孩子
active 元素激活(按下鼠标不松开) first-of-type 第一个同类型孩子
focus 获取焦点(表单元素) last-of-type 最后一个同类型孩子
nth-of-type(n) 第n个同类型孩子

结构伪类补充

1.关于括号中的n

  • 0或不写:什么都不选
  • n:选中所有(几乎不用)
  • 1~正无穷:选中对应序号
  • 2n或even:选中序号为偶数
  • 2n+1或odd:选中序号为奇数
  • -n+3:选中前三个

原理:an + b

2.细节:

类似于立嫡立长,即取第一个儿子,孙子...(同时)

例子

div p:first-child

意思是找div中的第一个儿子,孙子...是不是p,是就赋予样式

p:first-child

意思是找body中的第一个儿子,孙子...是不是p,是就赋予样式

否定伪类

作用

排除满足括号中条件的元素

语法

:not(选择器)

p:not(:first-child) {
            color: skyblue;
        }
UI伪类

分类

what 意思
checked 被选中的复选框或单选框
enable 可用的表单元素
disabled 不可用的表单元素
 /* 选中的是被选中的复选框和单选框 */
        input:checked {
            width: 100px;
            height: 100px;
        }
        /* 选中的是被禁用的input元素 */
        input:disabled {
            background-color: gray;
        }
        /* 选中的是可用的input元素 */
        input:enabled {
            background-color: skyblue;
        }
目标伪类(了解)

作用

选中指定的锚点元素

/* 选中锚点指向的元素 */
        div:target{
            background-color: gray;
        }
语言伪类(了解)

作用

根据指定的语言选择元素

 div:lang(en) {
            color: skyblue;
        }

伪元素选择器

作用

选中元素中的一些特殊位置(在元素里

分类

what 意思
first-letter 第一个文字
first-line 第一行文字
selection 被鼠标选中
placeholder 提示文字(输入框中)
before 最开始的位置创建子元素
after 最后的位置创建子元素
/* 选中元素中的第一个文字 */
        div::first-letter {
            color:skyblue;
        }
        /* 选中元素中的第一行文字 */
        div::first-line {
            color: gray;
        }
        /* 选中的是鼠标选中的文字 */
        div::selection {
            color: red;
            background-color: gainsboro;
        }
        /* 选中的是input元素中的提示文字 */
        input::placeholder {
            color:skyblue;
        }
        /* 在p元素一开始的位置,创建一个子元素 */
        p::before {
            content: "¥";
        }
        /* 在p元素最后的位置,创建一个子元素 */
        p::after {
            content: "millions";
        }

[!WARNING]

first-letter 和first-line内容若出现使用重叠first-letter所使用的样式会覆盖first-line的样式


选择器优先级

原则:

  • 通过权重来区分到底哪个样式最优先
  • 行内样式!important出现就不计较权重谁大谁小

细节呈现

权重语法:(a,b,c){a,b,c为个数}

a ID
b 类,伪类,属性
c 元素,为元素

权重比较方式

一个一个进行比较,当a比出结果,权重就出结果若没有,就接着往下让b进行比较,以此类推

[!IMPORTANT]

!important > 行内样式 > 一切权重

!important不到情急不可进行使用,因为这种做法会使工作的交接细节出现问题

即使使用了,过后也需要删除找到无法用权重方式使样式变更的原因,并解决

快捷方式:

只要将鼠标放在选择器上,则可以出现权重,无需计算

之前的讲解是为了了解其中的权重计算原理,而非只是表面的计算

From:https://www.cnblogs.com/HotCodeMan/p/18370373
本文地址: http://www.shuzixingkong.net/article/1278
0评论
提交 加载更多评论
其他文章 Prometheus部署以及问题解决
Prometheus作用: Prometheus监控(Prometheus Monitoring)是一种开源的系统监控和警报工具。它最初由SoundCloud开发并于2012年发布,并在2016年加入了云原生计算基金会(CNCF)。Prometheus监控旨在收集、存储和查询各种指标数据,以帮助用户
Prometheus部署以及问题解决 Prometheus部署以及问题解决 Prometheus部署以及问题解决
.NET 智能组件完全开源
Daniel Roth在2024年3月20日发布了一篇文章: .NET 智能组件简介 – AI 驱动的 UI 控件。文章主要介绍了.NET Smart Components,这是一系列可以快速轻松地添加到.NET应用程序中的AI驱动的UI组件。这些组件旨在简化在现有软件中添加AI功能的过程,无需花费
一文讲清楚算法刷题-计算机专业新生必看
哈喽,大家好,我是Sunny,你也可以叫我萨宁,一个热爱分享编程知识的程序员。我的昵称是Sunny不要停,寓意是美好的晴朗日子不要停下来,希望大家都能每天开开心心的。我的频道主要分享编程知识,生活,大学计算机学科学习,考研经验。目前已经上岸某211计算机专业,有大学学习,考研相关的问题,欢迎关注我,
一文讲清楚算法刷题-计算机专业新生必看 一文讲清楚算法刷题-计算机专业新生必看 一文讲清楚算法刷题-计算机专业新生必看
前端使用 Konva 实现可视化设计器(21)- 绘制图形(椭圆)
本章开始补充一些基础的图形绘制,比如绘制:直线、曲线、圆/椭形、矩形。这一章主要分享一下本示例是如何开始绘制一个图形的,并以绘制圆/椭形为实现目标。
前端使用 Konva 实现可视化设计器(21)- 绘制图形(椭圆) 前端使用 Konva 实现可视化设计器(21)- 绘制图形(椭圆) 前端使用 Konva 实现可视化设计器(21)- 绘制图形(椭圆)
代码随想录Day21
669. 修剪二叉搜索树 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答
WPF:静态、动态资源以及资源词典
WPF:静态、动态资源以及资源词典 静态资源与动态资源 我们常常会使用样式或者控件模板放在Window.Resources中,比如这样: 静态资源与动态资源使用如下: &lt;Window.Resources&gt; &lt;SolidColorBrush x:Key=&quot;SolidColo
WPF:静态、动态资源以及资源词典 WPF:静态、动态资源以及资源词典 WPF:静态、动态资源以及资源词典
RabbitMQ 基础概念与架构设计及工作机制学习总结
什么是RabbitMQ MQ全称为Message Queue,即消息队列. 它也是一个队列,遵循FIFO原则 。RabbitMQ则是一个开源的消息中间件,由erlang语言开发,基于AMQP协议实现的一个软件产品,提供应用程序之间的通信方法,在分布式系统开发中广泛应用。 AMQP协议 AMQP,即A
RabbitMQ 基础概念与架构设计及工作机制学习总结 RabbitMQ 基础概念与架构设计及工作机制学习总结 RabbitMQ 基础概念与架构设计及工作机制学习总结
Java微信授权登录小程序接口
1.微信授权登录小程序的流程是什么 微信授权登录小程序的流程是一个涉及前端和后端交互的过程,主要目的是让用户能够使用微信账号快速登录小程序,避免重复输入用户名和密码。以下是该流程的详细步骤: 1.1前端操作 (1)触发登录: 用户在小程序中点击“登录”按钮或进入需要登录的页面时,系统会自动弹出授权登