`
weimx_
  • 浏览: 6569 次
  • 性别: Icon_minigender_1
  • 来自: 广西
最近访客 更多访客>>
社区版块
存档分类
最新评论

HTML中嵌套去边框方法

阅读更多
E webbrowser 网页嵌套去掉边框 隐藏滚动条

前一段时间升级了一个程序,将程序的主界面用网页来设计,效果非常好,用 HTML+CSS 可以实现更加丰富的界面效果,比直接用 Delphi 来得容易。

  实现的方法很简单,在窗体添加一个 WebBrowser 组件,然后执行以下代码:

  WebBrowser1.Navigate('D:\Soft\HomePage.html');

  但随之而来出现了一个问题:WebBrowser 组件在未载入 HTML 之前是无边框的,当载入 HTML 之后,WebBrowser 四周出现了一个三维边框,和程序本身的风格极不协调,查看了 WebBrowser 的所有属性,没有属性可以改变这一设置。

  经过测试以后发现,该边框并不是 WebBrowser 产生的,而是 WebBrowser 中载入的 HTML 产生的,如果是这样的话,那问题就好解决了,真接用 CSS 去掉边框:

  body { border: 0px; overflow: auto; /*可自动隐藏或显示滚动条;设为 hidden 完全隐藏滚动条*/ }

  当你高兴地设置以上 CSS 后,却发现 WebBrowser 的边框却依然存在,是 CSS 错了吗?NO,是你的 DOCTYPE 出了问题,以上的 CSS 在 XHTML 下是无效果的,将 DOCTYPE 设为 HTML4 即可:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

网上搜了一下,提问题的人不少,找到合适的答案不容易。我把自己曾经总结的贴出来,希望能够对需要的朋友有用。


HRESULT hr;
IDispatch *pDisp = GetHtmlDocument();

IHTMLDocument2 *pDocument = NULL;
IHTMLElement*   pEl; 
IHTMLBodyElement   *pBodyEl; 
hr = pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pDocument);
if(SUCCEEDED(pDocument->get_body(&pEl))) 

  if(SUCCEEDED(pEl->QueryInterface(IID_IHTMLBodyElement,   (void**)&pBodyEl))) 
  { 
   pBodyEl->put_scroll(L"no");//去滚动条
  } 
  IHTMLStyle   *phtmlStyle; 
  pEl->get_style(&phtmlStyle); 
 
  if(phtmlStyle  != NULL) 
  { 
   phtmlStyle->put_overflow(L"hidden"); 
   phtmlStyle->put_border(L"none");//   去除边框 
  
   phtmlStyle->Release(); 
   pEl->Release(); 
  } 
}


///////////////////////////////////////////////////////////////////////////////////


VC++ 怎样去掉webbrowser2 的滚动条
LPDISPATCH lpidsp=m_WebBrowser2.GetDocument();

ASSERT(lpidsp);
IHTMLDocument2 *pDoc=NULL;
HRESULT hr;
hr=lpidsp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc);
ASSERT(SUCCEEDED(hr));
ASSERT(pDoc);
IHTMLElement *pBody=NULL;
hr=pDoc->get_body(&pBody);
ASSERT(SUCCEEDED(hr));
ASSERT(pBody);
IHTMLElement *pElement=NULL;
hr=pBody->QueryInterface(IID_IHTMLElement,(void**)&pElement);
ASSERT(SUCCEEDED(hr));
ASSERT(pElement);

CComBSTR v("SCROLL");
CComVariant vv="no";
pElement->setAttribute(v,vv,0);

我的WebBrowser控件的原文件index.htm中的HTML代码如果是以下作为文件的顶级元素时,则无法去掉控件的边框和滚动条,如图1:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Sys_Caption_Logo</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="interface.js"></script>
<style type="text/css">
body  {
font: 11px Arial, Helvetica, sans-serif;
background: #ffffff url("0527blue.jpg");
padding: 0;
margin: 0px;
overflow:hidden;
border: 0px;
}





而将顶级元素改为如下代码时,则可以去掉边框和滚动条,只是图标显示不正常,明显小许多.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html xmlns="http://www.w3.org/1999/xhtml">





请问,如何才能达到即去掉边框和滚动条,而又不会让图标变得如此之小?

废话不多说,今天要做一个功能,使用了WebBrowser控件,和大多数人一样,我想去掉控件本身的边框,因为这个3D边框很丑陋而且和背景不相容。



找了一圈,发现网上的方法都是针对没有Frameset的情况,也就是说,你的页面如果有Frameset构成,则使用css:


body
{
/*下面2句去掉webBrowser边框*/
border:0px;
overflow:hidden;
}

是不够的,边框仍然存在。



我的代码原来是



代码
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5 <link href="style.css" rel="stylesheet" type="text/css"/>
6 <title></title>
7 </head>
8 <frameset framespacing="0" frameboder="no" rows="44px,*">
9
10 <frame id="frameNav" scrolling="no" name="frameNav" src="navigation.html" border="none" frameborder="no" noResize="true"></frame>
11<frame id="frameContent"scrolling="no" name="frameContent" src="01-Content.html" border="none" frameborder="no" noResize="true"></frame>
12</frameset>
13
14</html>






后来改为:



代码
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5<link href="style.css" rel="stylesheet" type="text/css"/>
6<title></title>
7</head>
8<body>
9<iframe id="frameNav" frameborder="0" name="frameNav" height="44px" scrolling="no" width="699px" src="navigation.html"></iframe>
10<iframe id="frameContent" frameborder="0" name="frameContent" height="456px" scrolling="no" width="699px" src="01-Content.html"></iframe>
11</body>
12
13
14</html>
用iframe来替代frameset,测试发现边框去掉了。



哪位达人知道不改html代码怎么实现,希望不吝赐教,thanks~
1
0
分享到:
评论

相关推荐

    html为内边框加颜色而嵌套TABLE边框不显示出来的两种方法.pdf

    html为内边框加颜色而嵌套TABLE边框不显示出来的两种方法.pdf

    CSS3实现多重边框的方法总结

    方法1:div嵌套实现多重边框。 效果图: html代码 XML/HTML Code复制内容到剪贴板   &lt;div u00a0id=inner&gt;div嵌套实现多重边框    css代码 CSS Code复制内容到剪贴板 #outer { width: 100px; height: ...

    零基础学HTML CSS源代码

    层嵌套.html 层嵌套的用法。 table布局.html 演示table布局。 DIV布局样式.html 设置DIV布局样式。 如何用DIV布局.html 演示如何用DIV布局。 第13章(源代码\第13章) 示例描述:本章演示DIV...

    java关于html+css的18点重要内容

    6、HTML 内联框架(页面中嵌套页面) 7、HTML 表单 8、HTML 多媒体控件 9、CSS样式的引入 10、CSS选择器 11、CSS高级选择器 12、属性选择器 13、CSS-伪类选择器【整个标签】 14、多重样式【前提是:外部和内部比较-...

    从入门到精通HTML5——PDF——网盘链接

     12.1.2 HTML 5中的标记方法 226  12.1.3 HTML 5语法中的3个要点 227  12.1.4 标签实例 228  12.2 新增的元素和废除的元素 228  12.2.1 新增的结构元素 228  12.2.2 新增的块级的语义元素 230  12.2.3 新增的...

    RTF转换成HTML的控件(.net)

    - 支持转换表格、嵌套表格、边框、背景; - 支持转换嵌入的图片(png, jpg, wmf, bmp); - 支持CSS; - 支持转换超链接(hyperlinks); - 支持转换斜体、粗体和下划线; - 支持转换上、下标文字; - 支持转换符号和...

    疯狂HTML 5+CSS 3+JavaScript讲义(第2版)+源代码

    7.2 CSS 3支持的颜色表示方法 205 7.3 文本相关属性 206 7.4 CSS 3新增的服务器字体 212 7.5 本章小结 215 第8章 背景、边框和边距相关属性 216 8.1 盒模型简介 217 8.2 背景相关属性 217 8.3 使用渐变背景 ...

    单元素利用css实现多重边框效果示例代码

    最近在工作中遇到一个值得思考的问题,在CSS中,要实现同一种效果可能有很多种方式,就比如今天所要讲的多重边框,有人可能会想,那还不简单?要多少边框直接嵌套多少个带边框的DIV元素不就行了么! 是的,这样确实...

    layout.border:html的边框布局

    HTML中通常使用CSS来实现布局,但要实现border layout这样的效果有些麻烦,很多第三方实现,比如easyui, extjs,功能过于强大,我只是想要一个简单的布局而已,于是自己写了个jquery布局插件,支持嵌套布局以及小...

    HTML开发王

    9.7.1 表格中边框线的显示(frame属性) 9.7.2 表格中分隔线的显示(rules属性) 9.8 单元格内内容的对齐 9.8.1 单元格对齐属性 9.8.2 对齐的继承 9.8.3 轴线(axis属性) 9.9 巩固与自测 第10章 建立html表单 10.1 认识和...

    html入门到放弃笔记

    1、编写一对 body 标记,在body标记中,嵌套一对 div标记,在 div 标记中 ,嵌套一对 a 标记,在 a标记中,嵌套一对 b 标记,b标记中,随意编写一些文本 &lt;body&gt; 这是一段测试文本 &lt;/body&gt; ...

    css2.1多重背景和边框效果实现原理及代码(图文介绍)

    在单个HTML元素上利用CSS2.1实现拥有3张背景图片和2张内容图效果,或者多重边框的效果。这种渐进增强的方式适用于所有支持CSS2.1伪元素及其定位属性的所有浏览器。不需要CSS3的支持。 支持的浏览器:Firefox 3.5+, ...

    index.html

    一个简单的index,给块添加一个边框,和一个ul嵌套li。

    HTML5与CSS3基础教程(第8版)高清文字

    15.7 设置嵌套列表的样式 311 15.8 创建描述列表 314 第16章 表单 318 16.1 HTML5对表单的改进 318 16.2 创建表单 320 16.3 处理表单 323 16.4 对表单元素进行组织 324 16.5 创建文本框 327 ...

    使用HTML开发商业网站-CSS3高级特性课件.pptx

    例如,定义主体元素body的文本颜色为黑色,那么页面中所有的文本都将显示为黑色,这是因为其他的标记都嵌套在标记中,是标记的子标记。 CSS高级特性 并不是所有的CSS属性都可以继承,例如,下面的属性就不具有继承性...

    landingpage:CSS HTML和JavaScript项目

    在这个项目中,我使用了forEach()方法并使用了Array,并且参数创建了元素并将锚标记分配给相应的嵌套标记。 着陆页行为 添加了滚动功能以突出显示当前部分和导航项。 我为此使用了getBoundingClientRect()以及...

Global site tag (gtag.js) - Google Analytics