H5中header标签应该如何使用

H5中header标签应该如何使用,第1张

在HTML5之前的版本大家可能有用DIV标签布局网页的习惯,但是H5在DIV标签的基础上增加了header标签元素,也就是我们说的头部标签,以往我们在布局中常常把网页分为头部,内容,底部,现在已经有系统的标签来帮我们规划,也是方便了很多,那么这个header标签需要怎么使用呢?今天我们就来好好的研究一下

正应为大家公认html布局中对“header”为常用命名,所以在HTML5新增了个header标签元素。可以这样理解为什么在html5中新增header为标签元素。

除了直接使用header标签外,也可以对header设置class或id。

语法结构

header标签元素和p用法相同。有开始有闭合。

语法:

1

<header>内容</header>

直接不给id或class

1

<header>头部内容区</header>

设置id

1

<header id=”p”>头部内容区</header>

设置class

1

<header class=”p”>头部内容区</header>

特点:就像DIV标签元素一样可以多次使用,不同地方可以使用id或class设置不同样式。

兼容性

因为header标签是HTML5新增标签元素,所以旧版本浏览器均不支持,需要IE9+以上浏览器、最新谷歌Chrome等浏览器才支持。当然国内360浏览器、百度浏览器、遨游浏览器等浏览器均借用系统自带IE内核,所以国内浏览器实际上与你系统自带浏览器IE版本相同,所以你IE浏览器在IE9或以上版本自然就兼容HTML5新增标签元素。

新旧DIV布局对比案例

通过DIV+CSS布局与HTML5+CSS布局对比观察并掌握对header应用。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>html5 Header标签实例</title>

<style>

/* 传统布局CSS */

#header{ width:300pxheight:40pxbackground:#CCC}

/* HTML5布局样式 */

header{ width:400pxheight:70pxcolor:#F00background:#F5F5F5}

.color-000{ color:#000background:#666}

</style>

</head>

<body>

<p id="header">我在传统p布局中</p>

<header>我在传统p布局中,必须在支持HTML5浏览器才能看到效果,

建议谷歌浏览器测试观察效果</header>

<header class="color-000">我颜色为黑色,背景为#666</header>

</body>

</html>

遇到一个需求:在网页抛出一切请求时,不管是资源请求还是重定向等,需要拦截掉并在header添加信息,ng拿到去做处理,访问不同资源服务器。

一开始想到的方式是:通过WKNavigationDelegate的代理方法- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler

来在请求之前获得请求信息,并把请求头信息添加进去,如下:

-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{

    NSLog(@"灰度测试h5Url: %@",navigationAction.request.URL.absoluteString)

    if ([navigationAction.request.URL.absoluteString containsString:OUR_URL_ID]) {

        // 拦截所有网络请求头,重新添加参数请求头信息

        NSMutableURLRequest *mutableRequest = [navigationAction.request mutableCopy]

        NSDictionary *requestHeaders = navigationAction.request.allHTTPHeaderFields

        if ([requestHeaders isKindOfClass:[NSDictionary class]]) {

            //简单通过Version_Key判断下是否已经加入了请求信息

            if ([AFNetWorkManager KeyUrlrequestOneNull:requestHeaders]) {

                [AFNetWorkManager addWebDefaultKeyUrlrequest:mutableRequest]

                [webView loadRequest:mutableRequest]

                NSLog(@"灰度测试h5Url: %@ \n请求头:%@",navigationAction.request.URL.absoluteString,mutableRequest.allHTTPHeaderFields)

                decisionHandler(WKNavigationActionPolicyCancel)

                return

            }else{

                //参数正常,放开请求

                NSLog(@"灰度测试h5Url: %@ \n请求头:%@",navigationAction.request.URL.absoluteString,requestHeaders)

                decisionHandler(WKNavigationActionPolicyAllow)

            }

        }else{

            //没有请求头,加上新的请求头,并赋予参数

            mutableRequest.allHTTPHeaderFields = [NSMutableDictionary new]

            [AFNetWorkManager addWebDefaultKeyUrlrequest:mutableRequest]

            [webView loadRequest:mutableRequest]

            NSLog(@"灰度测试h5Url: %@ \n请求头:%@",navigationAction.request.URL.absoluteString,mutableRequest.allHTTPHeaderFields)

            decisionHandler(WKNavigationActionPolicyCancel)

        }

    }else{

        //本地请求资源,pdf等

        decisionHandler(WKNavigationActionPolicyAllow)

    }

}

但是经过打印发现,只拦截了一些html请求,向png、css、js资源请求,并没有拦截到,甚至没有走这个方法。

无奈,只能网上搜索,结果发现了:https://github.com/fenglee594/WKWebViewRequestHook

这个demo,稍加改动,亲测有效。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/8015416.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存