以Chrome为例,自定义一个浏览器的起始页

Chrome的标签页有两个个人不太喜欢的点。一个是无法自定义浏览器的访问按钮,一个是搜索框在顶上的标签栏。在手机上,夸克浏览器的起始界面用户体验非常好,就是没找到电脑版,也没有换浏览器的打算。所以打算自己先写个起始页用一下。

声明: 所有代码是个人在学习和测试的过程中出现的,代码不算规范,是个半成品,仅能满足简单的功能。绝大部分内容在添加JS之后会颠覆。仅供参考,欢迎指正。

一、交互原型设计

由于是自己用,不需要完成复杂的交互设计流程,所以在设计的时候只按照自己的喜好画了下低保真。
工具:axure

好简单是吧,嘿嘿。
主要由三个部分组成:搜索框、网站入口、添加删除按钮。
本文的内容主要实现搜索框和网站入口两个方面!!!
交互式添加和删除需要JavaScript编写行为,后面页面全部完成之后会另写文章。

在逛b站的时候看到了一个挺有意思的交互样式,在参考之后有了如下的样式。[1]


二、具体实现

工具:atom
废话不说,注释放在了代码里面。

HTML

<!DOCTYPE html>
<html lang="zh-CN" dir="ltr"><head><meta charset="utf-8"><title>自定义的起始页</title><link rel="stylesheet" href="beginPageCss1.css" type="text/css"></head><body><div class="backgroundBox1"><div class="backgroundBox2"><!-- backgroundFormStyle盒子里面放的是整个搜索框 --><!-- 这里使用百度搜索引擎。 --><div id="backgroundFormStyle"><form action="https://www.baidu.com.cn/s" method="get" target="_parent" id="searchForm"><input type="hidden" name="hiddenInput" value="3"/><input type="text" name="wd" placeholder="别看了,这玩意儿是搜索框。" id="searchInput" autocomplete="off"/><input type="submit" value="" id="confirmInput"/><!-- 确定按钮简化为一个小圆圈。 --></form></div><div class="iconBackBoxAll"><!-- 每一个网站入口包含两个信息,图片和名称。 --><!-- 在href中填写网站的地址,p标签中填写名字。 --><!-- 不涉及JavaScript的话,建议使用a标签实现链接。 --><a class="iconBackBox" href="https://www.bilibili.com/"><img src="icon/bilibili.png" alt=""><!-- src是图片的地址,alt是图片无法显示时的文字 --><div><p>bilibili</p></div></a><a class="iconBackBox" href="https://github.com/"><img src="icon/github.png" alt=""><div><p>github</p></div></a><a class="iconBackBox" href="https://www.csdn.net/"><img src="icon/csdn.png" alt=""><div><p>csdn</p></div></a><a class="iconBackBox" href="https://www.iconfont.cn/"><img src="icon/iconfont.png" alt=""><div><p>iconfont</p></div></a><a class="iconBackBox" href="https://www.aliyun.com/"><img src="icon/阿里云.png" alt=""><div><p>阿里云</p></div></a><a class="iconBackBox" href="https://www.cnki.net/"><img src="icon/中国知网.png" alt=""><div><p>中国知网</p></div></a><a class="iconBackBox" href="https://leetcode-cn.com/"><img src="icon/LeetCode.png" alt=""><div><p>LeetCode</p></div></a><a class="iconBackBox" href="http://www.xjtu.edu.cn/"><img src="icon/西安交通大学.png" alt=""><div><p>西交大</p></div></a></div></div></div><!-- 下面是添加和删除的按钮,这里暂未实现功能,先放这里配个像。不想要可以删除 --><div class="setButtonBox"><button type="button" name="button" autocomplete="off" id="addBut"></button><button type="button" name="button" autocomplete="off" id="deleteBut"></button></div><!-- 以下是JavaScript文件 (还没写)--></body>
</html>

css

*{/* 清除所有的padding、margin和border */margin: 0;padding: 0;border: 0;
}
body {background-color: #EFEEEE;/* 长按鼠标并滑动的时候回选中框内的内容,这里禁止选中所有文本。 */-moz-user-select:none;/*火狐*/-webkit-user-select:none;/*webkit浏览器*/-ms-user-select:none;/*IE10*/-khtml-user-select:none;/*早期浏览器*/user-select:none;
}/** 以下是背景盒子的属性设置*//* 两个盒子的属性主要是为了进行定位 */
.backgroundBox1 {background-color: inherit;width: 600px;height: 400px;position: absolute;left: 50%;margin-left: -300px;top: 50%;margin-top: -200px;
}
.backgroundBox2 {background-color: inherit;width: inherit;height: inherit;position: relative;
}/** 以下是有关的搜索框的布局*/#backgroundFormStyle {position: relative;height: 20%;width: inherit;
}
#searchForm {/* 搜索框的属性设置 */position: absolute;width: 500px;height: 40px;/* 盒子居中 */top: 50%;margin-top: -20px;left: 50%;margin-left: -250px;/* 圆角属性,可以根据自己的喜好调节,50%盒子就是个圆形 */border-radius: 20px;/* 两个阴影属性,做出凸起的效果。 *//* 第一个阴影为白色,向左和上移动。 *//* 第二个阴影为黑色,向右和下移动。 *//* 参数分别为:x方向偏移 y方向偏移 阴影模糊半径 颜色 */box-shadow: 12px 12px 20px rgba(0, 0, 0, 0.2),-12px -12px 20px rgba(255, 255, 255, 1);
}
/* 注意:这里是搜索框的样式,和网站入口按钮不同,没有鼠标悬停点击等状态效果。 */
#searchInput {width: 90%;height: inherit;margin-left: 20px;background-color: inherit;/* outline用来清除点击搜索框的时候出现一个黑色小边框 */outline: none;
}
#confirmInput {/* 把确认按钮变成黑色边框小圆圈 */width: 5%;height: 20px;width: 20px;background-color: white;position: absolute;right: 10;top: 50%;margin-top: -10px;border-radius: 50%;border-color: black;border-width: thick;border-style: solid;outline: none;
}
#confirmInput:hover {/* 鼠标悬停到确认按钮上变成小手手 */cursor: pointer;
}/** 下面是关于网站入口的按钮布局*/.iconBackBoxAll {position: absolute;/* 横向居中 */left: 50%;margin-left: -240px;bottom: 0;width: 480px;height: 70%;
}
.iconBackBoxAll>a {background-color: inherit;position: relative;/* 使用左浮动来布局,如果您的网站入口不是8个,建议另外进行布局 */float: left;width: 80px;height: 80px;margin: 20px;border-radius: 20%;box-shadow: 12px 12px 20px rgba(0, 0, 0, 0.2),-12px -12px 20px rgba(255, 255, 255, 1);/* 小手手 */cursor: pointer;/* 动画,阴影过度,做出一个纸面下凹的效果。 *//* 参数:需要改变的样式(all是所有)  改变的时间  速度函数 *//* 注意注意注意!!!!* 这里必须填写速度函数,即便默认曲线就是ease,我也没搞清楚为啥。* 后面需要从外阴影过渡到内阴影。在测试的时候,如果不写速度函数曲线没有效果。* 其他样式,比如改变盒子宽高颜色没啥问题。希望有大佬帮忙解答一下原因。*/transition: all .2s ease;
}
.iconBackBoxAll>a img {/* 图片定位 */position: absolute;width: 46px;height: 46px;top: 50%;margin-top: -30px;left: 50%;margin-left: -23px;
}
.iconBackBox>div {/* 文本定位 */position: absolute;width: 60px;bottom: 5px;left: 50%;margin-left: -30px;text-align: center;
}
.iconBackBox>div p {/* 文本样式 */color: #6B6B6B;font-size: 12px;
}/** 下面是关于网站入口的伪类选择器*/.iconBackBoxAll>a:hover {/* 这里改变盒子阴影 *//** 四个参数:* 前两个是黑白阴影从外阴影过渡到没有阴影* 后连个是黑白阴影从没有阴影过渡到内阴影*/box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.2),0px 0px 0px rgba(255, 255, 255, 1),12px 12px 20px rgba(0, 0, 0, 0.2) inset,-12px -12px 20px rgba(255, 255, 255, 1) inset;
}
.iconBackBoxAll>a:active {/* 点击时改变样式,加深效果 */box-shadow: 10px 10px 30px rgba(0, 0, 0, 0.2) inset,-10px -10px 30px rgba(255, 255, 255, 1) inset;
}/** 下面是对于增加和删除按钮的属性设置*//* 这里两个按钮没有功能,在删除html文件中的两个按钮的同时,可以选择删除这里的样式 *//* 具体的思路和网站入口一样 */
.setButtonBox {/* background-color: red; */position: fixed;right: 100px; bottom: 50px;
}
.setButtonBox button{width: 40px;height: 40px;margin: 15px;border-radius: 50%;box-shadow: 12px 12px 20px rgba(0, 0, 0, 0.2),-12px -12px 20px rgba(255, 255, 255, 1);cursor: pointer;outline: none;transition: all .2s ease;
}
#addBut {background-image: url(icon/addButton.png);background-position: center;background-repeat: no-repeat;background-size: contain;
}
.setButtonBox button:hover{box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.2),0px 0px 0px rgba(255, 255, 255, 1),12px 12px 20px rgba(0, 0, 0, 0.2) inset,-12px -12px 20px rgba(255, 255, 255, 1) inset;
}
#deleteBut {background-image: url(icon/delete.png);background-position: center;background-repeat: no-repeat;background-size: contain;
}
  • 图标来源:iconfont图标库。[2]
  • HTML5添加一个百度搜索栏。[3]
  • HTML参考手册[[4]
  • css / css3参考手册[5]

三、Chrome浏览器设置成起始页、主页和标签页

起始页、主页

  1. 进入设置页面
  2. 在“启动时”修改起始页
  3. 在“隐私设置和安全性——显示“主页”按钮”设置主页
  4. 将编写的html文件的绝对地址添加到相应的位置。(可以用浏览器打开html文件,复制上面的地址)

标签页(将内容打包成为扩展程序) [6] (参考)

  1. 新建一个文件夹并命名,例如“chromeMainPage”
  2. 将所有文件放进这个文件夹中
  3. 新建一个文本文档,并写入以下内容:
{"name":"ChromeMainPage_html",
"description":"写点你想写的,反正也看不到,后面几句才是重点",
"manifest_version":2,
"version":"1.0",
"chrome_url_overrides":{"newtab":"beginPage.html"}
}
  1. 将文件名改成manifest.json以生成一个json文件,并将它放进刚刚新建的chromeMainPage文件夹中
  2. 在chrome浏览器中找到“更多工具——扩展程序
  3. 点击“打包扩展程序”,会在chromeMainPage同级的文件夹中生成“chromeMainPage.crx”和“chromeMainPage.pem”这两个文件。
  4. 将“chromeMainPage.crx”文件拖入扩展程序的窗口添加完成并更新。(或者点击“加载已解压的扩展程序”浏览找到chromeMainPage文件夹。)
  5. 启用这个扩展程序,标签页便被更改了。
  6. 如果选择下插件来做标签页的更改,那上面8条就是放屁。 (参考)

四、未来优化方向

  • JavaScript实现交互式添加和删除网站入口,如下是低保真

  • 网页入口的布局不合理,只能容纳八个入口,少于八个之后不会居中,不太好看。为了适应后面动态添加和删除,未来这里的html和css样式会大不一样。

  • 有些细节可能没有到考虑浏览器的兼容性。

五、参考文献

[1]https://www.bilibili.com/video/BV1nt4y1Y79W?from=search&seid=14624563172662787229
[2]https://www.iconfont.cn/
[3]https://blog.csdn.net/weixin_42584156/article/details/89094334?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
[4]https://www.w3school.com.cn/tags/index.asp
[5]https://www.w3school.com.cn/cssref/index.asp
[6]https://blog.csdn.net/pangdingshan/article/details/7172803?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161919493716780261993688%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161919493716780261993688&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-12-7172803.pc_search_result_cache&utm_term=chrome%E8%87%AA%E5%AE%9A%E4%B9%89%E6%89%A9%E5%B1%95%E7%A8%8B%E5%BA%8F

自定义浏览器起始页、主页和标签页(html+css)相关推荐

  1. [html] 浏览器内多个标签页之间的通信方式有哪些?

    [html] 浏览器内多个标签页之间的通信方式有哪些? 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

  2. 浏览器中新开标签页(Tab)

    #!usr/bin/env python #-*- coding:utf-8 -*- """ ab @author: sleeping_cat @Contact : zw ...

  3. Edge浏览器使用 Infinity 新标签页 (Pro)插件

    Edge浏览器安装Infinity 新标签页 (Pro)插件后,浏览器界面如下: 当关闭浏览器,再次打开时,界面又还原为: 这时我们点击浏览器右上角的3个点,在弹出界面点击"设置" ...

  4. SUI Moblie 中出现$.init() 或$.alert()not a function和自定义Moble中的嵌套标签页时,点击tab2时一直出现tab1的内容

    1.$.init() not a function. sum插件与jQuery库出现冲突,sm.js 的引用顺序导致$.alert()无效,不要放在de ><head>de>中 ...

  5. 一款可以完美替代浏览器自带起始页的新标签页插件:Wetab

    现在打开你们的浏览器,映入眼帘的是不是一片空白的自带起始页?或者是乱七八糟布满网站快捷方式的页面? Wetab新标签页是一款没有广告并且免费使用的浏览器插件,还原一个干净纯粹的浏览器体验. 一.为什么 ...

  6. edge搁置标签页_如何自定义Microsoft Edge的新标签页

    edge搁置标签页 The latest Microsoft Edge browser is based on Google Chrome's Chromium software. Both brow ...

  7. Edge浏览器使用BdTab新标签页插件(BD新标签页)

    当我们的浏览器成功安装BdTab新标签页插件之后的效果: 如果我们在关闭浏览器,重新打开之后回到edge浏览器的默认界面时(如下): 这个时候我们首先要确定BdTab新标签页插件是否开启了,这个是否开 ...

  8. Chrome 浏览器打卡新标签页,重定向到指定网址,如 https://www.baidu.com/

    Google Chrome 浏览器.VPN 0.打开 Google Chrome 浏览器的网上应用店 1.搜索插件 New Tab Redirect,添加至 Chrome 浏览器 2.添加完成后,打开 ...

  9. gunicorn多进程不死_WEB,gunicorn - 无论是多进程、多线程、协程模式,同一个浏览器窗口多个标签页访问同一个url,看上去不会并发的问题...

    TL;DR 其实是浏览器同一个窗口下限制了对同一个url会执行串行操作. 1.参考 2.现象 我有一个WSGI APP,每次处理request都睡眠5秒.不管多进程.多线程.协程跑WSGI APP,同 ...

最新文章

  1. Redis、Kafka 和 Pulsar 消息队列对比,写得太好了!
  2. iar升级芯片库_顶10个GPU!阿里巴巴重磅发布含光800芯片
  3. intelij idea java.lang.ClassNotFoundException
  4. python 线程类 threading.Thread.run() 方法
  5. hashset hastable dictionary concurrentdictionary区别
  6. 3d布料系统横向飘动_重磅首发!ZB 2021自带布料运算,独家中文字幕!妈妈再不担心我通宵改衣褶了...
  7. Yarn申请的内存的精确计算(转载+应用到自己的情况中)
  8. 20145308刘昊阳 《Java程序设计》实验五报告
  9. 吴恩达深度学习 —— 4.2 深层网络中的前向传播
  10. 扩展方法:给 IEnumerableTSource 扩展一个自定义数据源绑定的方法
  11. STM32F429i-DISCO FreeRTOS keil STM32CubeMX
  12. SpringBoot体验Mybatis、MybatisPlus、TKMybatis
  13. 记录所遇到的Windows蓝屏问题、网络错误、硬件故障等问题
  14. 北交《交通需求管理》
  15. 7z命令行压缩加密文件
  16. linux中文成方块,给linux添加字体
  17. mysql the cabinet_mysql 一个较特殊的问题:You can’t specify target table ‘wms_cabinet_form’ | 很文博客...
  18. 应用之星教你制作高下载量的App
  19. oracle销售退货业务,Oracle EBS OM RMA销售退货异常处理(Datafix)
  20. SCTP协议详解与实例

热门文章

  1. 创业公司第三方服务精选(移动互联网版)
  2. Python语言程序设计第二章编程题
  3. 错误: Unable to find explicit activity class ...have you declared this activity in your AndroidMa
  4. ionic 以及cordova apk打包成功,安装不成功,显示Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
  5. 苹果手机上滑动会卡顿_7种办法解决苹果手机卡顿 让你的手机用起来如丝般顺滑...
  6. 书记员计算机操作基础知识考试,书记员打字考试怎么考?有哪些形式?
  7. 计算机社团打字比赛规则,金手指打字比赛策划(最终版)
  8. 破圈的《张朝阳的物理课》,开启“知识突围”的搜狐视频
  9. Object Detection Made Simpler by Eliminating Heuristic NMS
  10. 【初识数据结构】c语言实现动态顺序表(已配图)