一个网页前端的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 16:48:46
有的门户网站在浏览器下可以适应浏览器中选择大字体或者小字体(如果是firefox直接按“ctrl+加减号”)而整个网页布局不会乱,会随之缩放,比如http://tw.msn.com/ 或者 http://www.msn.com/defaulta.aspx ,但是有些不可以,只会放大字体而已,比如 http://cn.msn.com/ 或者 http://www.163.com/
我想知道那些能够自动缩放网页大小的网站是怎么做到的?

呵呵!朋友,这个需要通过mshtml实现.具体:

CBHtmlView是我从CHtmlView中继承而来的一个类

HRESULT CBHtmlView::Zoom(float fZoom)
//fZoom是放大倍数(>0)
{
if(fZoom<0 || fZoom>10) return S_OK;//小于0或大于10就不理它
//////////
CComPtr<IHTMLDocument2> pDoc = (IHTMLDocument2*)this->GetHtmlDocument();//获取htmlDocument接口
//if(pDoc) return "";
ASSERT(pDoc);
CComPtr<IHTMLElement> pElem;
pDoc->get_body(&pElem);//获取body对象接口
//if(pElem) return "";
ASSERT(pElem);
CComPtr<IHTMLStyle> pStyle;
pElem->get_style(&pStyle);//获取body的style接口

CString str;
str.Format("zoom:%f;", fZoom);
return pStyle->put_cssText(str.AllocSysString());
}

使用的时候调用Zoom(fZoom)就好了,很简单的

楼上的是达人,提供的方法不错。还有一种手段,就是全部用css来做构架,而且全部用非固定数值。这样就会随着文字的量以及大小的改变而整体改变了。不过这种方法很麻烦,尤其麻烦的是浏览器的兼容问题。