# 優化前端
本章的后端邏輯代碼到這里就結束了,現在的前端頁面不難看,但是也不好看,由于我們是要打造一款類似微博功能的網站,恰好今日看到 twitter 更新了 UI,布局簡潔值得模仿,由下圖為例,我們盡可能的還原 twitter。

## 整體布局
由于上圖中的布局呈 左-中-右 的形式,所以我們需要把默認布局更改為三欄。
`resources\views\_layout\default.blade.php`
~~~html
...
<body>
<div class="container mt-5">
<div class="row">
<div class="col">
@include('_layout.header')
</div>
<div class="col-6">
<ul class="list-group">
<li class="list-group-item">
<a onclick="window.history.go(-1); return false;" class="btn btn-light" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
@yield('title')
</li>
<li class="list-group-item">
@yield('content')
</li>
</ul>
</div>
<div class="col">
@include('_layout.footer')
</div>
</div>
</div>
...
~~~
修改側欄布局
`resources\views\_layout\header.blade.php`
~~~html
<header>
<nav class="nav flex-column">
<ul class="list-group list-group-flush">
<li class="list-group-item list-group-item-action">
<a class="nav-link" href="{{ url('welcome/index/home') }}">
主頁
</a>
</li>
<li class="list-group-item list-group-item-action">
<a class="nav-link" href="{{ url('user/auth/index') }}">
所有用戶
</a>
</li>
@if(session('user'))
<li class="list-group-item list-group-item-action">
<a class="nav-link" href="{{ url('user/auth/index') }}">
個人資料
</a>
</li>
<li class="list-group-item list-group-item-action">
<div class="dropdown">
<a class="nav-link dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="">更多</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item">
<form action="{{ url('user/session/delete', ['id' => session('user.id')]) }}" method="POST">
@php echo token() @endphp
<button class="btn btn-block" type="submit" name="button">退出</button>
</form>
</a>
</div>
</div>
</li>
@else
<a class="btn btn-outline-success my-2 my-sm-0" href="{{ url('user/auth/create') }}">
注冊
</a>
<a class="btn btn-outline-success my-2 my-sm-0" href="{{ url('user/session/create') }}">
登錄
</a>
@endif
</ul>
</nav>
</header>
~~~
創建樣式表文件
`public\static\css\app.css`
~~~css
.pagination li:first-child {
margin-left: 0;
border-top-left-radius: 0.25rem;
border-bottom-left-radius: 0.25rem;
}
.pagination li {
position: relative;
display: block;
padding: 0.5rem 0.75rem;
margin-left: -1px;
line-height: 1.25;
color: #007bff;
background-color: #fff;
border: 1px solid #dee2e6;
}
~~~
全部保存后,刷新頁面,可以看到整體的布局已經非常接近了,細節方面存在瑕疵,我們將會在后面的章節中持續優化。
- 第一章. 基礎信息
- 1.1 序言
- 1.2 關于作者
- 1.3 本書源碼
- 1.4 反饋糾錯
- 1.5 安全指南
- 1.6 捐助作者
- 第二章. 開發環境布置
- 2.1 編輯器選用
- 2.2 命令行工具
- 2.3 開發環境搭建
- 2.4 瀏覽器選擇
- 2.5 第一個應用
- 2.6 Git 工作流
- 第三章. 構建頁面
- 3.1 章節說明
- 3.2 靜態頁面
- 3.3 Think 命令
- 3.4 小結
- 第四章. 優化頁面
- 4.1 章節說明
- 4.2 樣式美化
- 4.3 局部視圖
- 4.4 路由鏈接
- 4.5 用戶注冊頁面
- 4.6 集中視圖
- 4.7 小結
- 第五章. 用戶模型
- 5.1 章節說明
- 5.2 數據庫遷移
- 5.3 查看數據表
- 5.4 模型文件
- 5.5 小結
- 第六章. 用戶注冊
- 6.1 章節說明
- 6.2 注冊表單
- 6.3 用戶數據驗證
- 6.4 注冊失敗錯誤信息
- 6.5 注冊成功
- 6.6 小結
- 第七章. 會話管理
- 7.1 章節說明
- 7.2 會話
- 7.3 用戶登錄
- 7.4 退出
- 7.5 小結
- 第八章. 用戶 CRUD
- 8.1 章節說明
- 8.2 重構代碼
- 8.3 更新用戶
- 8.4 權限系統
- 8.5 列出所有用戶
- 8.6 刪除用戶
- 8.7 訪客模式
- 8.8 優化前端
- 8.9 小結
- 第九章. 微博 CRUD
- 9.1 章節說明
- 9.2 微博模型
- 9.3 顯示微博
- 9.4 發布微博
- 9.5 微博數據流
- 9.6 刪除微博
- 9.7 小結