当前位置: 首页 > news >正文

uni-appcss语法

锋哥原创的uni-app视频教程:

2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni-app简介、第2讲 uni-app环境搭建、第3讲 uni-app之HelloWorld实现等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1eG411N71c/uni-app 的 css 与 web 的 css 基本一致。

尺寸单位

uni-app 支持的通用 css 单位包括 px、rpx

  • px 即屏幕像素

  • rpx 即响应式 px,一种根据屏幕宽度自适应的动态单位。以 750 宽的屏幕为基准,750rpx 恰好为屏幕宽度。屏幕变宽,rpx 实际显示效果会等比放大,但在 App(vue2 不含 nvue) 端和 H5(vue2) 端屏幕宽度达到 960px 时,默认将按照 375px 的屏幕宽度进行计算

<template>个人中心页面<view class="c1"></view><view class="c2"></view>
</template>
​
<script>
</script>
​
<style lang="scss">.c1{width: 750rpx;height: 750rpx;background-color: $uni-color-error;}.c2{margin-top: 10px;width: 375rpx;height: 375rpx;background-color: $uni-bg-color-mask;}
</style>

样式导入

使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束。

common目录下新建test.css

.c3{margin-top: 10px;background-color: blue;width: 100rpx;height: 100rpx;
}

my.vue页面修改

加入 @import url("../common/test.css");

内联样式

框架组件上支持使用 style、class 属性来控制组件的样式。

  • style:静态的样式统一写到 class 中。style 接收动态的样式,在运行时会进行解析,请尽量避免将静态的样式写进 style 中,以免影响渲染速度。

<view :style="{color:color}" />

  • class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上.,样式类名之间用空格分隔。

<view class="normal_view" />

选择器

目前支持的选择器有:

选择器样例样例描述
.class.intro选择所有拥有 class="intro" 的组件
#id#firstname选择拥有 id="firstname" 的组件
elementview选择所有 view 组件
element, elementview, checkbox选择所有文档的 view 组件和所有的 checkbox 组件
::afterview::after在 view 组件后边插入内容,仅 vue 页面生效
::beforeview::before在 view 组件前边插入内容,仅 vue 页面生效

注意:

  • uni-app 中不能使用 * 选择器。

  • 微信小程序自定义组件中仅支持 class 选择器

  • page 相当于 body 节点,例如:

    <!-- 设置页面背景颜色,使用 scoped 会导致失效 -- > page {background-color: #ccc;
    }

全局样式与局部样式

定义在 App.vue 中的样式为全局样式,作用于每一个页面。在 pages 目录下 的 vue 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 App.vue 中相同的选择器。

注意:

  • App.vue 中通过 @import 语句可以导入外联样式,一样作用于每一个页面。

  • nvue 页面暂不支持全局样式

CSS变量

uni-app 提供内置 CSS 变量

CSS 变量描述App小程序H5
--status-bar-height系统状态栏高度系统状态栏高度、nvue 注意见下25px0
--window-top内容区域距离顶部的距离00NavigationBar 的高度
--window-bottom内容区域距离底部的距离00TabBar 的高度

注意:

  • var(--status-bar-height) 此变量在微信小程序环境为固定 25px,在 App 里为手机实际状态栏高度。

  • 当设置 "navigationStyle":"custom" 取消原生导航栏后,由于窗体为沉浸式,占据了状态栏位置。此时可以使用一个高度为 var(--status-bar-height) 的 view 放在页面顶部,避免页面内容出现在状态栏。

  • 由于在 H5 端,不存在原生导航栏和 tabbar,也是前端 div 模拟。如果设置了一个固定位置的居底 view,在小程序和 App 端是在 tabbar 上方,但在 H5 端会与 tabbar 重叠。此时可使用--window-bottom,不管在哪个端,都是固定在 tabbar 上方。

  • 目前 nvue 在 App 端,还不支持 --status-bar-height变量,替代方案是在页面 onLoad 时通过 uni.getSystemInfoSync().statusBarHeight 获取状态栏高度,然后通过 style 绑定方式给占位 view 设定高度。下方提供了示例代码

代码块

快速书写 css 变量的方法是:在 css 中敲 hei,在候选助手中即可看到 3 个 css 变量。(HBuilderX 1.9.6 以上支持)

示例 1 - 普通页面使用 css 变量:

<template><!-- HBuilderX 2.6.3+ 新增 page-meta, 详情:https://uniapp.dcloud.io/component/page-meta --><page-meta><navigation-bar /></page-meta><view><view class="status_bar"><!-- 这里是状态栏 --></view><view>状态栏下的文字</view></view>
</template>
<style>.status_bar {height: var(--status-bar-height);width: 100%;}
</style>

<template><view><view class="toTop"><!-- 这里可以放一个向上箭头,它距离底部tabbar上浮10px--></view></view>
</template>
<style>.toTop {bottom: calc(var(--window-bottom) + 10px);}
</style>

示例 2 - nvue 页面获取状态栏高度

<template><view class="content"><view :style="{ height: iStatusBarHeight + 'px'}"></view></view>
</template>
​
<script>export default {data() {return {iStatusBarHeight: 0,};},onLoad() {this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;},};
</script>

固定值

uni-app 中以下组件的高度是固定的,不可修改:

组件描述AppH5
NavigationBar导航栏44px44px
TabBar底部选项卡HBuilderX 2.3.4 之前为 56px,2.3.4 起和 H5 调为一致,统一为 50px。(但可以自主更改高度)50px

各小程序平台,包括同小程序平台的 iOS 和 Android 的高度也不一样。

Flex布局

为支持跨平台,框架建议使用 Flex 布局,关于 Flex 布局可以参考外部文档A Complete Guide to Flexbox、阮一峰的 flex 教程等。

背景图片

uni-app 支持使用在 css 里设置背景图片,使用方式与普通 web 项目大体相同,但需要注意以下几点:

  • 支持 base64 格式图片。

  • 支持网络路径图片。

  • 小程序不支持在 css 中使用本地文件,包括本地的背景图和字体文件。需以 base64 方式方可使用。

  • 使用本地路径背景图片需注意:

    1. 为方便开发者,在背景图片小于 40kb 时,uni-app 编译到不支持本地背景图的平台时,会自动将其转化为 base64 格式;

    2. 图片大于等于 40kb,会有性能问题,不建议使用太大的背景图,如开发者必须使用,则需自己将其转换为 base64 格式使用,或将其挪到服务器上,从网络地址引用。

    3. 本地背景图片的引用路径推荐使用以 ~@ 开头的绝对路径。

    .test2 {background-image: url('~@/static/logo.png');
    }

注意

  • 微信小程序不支持相对路径(真机不支持,开发工具支持)

字体图标

uni-app 支持使用字体图标,使用方式与普通 web 项目相同,需要注意以下几点:

  • 支持 base64 格式字体图标。

  • 支持网络路径字体图标。

  • 小程序不支持在 css 中使用本地文件,包括本地的背景图和字体文件。需以 base64 方式方可使用。

  • 网络路径必须加协议头 https

  • 从 http://www.iconfont.cn 上拷贝的代码,默认是没加协议头的。

  • 从 http://www.iconfont.cn 上下载的字体文件,都是同名字体(字体名都叫 iconfont,安装字体文件时可以看到),在 nvue 内使用时需要注意,此字体名重复可能会显示不正常,可以使用工具修改。

  • 使用本地路径图标字体需注意:

    1. 为方便开发者,在字体文件小于 40kb 时,uni-app 会自动将其转化为 base64 格式;

    2. 字体文件大于等于 40kb,仍转换为 base64 方式使用的话可能有性能问题,如开发者必须使用,则需自己将其转换为 base64 格式使用,或将其挪到服务器上,从网络地址引用;

    3. 字体文件的引用路径推荐使用以 ~@ 开头的绝对路径。

    @font-face {font-family: test1-icon;src: url('~@/static/iconfont.ttf');
    }

nvue中不可直接使用 css 的方式引入字体文件,需要使用以下方式在 js 内引入。nvue 内不支持本地路径引入字体,请使用网络链接或者base64形式。src字段的url的括号内一定要使用单引号。

var domModule = weex.requireModule('dom');
domModule.addRule('fontFace', {fontFamily: 'fontFamilyName',src: "url('https://...')",
});

示例:

<template><view><view><text class="test">&#xe600;</text><text class="test">&#xe687;</text><text class="test">&#xe60b;</text></view></view>
</template>
<style>@font-face {font-family: 'iconfont';src: url('https://at.alicdn.com/t/font_865816_17gjspmmrkti.ttf') format('truetype');}.test {font-family: iconfont;margin-left: 20rpx;}
</style>

相关文章:

uni-appcss语法

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…...

java在线票务系统(选座)Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 在线票务系统&#xff08;选座&#xff09;管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean&#xff08;mvc模式)&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要…...

Python 简易图形界面库easygui 对话框大全(续)

目录 EasyGUI库 主要特点 使用场景 对话框样式 10. 文件打开框 fileopenbox 11. 文件保存框 filesavebox 12. 目录打开框 diropenbox 13. 索引对话框 indexbox 14. 例外报告框 exceptionbox 15. 代码文本框 codebox 16. 密码输入框 passwordbox 17. 多重文本框 mul…...

电容器50ZLH56MEFC6.3X11

电容器 常用电子元器件类型 50ZLH56MEFC6.3X11 文章目录 电容器前言一、电容器二、50ZLH56MEFC6.3X11总结前言 电容器在电子电路中有许多重要的应用,如滤波、耦合、储能、定时等。不同类型的电容器具有不同的性能特点,例如电容量、工作电压、频率响应等。在选择和使用电容…...

vscode 支持c,c++编译调试方法

概述&#xff1a;tasks.jason launch.json settings.json一定要有&#xff0c;没有就别想跑。还有就是c 和c配置有区别&#xff0c;切记&#xff0c;下文有说 1.安装扩展插件。 2.安装编译器&#xff0c;gcc.我用的是x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z &#xf…...

MyBatis的缓存!!!!

为什么使用缓存&#xff1f; 首次访问时&#xff0c;查询数据库&#xff0c;并将数据存储到内存中&#xff1b;再次访问时直接访问缓存&#xff0c;减少IO、硬盘读写次数、提高效率 Mybatis中的一级缓存和二级缓存&#xff1f; 一级缓存: 它指的是mybatis中的SqlSession对象的…...

ToB还是ToC?工业级与消费级AR眼镜都能干什么?

随着科技的飞速发展&#xff0c;增强现实&#xff08;AR&#xff09;技术逐渐融入我们的日常生活。我国AR眼镜消费市场分为消费级和工业级应用。其中消费级主要分为游戏、影视、直播以及社交购物与旅游&#xff1b;工业级主要应用于医疗、汽车、工业、船舶、电力和仓储等专业领…...

设计模式-Java版本

文章目录 前言设计原则单一职责原则开闭原则里氏替换原则迪米特法则接口隔离原则依赖倒置原则 设计模式构建类型工厂模式抽象工厂建造者模式原型模式单例模式 结构型适配器模式桥接模式组合模式装饰器模式代理模式外观模式享元模式 行为模式责任链模式命令模式迭代器模式中介模…...

数据库中如何修改和删除字段

PS&#xff1a;在"[ ]"中的所有数据都是可修改的 添加表字段 ALTER TABLE [表名] add [添加的新字段名] [添加新的数据类型] COMMENT [昵称] alter&#xff1a;修改&#xff08;后面一般加table表示修改表&#xff09; add&#xff1a;添加一个字段 在这个里面c…...

在 Golang 应用程序中管理多个数据库

掌握在 Golang 项目中处理多个数据库的艺术 在当前软件开发领域中&#xff0c;处理单个应用程序内的多个数据库的需求越来越普遍。具有强大功能的 Golang 是处理此类任务的绝佳解决方案&#xff0c;无论您是与多个数据源合作还是仅为增强组织和可扩展性而分隔数据。在本文中&a…...

理解开源协议GPL、MIT、BSD、Apache License

开源协议是一种法律文件&#xff0c;规定了使用、修改和分享开源软件的规则和条件。以下是一些常见的开源协议及其相同点和区别&#xff1a;GPL&#xff08;GNU General Public License&#xff09;&#xff1a;GPL 是一种比较严格的开源协议&#xff0c;要求使用者如果对开源软…...

Talk | 北京大学博士生汪海洋:通向3D感知大模型的前置方案

本期为TechBeat人工智能社区第559期线上Talk。 北京时间12月28日(周四)20:00&#xff0c;北京大学博士生—汪海洋的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “通向3D感知大模型的前置方案”&#xff0c;介绍了他的团队在3D视觉大模型的前置方…...

【C语言数组传参】规则详解

目录 数组传参介绍 数组传参规则 数组传参的实参 特殊情况一&#xff1a;sizeof&#xff08;数组名&#xff09; 特殊情况二&#xff1a;&数组名 数组传参的形参 数组传参使用数组名作为形参接收 形参如果是⼀维数组 形参如果是⼆维数组 数组传参使用指针作为形参…...

【Linux】Ubuntu22.04版本下实现gcc版本的快速切换

本文将介绍如何在Ubuntu22.04版本下实现gcc版本的快速切换。 本文首发于 ❄️慕雪的寒舍 前言 有的时候&#xff0c;不同版本的gcc会造成一些细微的差异&#xff0c;导致相关的一些工具不兼容&#xff0c;比如用于单元测试覆盖率生成的gcov/lcov工具&#xff0c;在不同的gcc版…...

使用Node Exporter采集主机数据

安装 Node Exporter 在 Prometheus 的架构设计中&#xff0c;Prometheus Server 并不直接服务监控特定的目标&#xff0c;其主要任务负责数据的收集&#xff0c;存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西&#xff0c;如主机的 CPU 使用率&#xff0c;我们…...

Django 文件上传(十二)

当 Django 处理文件上传时&#xff0c;文件数据最终会被放置在 request.FILES 。 查看文档&#xff1a;文件上传 | Django 文档 | Django Django工程如下&#xff1a; 创建本地存储目录 在static/应用目录下创建uploads目录用于存储接收上传的文件 在settings.py 配置静态目…...

k8s的陈述式资源管理

k8s的陈述式资源管理&#xff1a; 命令行&#xff1a;kubectl命令行工具 优点&#xff1a;90%以上的场景都可以满足 对资源的增&#xff0c;删&#xff0c;查比较方便&#xff0c;对改不是很友好 缺点&#xff1a; 命令比较冗长&#xff0c;复杂&#xff0c;难记 声明式&…...

electron-builder 打包exe后白屏

项目用的是An Electron application with Vue3 and TypeScript。 Debug运行项目没问题&#xff0c;可以显示页面。不过有浏览器控制台显示错误&#xff1a; Unable to load preload script&#xff1a;preload/index.js Unable to load preload script 翻译后&#xff1a;无法…...

mvvm,vue双向数据绑定的原理

MVVM (Model-View-ViewModel) 是一种设计模式&#xff0c;主要用于构建用户界面。在 MVVM 中&#xff0c;Model 表示应用程序的数据&#xff0c;View 表示用户界面&#xff0c;而 ViewModel 是 Model 和 View 之间的连接器。MVVM 的核心思想是将视图与模型分离&#xff0c;使它…...

【Java中序列化的原理是什么(解析)】

&#x1f341;序列化的原理是什么&#xff1f; &#x1f341;典型-----解析&#x1f341;拓展知识仓&#x1f341;Serializable 和 Externalizable 接门有何不同? &#x1f341;如果序列化后的文件或者原始类被篡改&#xff0c;还能被反序列化吗?&#x1f341;serialVersionU…...

Unlock Music音乐解锁工具:5步实现跨平台音乐文件自由转换

Unlock Music音乐解锁工具&#xff1a;5步实现跨平台音乐文件自由转换 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: h…...

Python通达信数据获取终极指南:如何免费获取A股市场数据

Python通达信数据获取终极指南&#xff1a;如何免费获取A股市场数据 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 还在为金融数据分析而烦恼数据源问题吗&#xff1f;每次想要分析A股市场数据&a…...

避开这些坑,你的STM32四足机器人才能走得更稳:从步态调试到电源选择的完整避坑指南

STM32四足机器人实战避坑指南&#xff1a;从步态优化到系统稳定的全流程解决方案 当第一台自制的四足机器人颤颤巍巍地迈出第一步时&#xff0c;那种成就感无与伦比——直到它突然失去平衡翻倒在地。这个场景揭示了四足机器人开发中最真实的挑战&#xff1a;让机器人"能动…...

具身单月狂揽了200亿?!

点击下方卡片&#xff0c;关注“具身智能之心”公众号具身智能领域的投资人&#xff0c;现在大概是全中国最焦虑、也最亢奋的一群人。刚刚过去的4月&#xff0c;这个赛道丢下了两颗足以震动行业的“深水炸弹”&#xff1a;它石智航官宣完成4.55亿美金Pre-A轮融资&#xff0c;一…...

硬件工程师差旅数据安全与设备防护全攻略

1. 一次旅行噩梦引发的硬件工程师深度思考那次在曼彻斯特机场洗手间里&#xff0c;背包从门上一个简陋的金属挂钩上滑落&#xff0c;发出那声令人心悸的“咔嚓”声时&#xff0c;我脑子里闪过的第一个念头不是“我的电脑完了”&#xff0c;而是“完了&#xff0c;我所有的设计文…...

KLA 073-404555-00驱动板

KLA 073-404555 是一款用于工业伺服驱动系统的驱动板&#xff0c;结构紧凑、响应可靠&#xff0c;适用于电机驱动与控制应用。中间 15 条特点&#xff1a;板卡尺寸小巧&#xff0c;便于安装于驱动单元内部。支持宽电压输入范围&#xff0c;适应不同供电环境。驱动输出稳定&…...

工程师背包线缆管理实战:从Cord Hog到DIY收纳方案全解析

1. 项目概述&#xff1a;从“线缆地狱”到个人收纳方案的探索作为一名常年与各种开发板、调试器、电源适配器和数据线打交道的硬件工程师&#xff0c;我的背包简直就是个微缩版的电子实验室。每天通勤&#xff0c;包里除了笔记本电脑&#xff0c;必然塞满了USB线、串口线、JTAG…...

Windows进程内存操作实战:ClawMem库核心原理与应用指南

1. 项目概述&#xff1a;一个内存操作工具箱的诞生在软件开发和逆向工程领域&#xff0c;对进程内存进行安全、高效、可控的读写操作&#xff0c;是一个既基础又充满挑战的需求。无论是为了调试、分析程序行为&#xff0c;还是为了实现特定的功能扩展&#xff0c;直接与内存打交…...

【SI_DP2.0 01】一文深入了解DP2.0

1. DP概述1.1. DP版本演进版本发布年份核心速率关键技术/新增功能工程意义DP 1.02006单通道 2.7Gbps&#xff08;RBR/HBR&#xff09;初代标准&#xff0c;替代VGA/DVI&#xff0c;支持音视频同步传输奠定DP基础架构&#xff0c;定义Main-Link/AUX/HPD三层DP 1.1a2007同上加入H…...

模拟内存计算与ReRAM在触觉手势识别中的应用

1. 模拟内存计算技术概述模拟内存计算&#xff08;Analog In-Memory Computing&#xff0c;简称AiMC&#xff09;正在彻底改变传统计算架构的设计范式。这项技术的核心突破在于打破了困扰计算领域长达半个多世纪的"冯诺依曼瓶颈"——即处理器与存储器之间的数据搬运带…...