正应为大家公认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,稍加改动,亲测有效。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)