通常我们在项目开发中,使用px
作为尺寸的单位,而不是使用相对单位,如:rem
、em
等。在万物互联的时代,最好的方式是相对单位rem
、vh
、vw
等现代 CSS 布局(如 flexbox 和 grid)方式,最大限度的支持各种终端设备。
px
:是一个绝对单位,主要是因为它是固定的,不会根据任何其他元素的测量而改变。vw(viewpoint width)
:相对于视口的宽度vh(viewpoint height)
:相对于视口的高度rem(font size of the root element)
:相对于根 ( ) 元素 (默认字体大小通常为 16px )em(font size of the element)
:相对于父元素%
:相对于父元素display:inline
):无法设定宽高,元素大小由内容大小决定,不会自动换行,从左到右排列,内部不能嵌套块级元素display:block
):会自动换行,宽度默认父元素的宽度,高度默认内容高度display:inline-block
):可以设置宽高,排列方式从左向右a 标签的 href 属性设置为href="javascript:;"
||href="javascript:void(0);"
,通过执行空 js 代码,阻止跳转
在 a 标签点击事件上使用e.preventDefault()
与window.event.returnValue=false
,后者兼容 ie,以此阻止 dom 元素默认行为
点击事件 使用 location.href = url 进行跳转。
搜索引擎后台有个非常庞大的数据库,数据库存储海量关键词,每个关键词对应多个网址。这些数据由蜘蛛每天在互联网中收集获取,从一个链接爬行到另一个链接,对当前网页进行提炼关键词,之后将关键词与对应网站保存在数据库中,而当我们使用搜索引擎时,搜索引擎肯定会将与搜索词与数据库中存在的关键词对比,匹配程度越高的关键词对应的网站越是优先展示在前面。而 seo(seach engine optimization)就是在此基础上,对当前网站进行优化,改进网站对应关键词在搜索引擎中的排名,获取更多的曝光程度。
前端进行 seo 优化无非是期望通过对网页的处理,使得爬虫对当前网站提取出的关键词更加贴切,提高网站关键词在搜索引擎中的排名。
el = nofollow
属性,告诉蜘蛛不要去爬取,因为爬取外链可能蜘蛛就不回来了。meta 标签位于 html 的 head 区域,它描述了当前网页的各种信息,比如页面的说明,关键字,修改日企等。对于用户它是不可见的,它服务于浏览器,搜索引擎及其他网络服务。
// 当前网页字符编码utf-8
<meta charset="utf-8"/>
// 当前网页关键字,seo优化会用到
<meta name="keywords" content="便于seo优化"/>
// 描述当前网页干什么的
<meta name="description" content="当前网页说明"/>
// 声明网页字符编码
<meta name="content-Type" content="text/html"/>
页脚固定在底部分两种情况考虑,一种是有滑动栏的情况,一种是没有的。后者比较简单,直接加上定位属性就是了,但是在页面内容是扩充整个页面以至于可以下滑浏览时,这时候单纯加上定位属性就不那么可行了,鉴于此我写了一个通用的js方法帮我搞定所有可能页脚固定的情况。
废话不多说,直接来干货:
<!DOCTYPE html>
<html>
<head>
<style>
*{
margin: 0;
padding: 0;
}
div{
vertical-align: middle;
display: inline-block;
float:left;
text-align: center;
}
.footer{
height: 50px;
width: 80%;
background:#111;
color:white;
}
</style>
<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
</script>
<script>
$(document).ready(function(){
function t(){
var e = $(".footer");//获取页脚div的对象
var h = e.offset().top + e.height() ;//获取页脚偏移量加页脚高度的值
//判断页脚div底部到页面顶端的实际距离是否小于页面可见区域高度
if(h < document.body.clientHeight){
//当页面刚好可以包容所有内容不需要下拉时直接加上个定位就是了,当然这里也可以用绝对和相对属性
//具体设置根据你实际情况来定吧
$(".footer").css({position:"fixed",left:"20%",bottom:"0px"});
return;
}
function t2(){
var a = $(document).scrollTop()+document.documentElement.clientHeight;//获取页面滑动偏移量加页面可见区域的高度
//判断页脚div底部到页面顶端的实际距离是否小于页面滑动偏移量加页面可见区域高度
if(a >= h){
//如果页面内容太多,需要下滑展示的时候,给页脚一个固定定位属性
$(".footer").css({position:"fixed",left:"20%",bottom:"0px"});
}else{
//当页面重新上滑页脚需要被隐藏的时候移除它的定位属性,这样不论何时,它肯定是被页面撑起来固定到底部展示的。
$(".footer").removeAttr("style");
}
}
t2();
//在页面大小改变时触发方法t2
$(document).resize(t2);
//在页面滑动时触发方法t2
$(document).scroll(t2);
}
//直接运行方法t
t();
});
</script>
</head>
<body>
<div style='height:1500px;width:20%;background:blue;'><span style="line-height: 500px;color:white;">左侧导航栏</span></div>
<div style='height:80px;width:80%;background:#ccc;'><span style="line-height: 80px;">这是一个页头</span></div>
<div style='height:300px;width:30%;background:#AAA;'></div>
<div style='height:150px;width:30%;background:#dda;'></div>
<div style='height:150px;width:30%;background:#bbb;'></div>
<div style='height:900px;width:80%;background:#eee;'></div>
<div class='footer'><span style="line-height: 50px;">这是一个页脚</span></div>
</body>
</html>
显示效果为
在页面上直接用鼠标的滚轮垂直滚动,可以实现三个页面之间横向滚动的效果。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS实现窗口横向滚动</title>
<style>
.container {
display: flex;
overflow-x: scroll;
}
.page {
width: 100vw;
height: 100vh;
flex-shrink: 0;
}
.page:nth-child(1) {
background: hsl(140deg, 50%, 50%);
}
.page:nth-child(2) {
background: hsl(210deg, 50%, 50%);
}
.page:nth-child(3) {
background: hsl(270deg, 50%, 50%);
}
</style>
</head>
<body>
<div class="container">
<div class="page">页面1</div>
<div class="page">页面2</div>
<div class="page">页面3</div>
</div>
</body>
</html>
<script>
let container = document.querySelector(".container");
container.addEventListener("wheel", (event) => {
event.preventDefault();
container.scrollLeft += event.deltaY;
});
</script>
本代码仅供参考,如有漏洞之处,欢迎指出。
原网址: 访问
创建于: 2023-08-04 11:18:31
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
最新评论