HTML5 元素 h
部件 h
是一个简单的HTML5标签生成器,它用来生成渲染到前端的HTML源码。
用法
h
部件内部通过 h类
实现,h类
使用魔术方法 __callStatic()
,为每个方法生成对应的HTML标签,例如 h::div()
方法对应的是 <div>
标签,h::span()
方法对应的是 <span>
标签,以此类推。
有4种方式可以生成以下HTML代码:
html
<div class="success" id="zin">
Hello, zin!
</div>
1、静态方法
php
h::div
(
set::id('zin'),
set::class('success'),
'hello, zin'
);
html
<div class="success" id="zin">
Hello, zin!
</div>
2、h
类
php
new h
(
set::tagName('div'), // 标签名
set::id('zin'),
set::class('success'),
'hello, zin'
);
html
<div class="success" id="zin">
Hello, zin!
</div>
3、h()
函数
php
h
(
'div', // 标签名
set::id('zin'),
set::class('success'),
'hello, zin'
);
html
<div class="success" id="zin">
Hello, zin!
</div>
4、部件函数
zin
框架内置了一些基于 h
部件的 HTML5
部件函数,例如 div()
、span()
、code()
、canvas()
、form()
、br()
、a()
、p()
等,它们的用法与 h
部件的函数用法一致。
php
div
(
set::id('zin'),
set::class('success'),
'hello, zin'
);
html
<div class="success" id="zin">
Hello, zin!
</div>
属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
tagName | string | - | 标签名。 |
selfClose | bool | false | 是否为自闭合标签。 |
方法
h::js()
输出JS代码。
php
h::js
(
'console.log("hello, zin!");'
);
JavaScript
<script>
(
function()
{
console.log("hello, zin!");
}()
)
</script>
h::jsVar()
输出JS变量。
单个变量
php
h::jsVar
(
'langConfirm', // 变量名
'确定' // 变量值
);
JavaScript
<script>
(
function()
{
const langConfirm = '确定';
}()
)
</script>
多个变量
php
h::jsVar
(
[
'langConfirm' =>'确定',
'langDelete' =>'删除'
],
null
);
JavaScript
<script>
(
function()
{
const langConfirm = '确定';
const langDelete = '删除';
}()
)
</script>
h::jsCall()
JS函数调用。
通用调用
php
h::jsCall
(
'console.log', // 函数名
'JsCall' // 函数参数
);
JavaScript
<script>
(
function()
{
console.log("JsCall");
}()
)
</script>
文档加载完成后调用
JS函数名前加 ~
,表示在文档加载完成后调用。
php
h::jsCall
(
'~console.log', // 函数名
'JsCall' // 函数参数
);
JavaScript
<script>
(
function()
{
$(() => console.log("JsCall"));
}()
)
</script>
h::jsRaw()
输出原生JS代码。
php
// h::jsRaw 将 字符串 'console.log' 输出为原生JS代码
h::jsVar('window.callback', h::jsRaw('console.log'));
h::jsCall('~window.callback', 'Js Raw');
JavaScript
<script>
(
function()
{
// h::jsRaw 将 字符串 'console.log' 输出为原生JS代码
window.callback=console.log;
}()
)
</script>
<script>
(
function()
{
$(() => window.callback("Js Raw"));
}()
)
</script>
h::script()
输出JS代码。
php
h::script('(function(){console.log(\'hello, zin!\');}())');
JavaScript
<script>
(
function()
{
console.log('hello, zin!');
}()
)
</script>
提示
h::script()
函数与 h::js()
函数的区别是,h::script()
函数输出的JS代码不会被包裹在 (function(){}())
中。
h::css()
输出CSS代码。
php
h::css('body{background-color:#F00;}');
html
<style>
body{background-color:#F00;}
</style>
提示
h::css()
函数与 setStyle()
函数的区别是,h::css()
函数输出的CSS代码包裹在 <style></style>
中, 而 setStyle()
函数设置的是HTML标签的 style
属性。
h::importCss()
导入外部CSS文件。
php
h::importCss('/js/zui3/zui.zentao.css');
html
<link rel="stylesheet" href="/js/zui3/zui.zentao.css">
h::importJs()
导入外部JS文件。
php
h::importCss('/js/zui3/zui.zentao.umd.cjs');
html
<script src="/js/zui3/zui.zentao.umd.cjs"></script>
h::import()
导入外部CSS或JS文件。
php
h::import
(
[
'/js/zui3/zui.zentao.umd.cjs',
'/js/zui3/zui.zentao.css'
]
);
html
<script src="/js/zui3/zui.zentao.umd.cjs"></script>
<link rel="stylesheet" href="/js/zui3/zui.zentao.css">
基于 h类
的内置部件
函数名 | 对应标签 |
---|---|
div() | <div> |
span() | <span> |
code() | <code> |
canvas() | <canvas> |
form() | <form> |
br() | <br> |
a() | <a> |
p() | <p> |
img() | <img> |
button() | <button> |
h1() | <h1> |
h2() | <h2> |
h3() | <h3> |
h4() | <h4> |
h5() | <h5> |
h6() | <h6> |
ul() | <ul> |
li() | <li> |
input() | <input> |
textarea() | <textarea> |
非魔术方法 部件
魔术方法 | 对应标签 |
---|---|
h::file() | <input type="file"> |
h::date() | <input type="date"> |
h::radio() | <input type="radio"> |
h::checkbox() | <input type="checkbox"> |
h::input() | <input type="text"> |
h::button() | <button type="button"> |
h::textarea() | <textarea> |