记录

网页的效果可以访问https://test.jmbaozi.top/homepage/进行查看,或者下载源代码本地浏览。

1.canvas标签表面无法添加其他内容

HTML5中引入<canvas>标签,用于图形的绘制,<canvas>为图形的绘制提供了画布,是图形容器,具体的图形绘制由JavaScript来完成。在该网页中我加入了气泡特效作为背景(原文),但是由于canvas的特性,无法将其他内容覆盖到气泡特效上面。所以采用了另一种方法,将<canvas>标签的属性写为

#canvas{
    border: 1px;
    top: 0px;
    left: 0px;
}
<canvas id="canvas" width="3000" height="1080"></canvas>

这样设置可以使气泡铺满大部分显示器(如果你是土豪超大屏,就当我没说),同时为了让小屏可以适应,取消了X,Y方向的滚动条:

html{
	overflow-x: hidden;
	overflow-y: hidden;
}

最后将想要添加的内容直接设置定位和尺寸属性,比如头像放置的位置在右边的某个位置:

#touxiang{
    position: absolute; 
    left: 1375px;
    top:150px;
}
<div id="touxiang">
	<img src="img/touxiang.jpg" width="200" height="200">
</div>

2.字体设置

p标签内的字体动态换行时会产生重叠,原因是在设置行高时尺寸小于字体的尺寸。

p{
    font-size: 23px;
    /* line-height: 10px; */
    font-family: 隶书;
}

3.壁纸尺寸设置

在壁纸一页中,因为每张壁纸的尺寸不同,有手机壁纸,也有电脑壁纸,所以为了美观,将电脑壁纸放在了手机壁纸的前面。同时将每张壁纸的尺寸都按比例缩小。同时当鼠标放到图片上时,图片会适当放大。

img{
	width: 500px;
	/* float: left; */
	padding: 1.5%;
}
img:hover{
	width: 600px;
}

其中,为了实现按比例缩放,仅需要设置宽或者高,另一个就会自动缩放。在这里,我设置了宽为500px。

4.将JS函数的结果输出到网页

目的为将九九乘法表输出到网页,利用js函数可以很轻易地得到结果:

function mulTable(){
	for(var i=1;i<10;i++){
		for(var j=i;j<10;j++){
			document.write(i+"x"+j+"="+i*j+"")
			if(j==9){
				doucument.write("<br>")
			}
		}
	}
}

<button onclick="mulTable()">点我查看九九乘法表</button>便可以打印出结果,但是因为是由按钮来调用后加载的,结果会将原先加载的内容冲刷掉,只留下九九乘法表,显然这不是应该的效果。

理想的效果是将结果输出到一个<div>中,我之前搜索了一些方法,有的使用各种框架,也有的方法无效,后来我就想到能不能先将结果保存到一个数组中,最后将这个数组添加到容器中,显然,这种方法是可行的,但是又发现了一个问题,就是输出数组的时候会将每个元素之间的逗号”,”也输出,这样就非常的难看。搜索解决方后我找到了这个一眼就能看明白的方法,先将别数组中每个元素遍历到一个字符串中,最后将这个字符串输出到相应的容器中。这样,就形成了最终版:

大体步骤:利用循环得到”1x1”到”9x9”的结果,将其放入一个数组,然后再将数组内的元素放入一个字符串中,最后用innerHTML方法将字符串输出到<div>中。

<div id="result"></div>
<script>
function mulTable(){
	var result = new Array()
	for(var i=1;i<10;i++){
		for(var j=i;j<10;j++){
			result.push(i+"x"+j+"="+i*j+"")
			if(j==9){
				result.push("<br>")
			}
		}
	}
	var c = ""
	for(var i =0;i<result.length;++i){
		c += result[i]
	}
	var x = document.getElementById("result")
	x.innerHTML = c
}
</script>

这样看起来似乎是没有问题了,但是。。。当我写完的时候我突然意识到为什么不直接用字符串,省去数组这一步🙃

<div id="result"></div>
<script>
function test(){
    var result = ""
    for(var i=1;i<10;i++){
        for(var j=i;j<10;j++){
            result += (i+"x"+j+"="+i*j+"")
            if(j==9){
                result += ("<br>")
            }
        }
    }
    var x = document.getElementById("demo")
    x.innerHTML = result
}
</script>

5.超链接在新窗口中打开

有时候需要在顶部导航栏设置<a>标签来链接到对应的网站,如果不想覆盖原网页,需要设置target属性:

<a href="https://jmbaozi.top/" target="_blank">博客</a>