前端css基础知识学习

CSS(层叠样式表)的主要作用是美化网页和布局页面,它与HTML协同工作,实现结构与样式的分离。HTML负责内容结构,而CSS通过选择器(如标签、类和ID)设定文本、图片及页面布局的样式。类选择器允许对特定标签应用样式,ID选择器则确保唯一性。常用属性包括字体家族、大小、颜色、样式和粗细等,通过复合属性如`font`简化设置。在实际开发中,CSS的合理使用能提高代码复用性和页面性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

css主要作用:美化网页、布局页面

html负责结构、css负责美化布局(一位网页美容师)

css是层叠样式表的简称(style)

css和html一样是一种标记语言;主要设置html页面的文本内容(字体、大小、对齐方式);

图片外形(宽高边距)、以及版面的布局和外观显示样式。

css作用:美化网页、布局简单。

简单总结:

  1. html主要做结构,显示元素内容。
  2. css美化html、布局网页。
  3. css最大的价值:由html专注做结构呈现、样式交给css,即结构(html)样式(css)分离。

css规则:
两个主要部分构成:选择器+声明(属性对应值{: ;...})

选择器:

指定css样式的html标签,花括号内是该对象的样式。

属性和属性值以“键值对”的形式出现

属性例如文字字体,大小,颜色

属性与属性值以;分开

css代码风格:
空格规范 选择器后 :后

css选择器:什么叫做选择器?选择标签  简单来说就两步:找到人 做对事

基础选择器

  1. 标签选择器
  2. 类(class)选择器
  3. 属性(id)选择器
  4. 通用选择器(*)

复合选择器

标签选择器:为某一标签整体进行修改

作用:

可以把某一类的标签全部选择出来,例如div soan

优点:

快速设置同一类型的标签统一样式

缺点:

不能设计差异化,只能选择全部标签 不能指定某一个标签进行变化

 类选择器:
class(.)

注意:

类选择器使用. 标识

可以理解为这个标签起了起个名字

长名称或者词组可以使用横线来命名

不要使用纯数字、中文 尽量使用完整拼写或单词

 案例:div盒子创建一个红绿红

 可见,类选择器是对指定的标签或者几个标签进行变化。

各个类名中间使用空格隔开

简单理解:就是某个标签添加了多个类

这个标签可以分别具有这些类名的样式

节省css代码 更加独立方便 与编程的是函数一样

多类名选择器在后期布局比较复杂的情况下,使用较多。

id选择选择器:id# 只能使用一次 别人不能使用

与类选择器差不多的用法

id在html里文档只出现一次 口诀:css样式#定义 html结构id调用 别人不要使用。

id选择器和类选择器的区别:

class好比名字 多个人可以叫每一个名字

id好比身份证 身份证是唯一的

最大不同:在于使用次数不同

类选择器在修改样式中用的最多 id选择器一般用于页面唯一的元素

通用选择器:

css中,使用"*" 

*{

.....

}

通用选择器不需要调用 自动匹配所有的样式

特殊情况才会使用  清除所有元素标签的内外边距

修改样式类选择器使用较多

设置字体:
font-family属性定义文本的字体系列

各种文体之间必须使用英文逗号隔开

一般情况下 有空格隔开的单词需要加""

尽量使用系统自带的字体规范 保证正确显示

最常使用的字体:body font-family:'Microsoft YaHei',tahoma,"Hiragino Sans GB"

直接在body里面设置

字体大小:
css使用font-size属性定义字体的大小  数字范围(100~900)

px(像素) ,chrome默认16px

,bold设置粗细   font-weight:400/700(namal/bold)

实际开发使用数字(不加单位 没有px)

字体粗细:
font-weight  400标准  700粗大

 文字样式:font-style     (正常normal/斜体italic)

注意:这个font-style很少使用 一般使用 (em/i)倾斜字体

 顺序不能变:

font:style weight size/line-hight family

font:必须含有 size和family!!!

字体属性的总结:

cssFont(字体)属性用于定义字体、系列、粗细、文本样式(如italic斜体)

font-style:字体样式   normal italic

font-weight:字体粗细 400 700 开发中使用num标准

font-size:字体大小      数字 单位px(像素)

font-family:字体 按需要选择

复合属性:font:按顺序书写!!!

### 使用Transformer模型进行图像分类的方法 #### 方法概述 为了使Transformer能够应用于图像分类任务,一种有效的方式是将图像分割成固定大小的小块(patches),这些小块被线性映射为向量,并加上位置编码以保留空间信息[^2]。 #### 数据预处理 在准备输入数据的过程中,原始图片会被切分成多个不重叠的patch。假设一张尺寸为\(H \times W\)的RGB图像是要处理的对象,则可以按照设定好的宽度和高度参数来划分该图像。例如,对于分辨率为\(224\times 224\)像素的图像,如果选择每边切成16个部分的话,那么最终会得到\((224/16)^2=196\)个小方格作为单独的特征表示单元。之后,每一个这样的补丁都会通过一个简单的全连接层转换成为维度固定的嵌入向量。 ```python import torch from torchvision import transforms def preprocess_image(image_path, patch_size=16): transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), # 假设目标分辨率是224x224 transforms.ToTensor(), ]) image = Image.open(image_path).convert('RGB') tensor = transform(image) patches = [] for i in range(tensor.shape[-2] // patch_size): # 高度方向上的循环 row_patches = [] for j in range(tensor.shape[-1] // patch_size): # 宽度方向上的循环 patch = tensor[:, :, i*patch_size:(i+1)*patch_size, j*patch_size:(j+1)*patch_size].flatten() row_patches.append(patch) patches.extend(row_patches) return torch.stack(patches) ``` #### 构建Transformer架构 构建Vision Transformer (ViT),通常包括以下几个组成部分: - **Patch Embedding Layer**: 将每个图像块转化为低维向量; - **Positional Encoding Layer**: 添加绝对或相对位置信息给上述获得的向量序列; - **Multiple Layers of Self-Attention and Feed Forward Networks**: 多层自注意机制与前馈神经网络交替堆叠而成的核心模块; 最后,在顶层附加一个全局平均池化层(Global Average Pooling)以及一个多类别Softmax回归器用于预测类标签。 ```python class VisionTransformer(nn.Module): def __init__(self, num_classes=1000, embed_dim=768, depth=12, num_heads=12, mlp_ratio=4., qkv_bias=False, drop_rate=0.): super().__init__() self.patch_embed = PatchEmbed(embed_dim=embed_dim) self.pos_embed = nn.Parameter(torch.zeros(1, self.patch_embed.num_patches + 1, embed_dim)) self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dim)) dpr = [drop_rate for _ in range(depth)] self.blocks = nn.Sequential(*[ Block( dim=embed_dim, num_heads=num_heads, mlp_ratio=mlp_ratio, qkv_bias=qkv_bias, drop=dpr[i], ) for i in range(depth)]) self.norm = nn.LayerNorm(embed_dim) self.head = nn.Linear(embed_dim, num_classes) def forward(self, x): B = x.shape[0] cls_tokens = self.cls_token.expand(B, -1, -1) x = self.patch_embed(x) x = torch.cat((cls_tokens, x), dim=1) x += self.pos_embed x = self.blocks(x) x = self.norm(x) return self.head(x[:, 0]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值