在HTML代碼中設(shè)置內(nèi)容樣式,一般使用css或者js慨削,那么根據(jù)加載優(yōu)先級(jí)以及加載效果洞渔,可以自行選擇套媚。
- js在頁(yè)面加載完之后加載,所以設(shè)置圖片樣式的時(shí)候磁椒,會(huì)先加載大圖堤瘤,然后突然變小浆熔;
- css在引入時(shí)加載本辐,直接加載縮小的圖片(實(shí)際占用內(nèi)存不會(huì)縮小)医增;
一慎皱、圖片自適應(yīng)
1. 使用css進(jìn)行圖片的自適應(yīng)")1. 使用css進(jìn)行圖片的自適應(yīng)
在web前端,也就是HTML中叶骨,如果只設(shè)置圖片的寬度茫多,那么高度會(huì)根據(jù)圖片原本尺寸進(jìn)行縮放。
如果后臺(tái)返回的HTML代碼中忽刽,不包含標(biāo)簽地梨,則可以直接在HTML字符串前加上一下面的代碼(如果包含,則在標(biāo)簽內(nèi)部添加)缔恳。代碼含義是宝剖,不管用戶(hù)以前設(shè)置的圖片尺寸是多大,都縮放到寬度為320px大小歉甚。
<head><style>img{width:320px !important;}</style></head>
若需要根據(jù)圖片原本大小万细,寬度小于320px的不縮放,大于320px的縮小到320px纸泄,那么在HTML字符串前加上一下代碼:
<head><style>img{max-width:320px !important;}</style></head>
使用js進(jìn)行圖片的自適應(yīng)
在webview的代理中赖钞,執(zhí)行js代碼。(下面這段代碼是必須有標(biāo)簽的)
如果沒(méi)有標(biāo)簽聘裁,也很簡(jiǎn)單雪营,只需要給返回的HTML字符串前面拼接一個(gè)即可。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView stringByEvaluatingJavaScriptFromString:
@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"function ResizeImages() { "
"var myimg,oldwidth,oldheight;"
"var maxwidth=320;"http:// 圖片寬度
"for(i=0;i <document.images.length;i++){" "myimg = document.images[i];" "if(myimg.width > maxwidth){"
"myimg.width = maxwidth;"
"}"
"}"
"}\";"
"document.getElementsByTagName('head')[0].appendChild(script);"];
[webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];
}
二衡便、文章內(nèi)容自動(dòng)換行
文章的自動(dòng)換行也是通過(guò)css實(shí)現(xiàn)的献起,書(shū)寫(xiě)方式圖片縮放類(lèi)似。在沒(méi)有標(biāo)簽的情況下镣陕,在HTML代碼前谴餐,直接拼接以下代碼即可(若包含,則將代碼添加到body標(biāo)簽內(nèi)部)呆抑,意思是全部?jī)?nèi)容自動(dòng)換行岂嗓。
<body width=320px style=\"word-wrap:break-word; font-family:Arial\">