七葉の喫茶ステラ
✨

七葉の喫茶ステラ

=技术与美日新月异=

CSS 三大特性、盒子模型

CSS 三大特性、盒子模型

CSS 三大特性 层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式. 层叠性主要解决样式冲突的问题 层叠性原则: 样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式 样式不冲突,不会层叠 继承性 CSS中的继承:子标签会继承父标签的某些样式,如文本颜色和字号。恰当地使用继承可以简化代码,降低 CSS 样式的复杂性。 子元素可以继承父元素的样式:(text、font、line 这些元素开头的可以继承,以及 color 属性) 行高的继承性: 行高可以跟单位也可以不跟单位 如果子元素没有设置行高,则会继承父元素的行高为 1.5 此时子元素的行高是:当前
more...
CSS 复合选择器、显示模式、背景

CSS 复合选择器、显示模式、背景

Emmet语法 简介 Emmet 语法的前身是 Zen coding,它使用缩写来提高 HTML/CSS 的编写速度。 快速生成HTML结构语法 生成标签:直接输入标签名,按 tab 键即可。比如 div 然后 tab 键, 就可以生成 。 如果想要生成多个相同标签 ,加上 就可以了。比如 div3 就可以快速生成 3 个 div。 如果有父子级关系的标签,可以用 > 。比如 ul > li。 如果有兄弟关系的标签,用 + 就可以了。比如 div+p。 如果生成带有类名或者 id 名字的,直接写 .demo 或者 #two, tab 键就可以了。 如果生成的div 类名是有顺序的, 可以用 自
more...
CSS 字体和文本

CSS 字体和文本

CSS 选择器 CSS 基础选择器 基础选择器又包括:标签选择器、类选择器、id 选择器和通配符选择器 标签选择器 标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式。 语法:标签选择器 { 属性:属性值; ...} 作用:标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式。 类选择器 如果想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器 语法:.类名 { 属性1: 属性值1; ...} 结构需要用class属性来调用 class 类的
more...
HTML 基础

HTML 基础

基本结构标签 常用标签 标题标签 单词 head 的缩写,意为头部、标题 特点: 1. 加了标题的文字会变的加粗,字号也会依次变大。 2. 一个标题独占一行。 段落和换行标签 单词 paragraph 的缩写,意为段落 特点 1. 文本在一个段落中会根据浏览器窗口的大小自动换行。 2. 段落和段落之间保有空隙。 单词 break 的缩写,意为打断、换行。 特点: 1. 是个单标签。 2. 标签只是简单地开始新的一行,跟段落不一样,段落之间会插入一些垂直的间距。 文本格式化标签 布局标签 div 是 division 的缩写,表示分割、分区。 span 意为跨度、跨距。 图像标签 单词 imag
more...
STL 序列式容器

STL 序列式容器

标准模版库 Standard Template Library(STL),是一种高效且功能强大的 C++ 程序库,被纳入 C++ 标准库中,是 ANSI/ISO C++ 规范中最新且具有创新性的一部分。它包含了计算机科学中常用的基本数据结构和算法,为 C++ 开发者提供了一个可扩展的框架,体现了软件复用性。 STL 采用了泛型编程模式,与面向对象编程不同,它允许编写适用于多种数据类型的通用代码。这种模式通过抽象化数据类型,使用泛型代替具体类型,来实现代码的通用性。 STL 虽然复杂,但可以概括为六个主要组件:容器、迭代器、算法、适配器、函数对象和空间配置器。 1. 容器:提供数据结构,分为序列
more...
C++ 资源管理

C++ 资源管理

RAII 技术 RAII(Resource Acquisition Is Initialization)是 C++ 中一种重要的资源管理技术,由 C++之父 Bjarne Stroustrup 提出。它利用对象的生命周期来管理资源,确保资源在对象生命周期结束时自动释放。RAII 通过构造函数获取资源,并在析构函数中释放资源,从而避免了资源泄漏。 RAII 的核心思想 1. 资源获取即初始化:在对象构造时获取资源。 2. 自动资源释放:在对象析构时自动释放资源。 这种模式确保了即使在发生异常或多个退出路径的情况下,资源也能被正确释放。 在这个例子中,SafeFile 类在构造函数中打开文件,在析
more...
C++ 移动语义

C++ 移动语义

移动语义(Move Semantics) 在 C++ 11 之前,当对象作为函数参数传递,或者从函数返回,或者作为复制构造函数的参数时,经常会造成不必要的性能开销,因为这些操作会进行对象的拷贝,包括其资源的拷贝(如动态分配的内存)。为了解决这个问题,C++ 11 引入了移动语义。 为什么要用移动语义? 移动语义 的核心思想是,当一个临时对象提供了右值引用时,可以将其内部资源“移动”到新的对象中,而不是进行复制。这样,新对象可以重用临时对象的资源,而临时对象在移动后会处于有效但未定义的状态。 好处: 1. 性能提升:避免了不必要的资源复制,减少了性能开销。 2. 资源利用:可以重用临时对象的资源
more...
C++ 模板

C++ 模板

C++ 作为一种静态类型、编译型语言,需要在编译时确定所有类型。为了在保持类型安全的同时提供灵活性,C++ 引入了模板机制,使得我们能够编写泛型代码。 模板是一种将数据类型作为参数传递给函数或类的通用机制。通过使用模板,我们可以编写与类型无关的代码,这些代码在编译时会针对特定的数据类型进行实例化。 为什么要定义模板 在静态类型语言中,变量的类型在编译时必须已知,这有助于编译器进行类型检查和优化。然而,这也意味着我们需要为每种类型编写特定的函数或类,这增加了代码的冗余和维护的复杂性。 与静态类型语言相对的是动态类型语言,如 Python 和 JavaScript,它们在运行时确定变量的类型。这种
more...
C++ 多态

C++ 多态

多态 多态是面向对象编程的核心特征之一,它允许以统一的接口处理不同类型的对象。 什么是多态? 多态 允许不同的类的对象对同一消息做出不同的响应。简单来说,就是同一个函数或方法在不同的对象中可以有不同的实现。这样,当我们调用一个对象的方法时,无需知道对象的具体类型,就可以执行相应的行为。 为什么需要多态性? 多态性 带来以下好处: 代码复用:通过继承和接口实现代码的复用。 解耦:多态可以降低类之间的耦合度,提高代码的可维护性。 扩展性:多态使得在不修改现有代码的情况下,可以轻松添加新的类。 灵活性:多态提供了更高的灵活性,使得同一个操作可以应用于不同的对象。 C++ 中的多态性 C++ 支持两种
more...
C++ 继承

C++ 继承

继承 继承的基本概念 在 C++中,继承是一种重要的面向对象编程特性,它允许我们建立类之间的层次关系,实现代码的重用和扩展。 继承的概念: 基类(父类):被继承的类称为基类,它定义了可以被其他类继承的属性和方法。 派生类(子类):从基类继承而来的类称为派生类,它继承了基类的属性和方法,并可以添加自己的属性和方法。 在派生类的定义中,需要在类名前指定继承方式和基类名。 C++ 支持三种继承方式: 1. public 继承:基类的公有成员和保护成员在派生类中保持原有的访问属性。 2. protected 继承:基类的公有成员和保护成员在派生类中都变为保护成员。 3. private 继承:基类的公
more...