js设置css样式_HTML+CSS网页设计与制作

js设置css样式_HTML+CSS网页设计与制作css+html+js总结(0)制作一个网页之前一定要先计算好各个width还有color,这样写出来的代码的维护性和效率才高。(1)做ZB_Login.html文件时的css总结-2016/5/25第一、现在我终于明白transparen

css+html+js总结   (0)制作一个网页之前一定要先计算好各个width还有color,这样写出来的代码的维护性和效率才高。   (1)做ZB_Login.html文件时的css总结—–2016/5/25   第一、现在我终于明白transparent(无色)和白色的区别了,虽然他们两个的呈现效果都是白色。使用   transparent制作的图片,transparent部分不会覆盖前面的颜色,也就是说显示的是前面的颜色,白色的部分   则和其他的颜色一样,会覆盖前面的部分,呈现为白色,而不是前面的颜色,例如”ZL_headRight.png“这个   图片在制作的时候,那白色部分一定是用transparent处理的,因为该图片没有覆盖背景颜色,显示的是背景颜   色,“ZL_loginBox.png”图片也是一样,没有显示白色部分,显示的是背景颜色   第二、margin-left是从对象的右边出发的,我怎么老用这个属性来解决距离右边的距离啊   第三、margin-top:-10px;这样会使的应用该属性的对象向上移动10px,这样势必就会产生重叠,一般来   说是后面的覆盖前面的,但是可以采用z-index来设定重叠级别,这样可以改变默认的后面覆盖前面的,z-   index必须和position:absolute|relative一起使用才有效。   (2)做JavaScript实战的播放器页面的css总结—-2016/5/26   第一、浮动素在块状素前面,那么块状素还是会独占一行,不理会块状素,然而浮动素会覆盖   块状素一部分,但是不会覆盖块状素的内容,内容从浮动素的右边开始显示。   第二、浮动素在内联素前面,那么内联素从浮动素右边开始显示。   第三、块状素在前面,浮动素在后面,那么浮动素在下面一行显示,因为块状素要独占一行。   第四、内联素在前面,浮动素在后面,那么浮动素飘到内联素前面,内联素在浮动素右边显   示。   第五、使用css样式的background属性来显示图片没有alt和title,使用HTML标签来显示图片有alt和   title   (3)做JavaScript实战的播放器页面js总结—-2016/5/27-2016/5/29   卡了我很久的是定时器的滥用和mousemove事件   第一、在使用setInterval的时候要特别注意,不要乱设置setInterval,因为只要你没有手动清除你先前   设定的setInterval,那么这个定时器就会一直运行下去,会带来很多隐患,所以在设定一个新的定时器之前要   最好考虑好先前设定的那个定时器是不是还需要,最好在设定新的定时器之前将旧的定时器清除。   第二、实现素拖到功能时,使用的mousedown,mousemove,mouseup事件,mousemove事件是在素内移   动才会有效,所以要想在某素mousedown之后,鼠标脱离该目标素也能拖动,那么就需要   $(document).mousemove,而不是$(target).mousemove,当然你可以通过event.pageX来限定target素的拖动   范围,mousemove事件是鼠标在目标素上移动1px就会触发的。   第三、预先写好的函数,在bind和setInterval时,只写函数名就行,不要加上函数执行符号(),这个也   要特别注意,“()”是函数执行符号,函数名后面加上“()”,函数才会得到执行。   (4)如下代码:   $(document).ready(function(){   $(“ul li”).click(function(){   //只是给页面加载完成后,页面中的li绑定click事件,并指定事件处理函数,不管后面通过何种方   式在ul后面加入了li素,都需要对新加入的li素重新绑定,因为这些新加入的li素是在ready后面加入的   ,浏览器解析引擎早就在document.ready的时候就给页面的li绑定好了,这个要特别注意   });   });   (5)json和js对象的区别   json格式的数据每个名称必须加上双引号,字符串值也要加上,然而js对象的属性名称就不需要,因为该   名称是对象的一个属性。   如json数据:[{“name”:”wmy”,”value”:”wmy”},{“name”:”mbj”,”value”:”mbj”}]   如js数组:[{name:”wmy”,value:”wmy”},{name:”mbj”,value:”mbj”}]   (6)服务器在返回json和客户端接收json时要注意的问题   在客户端使用ajax向服务器端请求数据时候,如果服务器response.write(‘{“name”:”mbj”,”age”:18}’);   那么在使用ajax请求的时候,如果指定dataType:”json”,那么获得的数据是一个js对象,jquery自动帮我们转   换了,如果没有显示指定dataType:”json”,那么返回的数据还是json对象,需要我们手动解析,使用   jquery.parseJSON(“”+data);因为parseJSON的参数是json字符串,而服务器返回的是   {“name”:”mbj”,”age”:18}。如果在ajax中没有设置data字段,数据是在url后面,那么body-parser就无能为力   了,需要node.js的url模块,url.parse(req.url,true).query就获得了数据的js对象了,如果要给客户端返回   json格式的数据,则使用res.json({name:”mbj”,age:19});就行了,json函数会自动把里面的js对象转化为   json数据格式,serialize()方法也是作用于一个JQuery对象,它能够将DOM素内容序列化为字符串,   serializeArray()方法不是返回字符串,而是将DOM素序列化后,返回JSON格式的数据。如果是使用ajax请求   的数据,那么不可以使用res.redirect(“/”);重定向到其他的页面,因为当前页面的ajax还在等着服务器返回   数据,   (7)图片本身是有大小的,但是如果不再图片的css中设置width和height的属性,那么当在该图片的   width和height的时候就不到了,如$(“img”).width();   (8)mongoose的使用,var UserModel=mongoose.model(“mmbbjj”,UserSchema);//这句话表示用UserSchema创   建一个UserModel,创建的数据库集合的名字叫做mmbbjjs,注意哈,mongoose会自动给你的collections加一个   后缀s,当然如果是mmbbjjs,mongoose就不会在加了   (9)标签会和前面的字体对齐的,如果前面的字体的font-size比较大的话,font-size的大小接近后面的   height,那么后面的那个素会和字体对齐的,这样会导致后面的素布局有问题   (10)valign属性只适用于table标签的td标签,disabled=“disabled”可以使得素无效,但是数据得不到   提交,可以弄一个hidden来代替发送数据   (11)输入框如果没有输入字符串的时候,$(“textarea”).val()==””,为true,而不是等于undefined,或者   null,在JavaScript中null==undefined,但是””(空字符串)不和undefined和null相等   (12)清除浮动带来的高度塌陷的方式,   第一在浮动素后面添加一个div或者br素,如<div style=”clear:both;height:0;”>   第二假设父素的id=”main”,则main:after   {content:”.”,visibility:hidden;height:0;clear:both;display:hidden;}   第三,给父素也加上float:left,属性   第四,给父素加上overflow:hidden   第五,给父素加display:table属性   (13)这个教训可是困了我好几个小时的,就是在a素的click事件中有ajax请求,然后在ajax中的success对   应的回调函数中,我用$(this)想来当前被的a素,结果一直不对,后来才灵光一现,想起来在   回调函数的this已经不是表示当前被的素了,而是这个this表示window了,以后千万要记住了哈,保存   好this   (14)*zoom IE8抛弃了haslayout   启动hasLayout的值:有值   取消hasLayout的值:narmal或者空值   (zoom是微软IE专有属性,可以触发hasLayout但不会影响页面的显示效果。zoom: 1常用来除错,不过 ie 5   对这个属性不支持。) IE hasLayout bugs经常出现各种很奇怪的问题,如果ie有些很难解释的问题,第一件   事情要做的就是给该素一个layout,hasLayout是IE特有的一个属性。很多的ie下的css bug都与其息息相关   。在ie中,一个素要么自己对自身的内容进行计算大小和组织,要么依赖于父素来计算尺寸和组织内容。   当一个素的hasLayout属性值为true时,它负责对自己和可能的子孙素进行尺寸计算和定位。虽然这意味着   这个素需要花更多的代价来维护自身和里面的内容,而不是依赖于祖先素来完成这些工作。   (15)对js传入函数作为参数的理解   如果一个函数以一个函数为参数,那么这个函数参数的实参在定义函数的时候就决定了,只不过怎么使用这些   决定了的实参就是函数参数的事情了,就像node.js中大量的回调函数那样,你必须要明白回调函数传入的参数   的意义,你才知道怎么样使用这些传入的参数,   (16)text-align和vertical-align   text-align用于块级素内文本的对齐方式,是文本的对齐方式,对素没有用,vertical-align用于内联   素在行内的垂直对齐方式,vertical-align:middle,表示位于父素中间,默认是放在父素的底端,对于   文本来说middle无效,因为文本本来就在一行,vertical-align:top;表示素的顶端和行中最高素对齐,   text-top表示素顶端和行内文本的顶端对齐,vertical-align:-7px;则素在本来的位置上下移7px,如果   是vertical-align:7px;则表示上移7px   (17)line-height   图片可以撑开行框,但是不能改变行高,默认文字和图片的对齐方式就是基线对齐,要想文字在图片的中间,   可以对图片使用vertical-align:middle,如果这样也达不到要求的话,只能把img的css设置成position:   relative,然后再通过top和left来调位置了,基线就是书写英文字母那三行的最下面一行,line-height:1.7;   表示的是缩放因子,是font-size的1.7倍,line-height可继承,应用方面就是设置line-height等于素的   height,那么素里面的文字会垂直居中显示   (18)让后面的素和前面的素对齐,而不是和前面的素的字体对齐   .btn:before{   /*必须要加这个,因为后面的素是和字体对齐的,加这个,然后在vertical-align:top,和前面的   素对齐,可以让后面的素和前面的素对齐,而不是和前面素的字体对齐*/   content: “”;   display: inline-block;   vertical-align: top;   }   (19)form的action属性   action属性表名form提交的数据交给谁处理,如果action=”/upload”,则表名是交服务器端的upload处理,   action=”javascript:functionName;” 加了JavaScript则表示数据交给functionName这个函数处理,不可以少了   javascript,有了JavaScript才能作为js函数处理,而不是服务器端处理   ————————————-做博客网站的经验——————————-   (20)contenteditable—-在线编辑器—–困3小时   contenteditable使得只读素也变得可以编辑,但是要注意一个问题,当你删除完一个素的所有输入后,你   以为这个素的内容是空了,可是并不是,它是一个<br>,自动给你在这个素中添加上去的,这个要特别注意   困了我3个小时,true.false,如果父素的contenteditable=”true”,那么子素的contenteditable=”true”   也等于true,这个就意味着子素中的内容也可以编辑,就像你把body的contenteditable=”true”,那这个网   页都可编辑。   (21)去除可编辑素获得焦点默认的样式,outline:0 none;border:0 none;cursor:text;还有一个神奇的属   性,pointer-events:none;可以去除素的click事件,比如给a素加上此属性,那么在a的时候就没有   反应   (22)获得当前选中区域   ie支持的获得当前选中区域文字的语法是document.selection.createRange().text,safari和firefox获得当前   选中文字:window.getSelection()   (23)IE下的trigger的使用——困5个小时   $(“.imgPreview”).click(function(){   $(“input[type=file]”).trigger(“click”).change(function(){   PreviewImg();   });   });   这样当选择好文件后,根本就不会发生change事件,我猜测可能的原因是选择文件的时间太长,IE直接忽略了   change函数的定义,但是其他的浏览器不会出现这样的问题,是上面的代码也能work,但是最好换成另一种写   法,$(“.imgPreview”).click(function(){   $(“input[type=file]”).change(function(){   PreviewImg();   }).trigger(“click”);   });   这样的写法IE下是正常的,先定义后trigger   (24)IE下的unselectable=”on”,在做在线编辑器的时候——-困了1天,2016-8-5   事情是这样的,我要做的一个功能是显示一张图片到焦点所在的地方,这个需要用到range(被选中的文本区域   ),于是使用<input type=”file” style=”display:none”>,然后其他的div素trigger该input,然后在   给该input一个change事件,在change事件中让让图片在焦点处显示,一直以来,除IE外,其他的浏览器都可以   正常的获得range对象,但是IE一直获得错误的range对象,后面就是加了这个unselectable=”on”才正常的获得   了range对象,unselectable=”on”指示这个素是不可选中的,也就是不能触发已经获得焦点的素的onblur   事件,难怪我会出现一直不能获得正确的range的情况,因为我一该div素,获得焦点的素就失去焦点   ,所以,给div素加上这个属性,会导致原来获得焦点的素还是获得焦点的,这样的话讲究可以获得正确的   range了,chrome和firefox对应的是-moz-user-select:none;-webkit-user-select:none;此外,还明白了   range是根据焦点来确定选中内容的位置的,<input type=”file” style=”display:none”>,在一个form表单中是   可以同时存在很多个的   (25)做博客网站时,实现为文章选择标签的时候所走的弯路,   我以为那个可以输入的框是一个div,而且是一个contenteditable=”true”的div,结果在实现的时候,给   定的标签,构造类似新浪博客那样的效果,但是两个标签块之间还是可以获得焦点,这个问题一直解决不了,   而且firefox不能直接通过后退键删除contenteditable=”false”的素,但是IE和chrome可以,后来去看了一   下新浪博客的实现,发现是我想错了,那个输入框不是一个contenteditable=”true”的div,而是一个普通的   div+一个input[type=text]的输入框,在这个div中嵌入一个固定输入字符的input,在需要加块的时候,在这   个input前面插入块即可   (26)做博客网站时,处理文章代码部分最烦———博客网站   1.首先要标注那一块区域是代码,而不是普通的文字,我采用的是给选择的区域(假定选中区域的内容为value   )加<pre><cc>value</cc></pre>   2.在加之前,还要对value进行处理,要不然替换的时候会导致value的html部分也会被解析成html的形式,而   不是代码的形式,处理的方式是替换掉value中的”<“为&lt;”>”为&gt;这样才不会解析为html标签,   3.对已经被cc包围的value部分,再次cc时,应该要无效,我的做法是的时候,给该value的部分加上   cc,但是我会在后面判断每一个cc标签是不是存在祖先素为cc的,如果有,那么删除该cc标签,保留祖先cc   标签,这样就做到了cc不会在嵌套cc,   4.经过以上三步,就成功的标注代码区域了,接下来是把value传给服务器,在传之前,需要把value中的&lt;   变为”<“,&gt;变为”>”,   5.接受到value后,需要对value中的回车换行符进行处理,要不然返回给前端的时候,由于回车换行符的影响   会导致”unterminated string literal”,没有终结的字符串这个错误,我解决的方法是将回车换行符替换掉,   但是要注意后面是需要回车换行符的效果的,因此,用”<br>”来替换最好,下面是替换的代码:   realContent = realContent.replace(/(\n\r)/g, “<br>&nbsp;&nbsp;”);   realContent = realContent.replace(/(\r\n)/g, “<br>&nbsp;&nbsp;”);   realContent = realContent.replace(/(\r)/g, “”);   realContent = realContent.replace(/(\n)/g, “<br>&nbsp;&nbsp;”);   realContent = realContent.replace(/(\t)/g, “&nbsp;&nbsp;&nbsp;&nbsp;”);   其中realContent是需要处理的回车换行符的字符串   6.现在,前端可以正常接收value数据了,接收之后,会发现value中的<,>,空格等html中有特殊意义的字符都   变成了其他的形式,如”<“变为&lt;”>”变为&gt;&nbsp;变成”&amp;nbsp;”,这样,又需要把这些变回来,要不   然不能以html的形式解析,变回来可不能直接将所有的&lt;变为”<“,&gt;变为”>”,代码部分的不能变,要不然   代码部分也会被当做html解析,因此,得先把<cc>代码</cc>包围的这部分复制出来,然后在全部替换,最后把   替换好的cc部分用原先复制的替换,下面是代码:   var str=(“<%= realContent %>”); //需要处理的字符串   var codeStr;   //在匹配之前,得先把本来就是代码的部分提取出来,否则经过下面的正则表达式之后会被当作html标签显示   codeStr=str.match(/&lt;cc&gt;(.)*[^&lt;cc&gt;](.)*&lt;\/cc&gt;/g);   str=str.replace(/(&lt;)/g,”<“);   str=str.replace(/(&gt;)/g,”>”);   str=str.replace(/(&quot;)/g,”\””);   str=str.replace(/(&apos;)/g,”\'”);   str=str.replace(/(&nbsp;)/g,” “);   if(codeStr!=null){   for(var i=0;i<codeStr.length;i++){   str=str.replace(/<cc>(.)+[^<cc></cc>](.)+<\/cc>/,codeStr[i].substring(codeStr[i].indexOf   (“&gt;”)+4,codeStr[i].lastIndexOf(“&lt;”)).replace(/   (&lt;br&gt;&amp;nbsp;&amp;nbsp;)/g,”<br>”).replace(/(&amp;nbsp;)/g,” “));   }   }   $(“.p1”).html(str);   7.结果上面6步,代码部分就算完成了

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/47823.html

(0)
上一篇 2024年 9月 4日 下午2:51
下一篇 2024年 9月 4日

相关推荐

关注微信