现在实现圆角普遍用图片来控制,这种方法有其优点(产生的圆角平滑)。 但同时他也要求有吻合的图片,如果要动态的改变div的样式颜色则有些力不从心。还有就是用js来实现。
实现后的调用代码 如下
复制代码 代码如下:
var objDiv = getRoundDiv.call(document,"solid 1px yellow","#dddddd")
objDiv.Div.style.width="100px";
objDiv.Content.style.margin="6 6 6 6 "
objDiv.Content.innerText="这是一个圆角div测试"
document.body.appendChild(objDiv.Div);
这样就产生了一个圆角div 实现原理:原理其实很简单,在div的top和bottom 加上三条线,用这三条线的不同长度来产生圆角的效果。
实现过程: 如何实现这三条线呢。 用<b> 这个元素,将其高度 设置为1px 。如果要显示边框则为其添加左边框和右边框。添加好线条以后,将内容div 和这三条线放在一个容器里,这个容器也是一个div。最终返回一个div类,这个类放两个属性,一个是容器div,通过这个容器div可以控制图形出现的位置和大小高度等属性。另一个属性是内容div,通过这个div可以设置这个div的内容,margin,字体颜色,背景颜色,字体大小,等属性。
注意的问题: 调用 getRoundDiv 这个方法需要传递一个方法上下文。我的理解是方法上下文相当与一个指针,指向调用方法的对象。为什么要用这个方法上下文呢? 比如要在ie的 creatPopup 方法 产生出来的popup文档内新建一个圆角div的话,由于popup只能加载他自己创建的控件,所以可以将popup对象传递到方法内部,成为方法上下文指向的对象。 传递上下文的方法有两种function.call(obj,"arg1","arg2") 类似与这样。 另一种是 function.apply(obj,arguments)
详细代码如下:
复制代码 代码如下:
/**************************************************************************/
/*RoundDiv.js 产生一个圆角div
调用前需设置函数上下文(上下文是指,要创建div的窗口) 例如 var objDiv = getRoundDiv.call(document,"","#dddddd")
函数参数argBorderStyle: 边框样式,字符串 例如 "1px solid black"
函数参数argBgColor: 背景颜色,字符串 例如 "#ffffff"
现在只支持边框为1像素 如果超过1像素产生的图形会比较奇怪
如果不设置边框 则没有边框 可以正常使用
本函数返回的是一个RoundDiv自定义类
如果要设置div的内容请用 obj.Content.innerHtml 或 obj.Content.innerText设置
如果要设置div的高度请用 obj.Div.style.width obj.Div.style.height设置
*/
/**************************************************************************/
/**************************************************************************/
//取得一个圆角div
function getRoundDiv(argBorderStyle,argBgColor){
//创建元素
var divPane =this.createElement("div")
var divContent =this.createElement("div")
var divContentMax =this.createElement("div")
var bTop =this.createElement("b")
var bBottom =this.createElement("b")
var bTop1 =this.createElement("b")
var bTop2 =this.createElement("b")
var bTop3 =this.createElement("b")
var bTop4 =this.createElement("b")
var bBottom1 =this.createElement("b")
var bBottom2 =this.createElement("b")
var bBottom3 =this.createElement("b")
var bBottom4 =this.createElement("b")
//背景设置
divPane.style.backgroundColor=argBgColor;
divContent.style.backgroundColor=argBgColor;
divContentMax.style.backgroundColor=argBgColor;
bTop1.style.backgroundColor=argBgColor;
bTop2.style.backgroundColor=argBgColor;
bTop3.style.backgroundColor=argBgColor;
bTop4.style.backgroundColor=argBgColor;
bBottom1.style.backgroundColor=argBgColor;
bBottom2.style.backgroundColor=argBgColor;
bBottom3.style.backgroundColor=argBgColor;
bBottom4.style.backgroundColor=argBgColor;
bTop.style.backgroundColor="#ffffff";
bBottom.style.backgroundColor="#ffffff";
//样式设置
bTop.style.overflow="hidden";
bBottom.style.overflow="hidden";
bTop1.style.overflow="hidden";
bTop2.style.overflow="hidden";
bTop3.style.overflow="hidden";
bTop4.style.overflow="hidden";
bBottom1.style.overflow="hidden";
bBottom2.style.overflow="hidden";
bBottom3.style.overflow="hidden";
bBottom4.style.overflow="hidden";
bTop.style.display="block";
bBottom.style.display="block";
bTop1.style.display="block";
bTop2.style.display="block";
bTop3.style.display="block";
bTop4.style.display="block";
bBottom1.style.display="block";
bBottom2.style.display="block";
bBottom3.style.display="block";
bBottom4.style.display="block";
//高度设置
divContent.style.height="100%";
divContentMax.style.height="100%";
bTop1.style.height="1px";
bTop2.style.height="1px";
bTop3.style.height="1px";
bTop4.style.height="2px";
bBottom1.style.height="1px";
bBottom2.style.height="1px";
bBottom3.style.height="1px";
bBottom4.style.height="2px";
//边框设置
divContentMax.style.borderLeft=argBorderStyle
divContentMax.style.borderRight=argBorderStyle
bTop1.style.borderLeft=argBorderStyle;
bTop1.style.borderRight=argBorderStyle;
bTop1.style.borderTop=argBorderStyle;
bTop2.style.borderLeft=argBorderStyle;
bTop2.style.borderRight=argBorderStyle;
bTop3.style.borderLeft=argBorderStyle;
bTop3.style.borderRight=argBorderStyle;
bTop4.style.borderRight=argBorderStyle;
bTop4.style.borderLeft=argBorderStyle;
bBottom1.style.borderLeft=argBorderStyle;
bBottom1.style.borderRight=argBorderStyle;
bBottom1.style.borderTop=argBorderStyle;
bBottom2.style.borderLeft=argBorderStyle;
bBottom2.style.borderRight=argBorderStyle;
bBottom3.style.borderLeft=argBorderStyle;
bBottom3.style.borderRight=argBorderStyle;
bBottom4.style.borderLeft=argBorderStyle;
bBottom4.style.borderRight=argBorderStyle;
//空白间距设置
bTop1.style.margin="0 4px 0 4px"
bTop2.style.margin="0 3px 0 3px"
bTop3.style.margin="0 2px 0 2px"
bTop4.style.margin="0 1px 0 1px"
bBottom1.style.margin="0 4px 0 4px"
bBottom2.style.margin="0 3px 0 3px"
bBottom3.style.margin="0 2px 0 2px"
bBottom4.style.margin="0 1px 0 1px"
//控件拼装
bTop.appendChild(bTop1);
bTop.appendChild(bTop1);
bTop.appendChild(bTop2);
bTop.appendChild(bTop3);
bTop.appendChild(bTop4);
bBottom.appendChild(bBottom4);
bBottom.appendChild(bBottom3);
bBottom.appendChild(bBottom2);
bBottom.appendChild(bBottom1);
divContentMax.appendChild(divContent)
divPane.appendChild(bTop)
divPane.appendChild(divContentMax)
divPane.appendChild(bBottom)
var objRoundDiv = new RoundDiv();
objRoundDiv.Div=divPane;
objRoundDiv.Content=divContent;
return objRoundDiv;
}
/**************************************************************************/
/**************************************************************************/
//自定义类(用来装载div对应内容)
function RoundDiv(){
this.content=0;//div内容
this.div=0;//div容器
}
/**************************************************************************/
相关推荐:
SEO抓取:让您的网站从零到一的秘诀,佛山网站建设哪家效果好
优化原理:提升效率、创新突破的核心法则,印刷包装推广有哪里网站
SEO广告:如何借助SEO提升品牌曝光与销售业绩?,网站推广怎么选择
AI撰写大数据解决方案:开启智能数据时代的新篇章,ai头号公敌
Zkept:重塑未来生活的智能科技革新,营销推广的面试问题
WPQQ-开启数字时代的智能连接新纪元,杭州网站推广厂家电话
SEO而且:打造高效网站流量增长的秘密武器,滨江网站推广营销
AI免费生成:开启智能创作新纪元,助力你的创意无限可能
SEO中权重是什么意思?让你迅速网站排名的核心秘密!,长颈鹿智能AI点读机
SEO要好,网站流量翻倍的关键秘诀,品牌网站建设关键词优化
《权重参谋:让您的网站轻松登顶搜索引擎的秘密武器》,设计微信社群私域营销推广简案
seo需要保持什么心态,seo的要求 ,ai83562
AI一键生成文章免费版:颠覆写作新体验
SEO目标:让您的网站轻松登顶搜索引擎,优化购物网站的搜索
SEO那么重要,企业如何通过它脱颖而出?,自媒体推广营销的概念
seo的推广工具,seo推广软件哪个好 ,国内ai写作论文怎么样
AI搜索相似文章怎么做?揭秘高效文章检索的核心技术!,程式ai软件
AI写作技巧,让创作事半功倍!
SEO主要是为网站引流吗?深入解析SEO的核心价值,AI算算
seo营销方法是什么,seo营销模式 ,ai山海
SEO项目指的是什么,seo项目指的是什么意思 ,写个ai
ChatGPT进不去怎么办?解决方案与技巧,轻松畅享智能对话,ai va
什么是seo长尾词,什么是seo长尾词的概念 ,绿茶ai换脸杨超越
怎么分辨文章是不是AI写的?五大技巧揭开真相
SEO资讯:最新趋势,提升网站排名,快速突破流量瓶颈,廊坊seo推广咨询服务
SEO优化:让你的网站在竞争中脱颖而出,临沧seo代理
SEO做法-提升网站流量与排名的关键秘诀,屏东网站推广招聘
SEO怎么排名?这5大技巧,轻松提升网站排名,人人都可ai
SEO教研:数字营销新趋势,提升网站流量与转化率的关键,齐鲁证券网站建设
用AI批量下载工具,高效管理你的文件和资源
BingAdapter设置数据后没有显示数据?解决方案在这里!,ai中如何把图变形
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,助您畅享无障碍智能对话体验,ai记录人
seo要什么条件,seo都需要做什么 ,交互ai求职
ChatGPT:我目前无法查看或解析附件,您是否遇到过这样的困扰?,ai+燃烧
亚马逊seo是什么公司的,“亚马逊” ,ai玩底特律
SEO找词:如何精准找到高效关键词,提升排名和流量,河源网站优化平台
seo需要买什么,seo需要考虑什么 ,ai做表头
360ai问答-智能时代的全能助手,未来的智慧生活,ai生成白底
SEO怎么做才能提升网站流量与排名?这篇文章给你全攻略,铁岭定制网站推广公司电话
SEO已经成为数字营销的核心,如何利用SEO提升网站流量和转化率,含山网站优化推广
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
SEO建议:如何通过优化提升网站流量,赢得市场竞争,自媒体网站免费推广平台
在线AI文章生成:内容创作新革命
AI通过算法和数据生成的作品:科技与艺术的跨越,带来无限创意可能,ai优化程序
seo资源指的是什么,seo资料 ,绿眼AI
seo用什么手法,seo方式 ,ai绘画飞翔
今时CMS:引领数字化转型的智慧之选,河南seo优化网站联系方式
SEO优化做什么的?揭秘SEO优化的核心价值与实战应用,ai做金色
ChatGPT页面怎么拖不动?解决问题的终极指南,日韩AI换脸在线观看
seo资源是什么意思,seo资源怎么打开 ,梅州ai自动插件加工