博客系统(页面设计)

news2024/11/18 1:26:02

努力经营当下,直至未来明朗!

文章目录

  • 前言
  • 一、【博客列表页】blog_list.html
    • 参考代码:
  • 二、【博客详情页】 blog_detail.html
    • 参考代码:
  • 三、【博客登录页】login.html
    • 参考代码:
  • 四、【博客编辑页】
    • 参考代码:
  • 【小结】环境+布局+代码参考
  • THINK


前言

一个人最大的痛苦来源于对自己无能的愤怒!

Hi,这里是不想秃头的小宝贝儿!
yyy
本文主要是完成【个人博客系统】的前端页面,后端在之后再进行补充。


【个人博客系统】
主要分成四个页面:

  • 博客列表页
  • 博客正文页
  • 博客登陆页
  • 博客编辑页

一、【博客列表页】blog_list.html

实现界面:
列表页

导航栏:由于每个页面都有一样的导航栏,所以将对应的样式提取到单独的css文件中,供页面进行调用。

  1. css文件:
    ① 一般写浏览器 要先清楚浏览器的默认样式
    ② 导航栏高度普遍都是50px
    ③ 写样式css的时候务必要参考着html的内容
    ④ 设置圆形:半径设置为尺寸的一半!!
    ⑤ 在布局页面时,元素之间的间隙既可以使用内边距也可以使用外边距,很多时候两者皆可,并没有具体限制、统一标准。
    ⑥ 使用内边距的特点:可以让元素的有效区域更大一些!!

  2. 【回顾】:弹性布局
    display:flex; // 开启弹性布局
    加上这个属性的元素的子元素就会按照弹性布局来排列

① 子元素就不再按照“块级元素”“行内元素”这样的规则来工作,统一都会排列成一个横行(补充:div独占一行,span不独占一行)
② 子元素可以使用 justify-content 来控制在水平方向如何排列 (可选属性看之前)
③ 子元素可以使用align-items来控制在垂直方向如何排列
布局是加在父元素上的,子元素自身没有布局

(布局特指的是位置的排列(放在哪里),是一种特殊的样式)

(如果记不住CSS样式,就使用 mdn+搜索的关键词 去查一下)

  1. 如果想要给整个页面设置背景,就需要给body标签设置背景!那么就需要让body标签先撑满浏览器窗口!
  • 块级元素默认宽度就是100%和父亲一样宽,而html、body、div都是块级元素
  • 高度默认是把内容进行包裹的

但凡是左右排列成一行的都可以使用弹性布局

/* 100% 表示父元素高度 */
/* calc是库函数,用于计算的 */
/* 减号两侧务必有空格!! :
 因为CSS中广泛使用脊柱命名法,所以为了进行区分就务必加上空格*/
    height: calc(100% - 50px);
  1. 注:内边距是设置内容和边框之间的距离; 外边距是设置元素和元素之间的距离!!

  2. 会发现设置文字居中没有用,是因为a是行内元素,默认尺寸就是和内容是一样的,所以文字居中没有效果。
    需要先转成块级元素

display: block;

注:行内元素无法设置尺寸,无法设置外边距,内边距左右能设置,上下不能设置!

display:flex;  弹性布局:是对子元素起作用,  
display:block; 块级元素:只对自己有用。
  1. 由于html标签中包含了很多的>和<,因此如果正文中包含了>和<,就需要使用转义字符,否则浏览器可能会解析出错

注意:① 不直接使用>,而是使用转义字符形式 &gt; => greater than
② 不直接使用<,而是使用转义字符形式 &lt; => less than

  1. 写样式CSS时尽量多使用后代选择器/子选择器,慎重直接使用类名,因为类名很有可能会重复

  2. 注意水平居中差别:
    ① 文字: text-align: center;
    ② 元素:margin: 0 auto;
    (每个html都可以称为一个元素)

  3. 相关属性

/* 文字垂直居中 :行高和元素高度一样!!*/
    line-height: 40px;

/* 加上背景渐变效果:过渡属性 */
    transition: all 2s;
  1. 当博客过多的时候会溢出设计好的页面,那此时怎么办呢?
    让滚动条出现在右侧内容区!

(滚动条的样式也是可以通过CSS来设置的,但是滚动条的样式不是标准CSS支持的,是依赖浏览器的扩展——所以这里不进行设置)

参考代码:

blog_list列表页


二、【博客详情页】 blog_detail.html

详情页页面:
详情页

  1. 博客详情页 的大体结构和 列表页非常相似,所以就把相同的html进行复制,并引入对应的CSS。

① 把相同的html进行复制,是美中不足的,因为会有额外的维护开销。
② 前端中也确实是有办法重用html代码的:可以通过js来生成html,但是写起来比较麻烦,所以这里不进行重用了,直接进行复制代码

  1. 目前在详情页中显示的正文是构造的虚假内容,先不考虑数据样式;后期进行真正内容添加的时候是结合后端的,在这儿显示的是Markdown渲染出来的html。

  2. 要实现点击 列表页中的 查看全文 就会跳转到 详情页的内容(所以去 列表页修改一下超链接)
    (这里有不合理的跳转,但是这个留到写后端时进行调整)

参考代码:

blog_detail详情页


三、【博客登录页】login.html

登录页面效果:
登录

(补充:可以加背景音乐,使用audio标签,可以自己搜一下)
登录页面没有“注销”按钮,注销其实就是退出登录

参考代码:

login登录页


四、【博客编辑页】

编辑页效果:
编辑页

  1. 只要需要水平方向排列多个元素就使用弹性布局!!

在文章标题输入框中有提示信息:是input的一个特殊属性:placeholder:提示用户这里输入啥,但是这个提示不影响用户的使用

  1. 无论前端还是后端,在进行实际开发的时候,并不是所有的功能都是我们自己去实现的,有大量现成的功能是可以直接调用第三方库来完成的!(实际开发中使用第三方库很多!)

  2. editor.md 是一个开源的Markdown编辑器:
    ① 使用简单
    ② 作者是中国人(则文档是中文的!)

  3. 将 editor.md 引入页面中的方法:
    1)进行editor.md安装
    ① 【直接搜editor.md】网址:editor.md
    https://pandao.github.io/editor.md/
    ② 直接从Github上下载,然后解压,解压后将整个文件夹粘贴到该博客文件夹下(可以进行改名editor.md)——目录一定要搞对!并且该文件夹的名称要与后面使用的时候进行对应!
    1

2)将editor.md 引入到项目中

引入到 <head> </head>中

Editor.md 的官方文档上有一些示例,能够告诉我们如何操作(在官网上点击示例进入后,右键就可以查看源代码)

在引入过程中务必要保证引入的路径是对的!!也就是说相对路径要正确! (基准目录,也就是当前文件blog_edit.html所在的目录)

会发现jquery在editor.md文档中找不到,因为其是一个另外的第三方库,不是editor.md自带的!
缺少就无法实现Markdown编辑器,所以要手动引入jquery

jquery的引入方式:
(引入 直接参考以下的代码!!)
① 搜索jquery cdn :
阿里云jquery
直接看百度cdn的链接:
https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js

复制该cdn链接后到地址栏中尝试能否打开该路径,能够打开就正确(一定要尝试打开!! 能打开才ok!!)

② 直接使用这个网络路径来代替原来的jquery路径:https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js

前端的第三方库的引入非常简单,一般就是把对应库的css和js引入到自己的html中即可:css和js可以下载到本地使用本地路径,也可以直接使用网络路径

3) 初始化Markdown编辑器(在script中)
3

4)如果上述工作顺利完成,此时页面上就能够加载出一个Markdown编辑器了

但是会发现一个问题,该编辑器的半透明效果在正文编辑区样式设计时使用rgba无法起到效果,因为被该编辑器自身效果覆盖了,但是编译器是第三方库,我们不好修改。

此时就需要使用CSS中设置半透明的另一个属性opacity + 透明度(百分数):该属性的特点就是能够让里面的子元素也跟着一起透明!!

参考代码:

blog_edit编辑页

【前端简单了解就行,能够基本看懂前端代码即可!】


【小结】环境+布局+代码参考

  1. 使用的是VSCode
  2. 布局如下所示:
    (在一个新建的blogSystem文件夹下)
    5
  3. 完整参考代码:
    blogSystem完整前端代码

THINK

  1. 前端只是大致掌握,大致了解常用属性的使用
  2. 基本能够看懂前端代码就行
  3. 一行一行就使用弹性布局:display:flex;
  4. 行内元素的限制 -> 转为块级元素 :display:block;
  5. 博客系统前端页面设计复盘!
    11111

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QFtp的使用

1. 环境 Win10 QT5.9.9 2. 相关说明 Qt5.0之后移除了QFtp类&#xff08;基于FTP协议实现的一个类&#xff09;&#xff0c;并且使用 QNetworkAccessManager 实现了 Ftp 的上传/下载功能。尽管后者在性能上和稳定性上有所提升&#xff0c;但有些原本 QFtp 有的功能 QNetwork…

什么是微服务?

文章目录什么是微服务微服务技术栈单体架构分布式架构认识微服务微服务技术框架SpringCloud什么是微服务 当我们提到微服务&#xff0c;很多人第一反应就是SpringCloud&#xff0c;但是微服务技术并不能与SpringCloud完全划等号&#xff1a; 微服务是分布式架构的一种&#x…

AI视频监控在畜牧养殖中的技术应用解决方案

一、方案概况 随着养殖业迅猛发展的同时也给养殖业主带来了严峻挑战。对养殖业来说&#xff0c;养殖场大多建立在偏远地区&#xff0c;给集中管理带来不便&#xff1b;畜禽养殖成本大&#xff0c;丢失、偷盗等情况时有发生&#xff0c;容易造成巨大的经济损失。建立一套远程视…

013. N 皇后

1.题目链接&#xff1a; 51. N 皇后 2.解题思路&#xff1a; 2.1.题目要求&#xff1a; 给一个数字 n &#xff0c;要求返回所有 n 个 皇后能在 n X n 的棋盘上 不相互攻击 的情况。 能攻击到的情况&#xff1a;以皇后自身为原点&#xff0c;横、竖、同斜线&#xff08;45度…

Linux搭建单机多进程zookeeper集群

01 ZooKeeper是什么 ZooKeeper 是一个开放源码的分布式协调服务&#xff0c;它是集群的管理者&#xff0c;监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终&#xff0c;将简单易用的接口和性能高效、功能稳定的系统提供给用户。 分布式应用程序可以基…

用数字隔离器取代传统的光耦合器

介绍 光耦合器是一种已有几十年历史的技术&#xff0c;广泛用于信号隔离&#xff0c;通常提供安全隔离、信号电平移位和地面回路缓解。它们通常用于广泛的终端应用中&#xff0c;包括数据通信电路、开关模式电源系统、测量和测试系统&#xff0c;以及孤立的数据采集系统。光耦…

【入门】初识深度学习

文档背景 机器学习和深度学习的概念十分火热。听上去也很难&#xff0c;不慌&#xff0c;有时候就需要行动在前脑子在后。不管&#xff0c;干就完啦。 前言 人工智能&#xff08;ArtificialIntelligence&#xff0c;AI&#xff09;是最宽泛的概念&#xff0c;是研发用于模拟、延…

数据库基本语法

SQL常用语句总结 mysql -u root -p mysql会提示你输入密码&#xff0c;输入安装配置MySQL服务时设置的密码即可。 输入如下命令生成样例数据库&#xff1a; CREATE DATABASE university; USE university; SOURCE <DLL.sql文件路径>; SOURCE <InsertStatements.sql文…

Jenkins实践指南--pipeline概述

1.pipeline概述 1.1 什么是pipeline 从某种抽象层次上讲&#xff0c;部署流水线&#xff08;Deployment pipeline&#xff09;是指从软件版本控制库到用户手中这一过程的自动化表现形式。——《持续交付-发布可靠软件的系统方法》 pipeline 英语愿意为管道&#xff0c;在Jen…

Python之路—200行Python代码搞了个打飞机游戏!!

早就知道pygame模块&#xff0c;就是没怎么深入研究过&#xff0c;恰逢这周未没约到妹子&#xff0c;只能自己在家玩自己啦&#xff0c;一时兴起&#xff0c;花了几个小时写了个打飞机程序。 很有意思&#xff0c;跟大家分享下。 先看一下项目结构 1 2 3 4 5 6 7 8 9 10 11 1…

盒子模型-css

个人学习笔记 文章目录1.什么是盒子模型&#xff1f;2.外边距3.css边框4.内边距1.什么是盒子模型&#xff1f; HTML文档中的每个元素都被描绘成矩形盒子&#xff0c;这些矩形盒子通过一个模型来描述其占用的空间&#xff0c;这个模型称为盒子模型。 盒子模型用四个边界描述&am…

打字的哪阿空扥

打字的那些事之快速移动光标 一## 、提出快速移动光标的原因 &#xff08;1&#xff09;键盘移动光标方向键不合理 情景再现&#xff1a; 当我们在打出一句话时&#xff0c;其中一个字打错&#xff0c;我们就需要去删除它&#xff0c;此时我们做的动作&#xff0c;无非有两种…

Linux知识结构体系简述

Linux 是一套免费使用和自由传播的类 Unix 操作系统&#xff0c;是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。严格来讲&#xff0c;Linux 这个词本身只表示 Linux 内核&#xff0c;但实际上人们已经习惯了用 Linux 来形容整个基于 Linux 内核&…

QFtp编译

QFtp下载&#xff1a;https://github.com/qt/qtftp 打开源码 修改头文件(不然编译会报错) 打开qftp.pro CONFIG static CONFIG - shared改成 CONFIG - static CONFIG shared也就是 - 号互换位置 4. 编译生成文件 linux下&#xff1a;*.a文件为.lib文件 windows下&#xf…

Python学习基础笔记二十六——推导式

列表推导式&#xff1a; 例1&#xff1a;30以内能被3整除的数&#xff1a; print([i for i in range(30) if i % 3 0]) 结果&#xff1a; 例2&#xff1a; 30以内能被3整除的数的平方&#xff1a; print([i**2 for i in range(30) if i % 3 0]) 结果&#xff1a; 例3&…

Golang sync.Map 原理(两个map实现 读写分离、适用读多写少场景)

参考&#xff1a; 由浅入深聊聊Golang的sync.Map 通过对源码的逐行分析&#xff0c;清晰易懂Golang sync.Map原理 通过向 sync.Map 中增删改查来介绍sync.Map的底层原理Golang中sync.Map的实现原理是什么 很好的概括了sync.Map的原理手摸手Go 深入理解sync.Map 知乎大佬 大家…

CentOS7.9系统部署(nginx+uwsgi+flask)项目

一、概述 上次&#xff0c;我们介绍了如何将CentOS服务器自带的Python3.6.8版本升级到Python3.8.0版本&#xff0c;现在我们开始介绍如何将flask项目部署的CentOS7.9版本的Linux服务器上。 二、环境准备 2.1安装git 我们通常会将自己的项目托管在Github或者gitee平台&#…

地址锁存器,总线控制器,双向总线驱动器(数据缓冲器),时钟发生器。8088最小工作模式。

这几个芯片你知道它叫什么干什么用&#xff0c;跟CPU怎么接就可以。一般就是考填空 目录 这几个芯片你知道它叫什么干什么用&#xff0c;跟CPU怎么接就可以。一般就是考填空 地址锁存器&#xff08;74LS373&#xff0c;8282&#xff09; 数据缓冲器 8286&#xff0c;74LS24…

Spring MVC 常用注解的使用

ResponseBody 由于 Spring MVC 是基于 MVC 这个设计模式的&#xff0c;所以在不加上注解的情况下&#xff0c;页面和前端交互的时候返回的默认是一个视图 View&#xff0c;或者说静态页面&#xff0c;而实际上用的比较多的是将处理完的数据发送给前端&#xff0c;所以我们可以…

第五章. 可视化数据分析分析图表—常用图表的绘制2—直方图,饼形图

第五章. 可视化数据分析分析图 5.3 常用图表的绘制2—直方图&#xff0c;饼形图 本节主要介绍常用图表的绘制&#xff0c;主要包括直方图&#xff0c;饼形图。 1.直方图&#xff08;matplotlib.pyplot.hist&#xff09; 直方图&#xff0c;又称质量分布图&#xff0c;一般用横…