notebooks
  • notebooks
  • _planning
    • 2022 OKR
    • basketball
    • swimming
  • communication
    • Dubbo
    • Kafka
    • Messaging
    • RPC
    • Thrift
  • computation
    • map-reduce
  • cs-basic-knowledge
    • computer-architecture
    • data-structure-and-algorithms
    • networks
    • os
  • devops
    • Docker
    • Linux
    • Prometheus
    • operations
    • security
    • trouble-shooting
  • distributed-knowledge
    • Zookeeper_CMD
    • distributed-system
  • game-engine
    • Unity
  • others
    • appium使用
  • protocols
    • http(s)协议
    • 官方链接
    • sip
  • storage
    • Elasticsearch
    • GuavaCache
    • MySQL
    • MySQL_CMD
    • NoSQL
    • Redis
    • Redis_CMD
  • system-design
    • system-design
  • tools
    • Git
    • IDEA
    • Mac
    • VScode
    • Vim
  • _working
    • doc-template
      • backend-design-review
      • correction-of-error
      • service-review
    • process
      • domain-backup
      • oncall
  • blogs
    • history
      • 8088/8086微处理器
      • 8088/8086指令系统
      • CSS-DOM
      • CSS定位
      • CSS工作原理
      • CSS控制背景
      • CSS浮动布局
      • CSS盒模型
      • Chrome开发者工具使用方法
      • DOM
      • Django Model模型层学习
      • Django-REST-framework Serializers学习
      • Django-REST-framework Views和ViewSets学习
      • Django View视图层学习
      • Gvim下Emmet安装及使用教程
      • HTTP协议简介
      • HashMap原理初探
      • JavaScript简史
      • JavaScript语法
      • Java内存模型和GC机制
      • Java基础——Lambda学习
      • Java基础——方法引用
      • Java基础——枚举类型
      • Java类加载机制
      • KMP算法
      • Kafka学习
      • Linux下用命令行编译Java程序
      • MathJax简介和基本用法
      • Python实现常见数据结构
      • Python装饰器总结
      • TCP协议的三次握手和四次挥手
      • Thrift学习
      • asyncio学习
      • markdown的常用语法
      • 修改hosts文件实现翻墙
      • 充实文档的内容
      • 关系数据库
      • 关系数据库标准语言SQL(一)
      • 关系数据库标准语言SQL(二)
      • 关系数据理论
      • 关系查询处理和查询优化
      • 内联元素和块级元素
      • 剑指offer算法题练习
      • 动态创建标记
      • 图形化用户界面
      • 在Eclipse中使用Maven构建Java Web项目
      • 增加微博秀遇到的一些问题
      • 处理机调度
      • 如何用github和hexo搭建个人博客
      • 存储管理
      • 存储系统的层次结构
      • 学习模仿lionhit网站首页的过程总结
      • 实用的GitHub小技巧
      • 并发控制
      • 循环与分支程序设计
      • 指令系统的设计
      • 指令级并行及其开发——硬件方法
      • 搭建自己的VPN服务器
      • 操作系统用户界面
      • 数据库安全性
      • 数据库完整性
      • 数据库恢复技术
      • 数据库绪论
      • 数据库编程
      • 数据库设计
      • 数据抽象
      • 文件系统
      • 文法和语言
      • 最佳实践
      • 案例研究:JavaScript图片库
      • 案例研究:图片库改进版
      • 汇编语言程序格式
      • 汇编语言程序设计基础知识
      • 流水线技术
      • 深度优先搜索和广度优先搜索
      • 牛客网——网易2017秋招编程题集合
      • 用JavaScript实现动画效果
      • 第一篇博客
      • 经典排序算法总结(Java实现)
      • 经典查找算法总结(Java实现)
      • 综合示例
      • 编译原理引论
      • 背包、队列和栈
      • 虚拟机安装Linux系统及常用软件
      • 计算机操作系统绪论
      • 计算机系统结构的基础知识
      • 设备管理
      • 设计模式之代理模式
      • 设计模式之单例模式
      • 设计模式之工厂模式
      • 设计模式之策略模式
      • 设计模式之观察者模式
      • 词法分析
      • 进程管理
      • 闭包
      • 阻止Google自动跳转到香港服务器的方法
      • 项目部署过程
  • programming-language
    • C#
      • C#
    • C&C++
      • C
    • C&C++
      • C++
    • Java
      • GoogleGuice
    • Java
      • JVM
    • Java
      • Java
    • Java
      • Maven
    • Java
      • Mybatis
    • Java
      • Spring知识
    • Java
      • SpringBoot
    • Java
      • Tomcat
    • Python
      • Python
    • Shell
      • Shell
  • wheels
    • dcc
      • 产品调研
      • 方案设计
    • red-envelope
      • 方案设计
    • short-url
      • 短链接服务
    • sso
      • 方案设计
Powered by GitBook
On this page
  1. blogs
  2. history

学习模仿lionhit网站首页的过程总结

今天学习模仿了lionhit以前网站首页的页面,学习到了很多新知识,也遇到了许多问题,现在写篇博客总结一下。

开发过程

整个开发过程为: 首先整体布局,用div将头部,主体,尾部分别分割,还要用一个大的div包含头部、主体和尾部。然后依次从头部到中间内容到尾部依次分别开发,内容差不多开发完毕之后。然后进行色彩字体等微调。最后检查浏览器兼容情况并采取相应措施解决。

CSS初始化

css初始化的原因: 当我们对某些标签不设置样式时,浏览器通常会用自己默认的样式表来为这些标签添加样式,由于不同的浏览器默认的样式有所不同,所以会导致我们制作的网页在不同的浏览器上的某些标签样式不一致。

css初始化方法: 通过引入CSS初始化样式表来使CSS初始化。

CSS伪类

a标签伪类

  • a:link 未访问的链接

  • a:visited 已访问的链接

  • a:hover 鼠标移动到链接上

  • a:active 选定的链接

注意:四者顺序必须如此,不能更改。

字符实体

字体主要分为

  • 衬线字体 sans-serif

  • 无衬线字体 serif

问题: 由于每台电脑安装的字体可能不一样,写HTML页面时可能你用的字体在别人的电脑上没有。

解决办法: font-family: "微软雅黑" , SimHei , sans-serif; 意思是先在用户电脑上查找是否有微软雅黑字体,如果有则使用微软雅黑字体,否则查找SimHei,如果有则使用SimHei字体,如果还是没有,则在用户电脑上随便选一种无衬线字体(sans-serif)。

文字竖直居中放置

文字竖直居中放置方法: 设置行高line-height等于height高度。

div{
				height: 25px;
				line-height: 25px;
				overflow: hidden;
		}

使用overflow: hidden;的设置是为了防止内容超出容器或者产生自动换行,这样就达不到竖直居中的效果了。

文字竖直居中放置原理: 文本存在于文档流中,文档流指将窗体自上而下分成一行行,并在每行中按从左至右的顺序排放元素。文字在每行中居中显示,由于窗体存在多行,所以文字看起来就在右上方。当把行高设置成窗体高时,窗体中只存在一行,所以文字看起来就居中显示了。

img替换元素

问题: 如果img是块状元素,可是多个img标签显示的图片并排放置;如果img是内联元素,可是又能设置它的宽高。 img图片与其他元素会有3px的像素间隔。

原因: img是特殊的内联元素。对于普通的内联元素,显示的内容由标签决定,但是img显示的内容不知道,它由src引入的图片有关。浏览器不知道img标签的内容,它需要引入的内容代替,所以img是替换元素。替换元素是能够设置宽和高的。 通过设置img为块状元素,消除3px差距。

浏览器间常见的兼容性问题

主要的四类问题

  • 没有使用正确的DOCTYPE

  • 各浏览器对不同标签的初始值不同。解决方法:引入CSS初始化文件

  • 自身书写不规范。例如该浮动的元素未浮动

  • 浏览器bug

常见的浏览器bug

  • IE下盒模型bug 解决方法:使用严格的doctype声明

  • IE下双倍margin bug:对于左浮元素,左margin是定义的2倍,对于右符元素,右margin是定义的2倍 解决方法:_display: inline

  • IE不认识a:link 解决方法:直接写a,效果和a:link一样

其他

设置li列表项之间上下相隔距离:height

文本左右居中:text-align

不知道颜色时最好都设置一种背景颜色

div高通常不要设置,它会被内容所撑开

通常字体,颜色等不要用默认,因为不同浏览器默认的字体大小不一样,颜色设置也不一样,所以最好都自己设置一下。

Previous存储系统的层次结构Next实用的GitHub小技巧

Last updated 3 years ago