給Web開發者的HarmonyOS指南02-布局樣式

給Web開發者的HarmonyOS指南02-布局樣式

本系列教程適合鴻蒙 HarmonyOS 初學者,為那些熟悉用 HTML 與 CSS 語法的 Web 前端開發者準備的。

本系列教程會將 HTML/CSS 代碼片段替換為等價的 HarmonyOS/ArkUI 代碼。

請添加圖片描述

布局基礎對比

在Web開發中,我們使用CSS來控制元素的布局和樣式。而在HarmonyOS的ArkUI中,我們使用聲明式UI和鏈式API來實現相同的效果。本文將對比兩種框架在布局方面的異同。

盒子模型

在Web開發中,CSS盒子模型包含內容(content)、內邊距(padding)、邊框(border)和外邊距(margin)。
在ArkUI中,這些概念依然存在,只是寫法有所不同,容易上手。

HTML/CSS代碼:

<div class="box">盒子模型
</div><style>.box {box-sizing: border-box;/* 內容 */width: 150px;height: 100px;/* 內邊距 */padding: 10px;/* 邊框 */border: 10px solid pink;/* 底部外邊距 */margin-bottom: 10px;}
</style>

ArkUI代碼:

Text('盒子模型').width(150).height(100).padding(10).border({ width: 10, style: BorderStyle.Solid, color: Color.Pink }).margin({ bottom: 10 })

背景色和文字顏色

在Web開發中,我們使用 background-colorcolor 屬性來設置背景色和文字顏色。
在ArkUI中,我們使用 backgroundColorfontColor 方法。

HTML/CSS代碼:

<div class="box">背景色、文字色
</div><style>.box {/* 背景色 */background-color: #36d;/* 文字色 */color: #fff;}
</style>

ArkUI代碼:

Text('背景色、文字色').backgroundColor('#36d').fontColor('#fff')

內容居中

在Web開發中,我們使用 display: flex 配合 justify-contentalign-items 實現內容居中。
在ArkUI中,我們可以使用 ColumnRow 組件配合 justifyContentalignItems 屬性。

HTML/CSS代碼:

<div class="box">內容居中
</div><style>.box {display: flex;justify-content: center;align-items: center;}
</style>

ArkUI代碼:

Column() {Text('內容居中')
}
.backgroundColor('#36D')
.justifyContent(FlexAlign.Center)
.alignItems(HorizontalAlign.Center)
.width(150)
.height(100)
.padding(10)

圓角

在Web開發中,我們使用border-radius屬性來設置圓角。
在ArkUI中,我們使用borderRadius方法。

HTML/CSS代碼:

<div class="box">圓角
</div><style>.box {border-radius: 10px;}
</style>

ArkUI代碼:

Text('圓角').width(150).height(100).backgroundColor('#36D').borderRadius(10)

陰影效果

在Web開發中,我們使用box-shadow屬性來設置陰影效果。
在ArkUI中,我們使用shadow方法。

HTML/CSS代碼:

<div class="box">陰影
</div><style>.box {box-shadow: 0 6px 50px rgba(0, 0, 0, 0.5);}
</style>

ArkUI代碼:

Text('陰影').width(150).height(100).backgroundColor('#F5F5F5').shadow({offsetX: 0,offsetY: 6,radius: 50,color: 'rgba(0, 0, 0, 0.5)',})

布局容器和軸向

基本容器

在Web開發中,我們使用<div>作為通用容器。
在ArkUI中,我們主要使用ColumnRow組件,注意 alignItems 需區分軸向。

HTML/CSS代碼:

<div class="column"><!-- 垂直方向布局 -->
</div><div class="row"><!-- 水平方向布局 -->
</div><style>.column {display: flex;flex-direction: column;align-items: center;}.row {display: flex;flex-direction: row;align-items: center;}
</style>

ArkUI代碼:

Column() {// 垂直方向布局,交叉軸水平居中
}
.alignItems(HorizontalAlign.Center)Row() {// 水平方向布局,交叉軸垂直居中
}
.alignItems(VerticalAlign.Center)

關鍵區別總結

  1. 樣式應用方式

    • HTML/CSS:使用選擇器和屬性聲明樣式
    • ArkUI:使用鏈式API直接在組件上設置樣式
  2. 布局容器

    • HTML:使用 <div> 等標簽,配合CSS實現布局
    • ArkUI:使用專門的布局組件如 ColumnRow 等組件,配合樣式屬性布局
  3. 單位使用

    • HTML/CSS:使用 px、em、rem、百分比等單位
    • ArkUI:使用 px、vp、lpx 、百分比等單位,使用數字單位 vp 可省略
  4. 樣式繼承

    • HTML/CSS:通過CSS選擇器實現樣式繼承
    • ArkUI:沒有樣式繼承

學習建議

  1. 理解鏈式API

    • 熟悉ArkUI的鏈式API調用方式
    • 掌握常用樣式方法的命名規則
  2. 布局思維轉變

    • 從CSS盒模型思維轉向組件化思維
    • 理解ArkUI的布局容器特性
  3. 樣式設置習慣

    • 養成使用鏈式API設置樣式的習慣
    • 注意樣式方法的參數格式
  4. 組件嵌套

    • 合理使用組件嵌套實現復雜布局
    • 注意組件的父子關系

總結

作為Web開發者,遷移到 HarmonyOS 開發需要適應新的布局和樣式設置方式。概念其實非常相似,通過理解這些差異,并掌握ArkUI的組件化開發方式,Web開發者可以快速上手HarmonyOS開發。

希望這篇 HarmonyOS 教程對你有所幫助,期待您的 👍點贊、💬評論、🌟收藏 支持。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899118.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899118.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899118.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

京東軟件測試崗位經典面試題(附答案)

1、黑盒測試的測試用例常見設計方法都有哪些&#xff1f;請分別以具體的例子來說明這些方法在測試用例設計工作中的應用。 1&#xff09;等價類劃分&#xff1a;等價類是指某個輸入域的子集合.在該子集合中&#xff0c;各個輸入數據對于揭露程序中的錯誤都是等效的.并合理地假…

3.26[a]paracompute homework

5555 負載不平衡指多個線程的計算量差異顯著&#xff0c;導致部分線程空轉或等待&#xff0c;降低并行效率。其核心矛盾在于任務劃分的靜態性與計算動態性不匹配&#xff0c;尤其在處理不規則數據或動態任務時尤為突出。以稀疏矩陣的向量乘法為例&#xff0c;假設其非零元素分…

網站安全專欄-------淺談CC攻擊和DDoS攻擊的區別

CC攻擊和DDoS攻擊都是網絡攻擊的類型&#xff0c;但它們在攻擊方式、目標和效果上有所不同。以下是它們之間的一些主要區別&#xff1a; ### 1. 定義 - **DDoS攻擊&#xff08;分布式拒絕服務攻擊&#xff09;**&#xff1a; DDoS攻擊是指攻擊者通過大量的分布式計算機&#x…

帕金森患者的生活重塑:從 “嘴” 開啟康復之旅

當提到帕金森病&#xff0c;許多人會聯想到震顫、僵硬和行動遲緩等癥狀。這種神經系統退行性疾病&#xff0c;給患者的生活帶來了巨大的挑戰。然而&#xff0c;你可知道&#xff0c;帕金森患者恢復正常生活&#xff0c;可以從 “嘴” 開始管理&#xff1f; 帕金森病在全球影響著…

Android14 Settings應用添加有線網開關條目實現

Android14 Settings應用添加有線網開關條目 文章目錄 Android14 Settings應用添加有線網開關條目一、前言二、適配修改1、network_provider_settings.xml2、NetworkProviderSettings.java3、TurnOnOffEthernetNetworkController.java4、去除有線網提示條目。5、效果UI&#xff…

Axure RP設計軟件中的各種函數:包括數字、數學、字符串、時間及中繼器函數,詳細解釋了各函數的用途、參數及其應用場景。

文章目錄 引言函數分類數字函數數學函數字符串函數時間函數函數中繼器函數引言 在axure交互設計時,函數可以用在條件公式和需要賦值的地方,其基本語法是用雙方括號包含,變量值和函數用英文句號連接。 在交互事件編輯器中通過fx按鈕插入函數表達式,例如設置文本內容為: …

c#難點整理3

1.靜態類的說明 a.靜態類里不能定義實例方法&#xff0c;實例屬性&#xff0c;所以說非靜態類是無法繼承靜態類的。父類無法擁有實例化的方法和屬性&#xff0c;子類可以&#xff0c;這從邏輯上是矛盾的&#xff0c;不符合繼承的邏輯。 b.那么靜態類與靜態類之間能否繼承能呢…

AIP-191 文件和目錄結構

編號191原文鏈接https://google.aip.dev/191狀態批準創建日期2019-07-25更新日期2019-07-25 統一的文件和目錄結構&#xff0c;雖然在技術上差別不大&#xff0c;但可以讓用戶和審查者更容易閱讀API界面定義。 指南 注意 以下指南適合于使用protobuf定義的API&#xff0c;例如…

Win11+VS2022+CGAL5.6配置

1. CGAL庫簡介 CGAL&#xff08;Computational Geometry Algorithms Library&#xff09;是一個開源的計算幾何算法庫&#xff0c;主要用于處理幾何問題和相關算法的實現。它提供了豐富的幾何數據結構和高效算法&#xff0c;覆蓋點、線、多邊形、曲面等基本幾何對象的表示與操…

手搓全自動文章多平臺發布系統:5、跨頁面接入playwright類,修改ui_components.py,整合到main.py

昨天已經要多上下文,單上下文的模塊中測試成功了,今天要想法接入。 整理完成的所有代碼如下: 結構如圖: main.py import sys from PyQt6 import QtWidgets from modules.ui_components import TableManager # 導入界面類 import asyncio# 在主函數中使用 qasync 整合事…

漲薪技術|使用Dockerfile創建鏡像

上次的推文內容中介紹了如何使用docker commit的方法來構建鏡像&#xff0c;相反推薦使用被稱為Dockerfile的定義文件和docker build命令來構建鏡像。Dockerfile使用基本的基于DSL語法的指令來構建一個Docker鏡像&#xff0c;之后使用docker build命令基于該Dockerfile中的指令…

rkipc的h265設置

資料的位置 源代碼在luckfox-pico/project/app/rkipc/rkipc/src/rv1106_ipc/video/video.c中&#xff0c;使用了rkmpi庫&#xff0c;參考資料為"doc/zh/media/Rockchip_Developer_Guide_MPI.pdf" 通道設置設置 H265的通道設置主要由rkipc_pipe_0_init完成&#xf…

成都國際數字影像產業園:打造數字影像產業新高地

成都國際數字影像產業園&#xff1a;打造數字影像產業新高地 成都國際數字影像產業園正致力于構筑數字影像產業的新高地&#xff0c;成為推動區域數字經濟發展的重要引擎。 核心定位與目標 該園區精準定位于數字影像文創產業&#xff0c;旨在打造集內容創作、技術研發、人才…

各類神經網絡學習:(三)RNN 循環神經網絡(中集),同步多對多結構的詳細解釋

上一篇下一篇RNN&#xff08;上集&#xff09;RNN&#xff08;下集&#xff09; 同步多對多結構 1&#xff09;結構詳解 ①圖解&#xff1a; ②參數含義&#xff1a; x t x_t xt? &#xff1a;表示每一個時刻的輸入&#xff1b; o t o_t ot? &#xff1a;表示每一個時刻的輸…

Perl 環境安裝指南

Perl 環境安裝指南 引言 Perl是一種廣泛使用的解釋型、動態編程語言,以其強大的文本處理能力和靈活性著稱。本文將為您詳細介紹Perl環境的安裝過程,包括系統要求、安裝步驟以及注意事項。 系統要求 在安裝Perl之前,請確保您的計算機滿足以下基本要求: 操作系統:Window…

【嵌入式學習2】C語言 - VScode環境搭建

目錄 ## 語言分類 ## c語言編譯器 ## VScode相關配置 ## 語言分類 編譯型語言&#xff1a;C&#xff0c;C解釋型語言&#xff1a;python&#xff0c;JS ## c語言編譯器 分類GCC 系列MinGWCygwinMSVC系列一套編程語言編譯器將GCC編譯器和GNU Binutils移植到Win32平臺下的產物…

qt+opengl 加載三維obj文件

1前面我們已經熟悉了opengl自定義頂點生成一個立方體&#xff0c;并且我們實現了立方體的旋轉&#xff0c;光照等功能。下面我們來用opengl來加載一個obj文件。準備我們首先準備一個簡單的obj文件&#xff08;head.obj&#xff09;。資源在本頁下載 2 在obj文件里面&#xff0c…

0326-Java 字符串方法

package com.qc.字符串;import java.util.Arrays;public class Test {public static void main(String[] args) { // String x"hello";//字符串 char[] // x x"demo";//字符串拼接 // xx2450; // xxtrue; // System.out.println(x);//hellodemo2450t…

<command-line>:0:1: error: macro names must be identifiers m

報錯&#xff1a;:0:1: error: macro names must be identifiers 排查類很久 原來是&#xff1a; add_compile_definitions(_GLIBCXX_USE_CXX11_ABI$ABI_VERSION)寫成了 add_compile_definitions(-D_GLIBCXX_USE_CXX11_ABI$ABI_VERSION)多了個 -D。

風光互補智慧路燈的燈桿設計有哪些要求?

嘿&#xff0c;朋友們&#xff01;叁仟風光互補智慧路燈的燈桿設計那可是超級重要的事兒&#xff0c;得全方位綜合考量各種因素&#xff0c;就是為了確保咱們的路燈能兼具超棒的功能性、絕對的安全性、無敵的美觀性以及超厲害的耐用性&#xff01;下面就來看看這些超贊的常見要…