承蒙各位小伙伴的支持,鄙人有幸入圍了《CSDN 2020博客之星》的前200名,現在進入投票環節,如果我平時寫的文章和分享對你有用的話,請每天點擊一下這個鏈接,投上你們寶貴的一票吧!謝謝!?? 每一票都是我堅持的動力和力量! https://bss.csdn.net/m/topic/blog_star2020/detail?username=qq_23853743
作者:AlbertYang,軟體設計師,Java工程師,前端工程師,愛閱讀,愛思考,愛編程,愛自由,信奉終生學習,每天學習一點點,就是領先的開始,
微信公眾號:AlbertYang 關注我更多精彩等你來發現!

1 什么是回應式布局?
回應式布局指的是同一頁面在不同螢屏尺寸下有不同的布局,在移動互聯網高度發達的今天,我們在桌面瀏覽器上開發的網頁已經無法滿足在移動設備上查看的需求,傳統的開發方式是PC端開發一套頁面,手機端再開發一套頁面,但是這樣做非常麻煩,隨著不同的終端越來越多,你需要開發多個不同版本的頁面,而使用回應式布局只要開發一套就夠了,EthanMarcotte在2010年5月份提出了回應式布局的概念,簡而言之,就是一個網站能夠兼容多個終端,
| 開發方式 | 移動web開發+PC開發 | 回應式開發 |
| 應用場景 | 一般在已經有PC端的網站,開發移動站的時候,只需單獨開發移動端, | 針對新建站的一些網站,現在要求適配移動端,所以就一套頁面兼容各種終端,靈活, |
| 開發 | 針對性強,開發效率高, | 兼容各種終端,效率低, |
| 適配 | 只適配 移動設備,pad上體驗相對較差, | 可以適配各種終端 |
| 效率 | 代碼簡潔,加載快, | 代碼相對復雜,加載慢, |
回應式開發與移動端與PC端分別開發的區別:回應式開發只撰寫一套界面,通過檢測視口解析度,針對不同客戶端在客戶端做代碼處理,來展現不同的布局和內容,移動端與PC端分別開發,通過檢測視口解析度,來判斷當前訪問的設備是pc端、平板、手機, 從而請求服務器,回傳不同的頁面,
2 回應式開發的原理?
回應式開發的原理是使用CSS3中的Media Query(媒體查詢)針對不同寬度的設備設定不同的布局和樣式,從而適配不同的設備,
CSS3 @media 查詢定義和使用:
使用 @media 查詢,你可以針對不同的媒體型別定義不同的樣式,@media 可以針對不同的螢屏尺寸設定不同的樣式,特別是如果你需要設定設計回應式的頁面,@media 是非常有用的,當你重置瀏覽器大小的程序中,頁面也會根據瀏覽器的寬度和高度重新渲染頁面,
例如螢屏寬度小于 500 像素則修改背景顏色(background-color)為紅色,
@media screen and (max-width: 300px) {
body {
background-color: red;
}
}
設備的劃分情況為:
-
小于768的為超小螢屏(手機)
-
768~992之間的為小屏設備(平板)
-
992~1200的中等螢屏(桌面顯示幕)
-
大于1200的寬屏設備(大桌面顯示幕)
但是我們也可以根據實際情況自己定義劃分情況,
3 回應式頁面開發實戰
3.1 視頻
視頻地址:https://www.bilibili.com/video/BV1mr4y1T7w5
3.2 HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>回應式頁面入門教程:Albert Yang</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"
integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
</head>
<body>
<header>
<a href="#" class="logo">AlbertYang</a>
<ul class="navigation">
<li><a href="#">首頁</a></li>
<li><a href="#">博客</a></li>
<li><a href="#">聯系我</a></li>
<li><a href="#">留言板</a></li>
<li><a href="#">關于我</a></li>
<li><a href="#">照片墻</a></li>
</ul>
<div class="search">
<input type="text" placeholder="Search">
<i class="fa fa-search" aria-hidden="true"></i>
</div>
</header>
<div class="banner">
<div class="content">
<h2>回應式布局</h2>
<p>
回應式布局指的是同一頁面在不同螢屏尺寸下有不同的布局,
傳統的開發方式是PC端開發一套,手機端再開發一套,而使用回應式布局只要開發一套就夠了,
回應式設計與自適應設計的區別:回應式開發一套界面,
通過檢測視口解析度,針對不同客戶端在客戶端做代碼處理,
來展現不同的布局和內容;自適應需要開發多套界面,
通過檢測視口解析度,來判斷當前訪問的設備是pc端、平板、手機,
從而請求服務層,回傳不同的頁面,CSS3媒體查詢可以讓我們針對不同的媒體型別定義不同的樣式,
當重置瀏覽器視窗大小的程序中,頁面也會根據瀏覽器的寬度和高度重新渲染頁面,
</p>
<a href="#">閱讀全文</a>
</div>
<img src="1.jpg" class="image">
</div>
</body>
</html>
3.3 CSS
/* 清除瀏覽器默認邊距,
使邊框和內邊距的值包含在元素的width和height內 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
header {
position: absolute;
left: 0;
top: 0;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 100px;
z-index: 10;
background: #5b639c;
}
header .logo {
position: relative;
font-size: 1.5em;
color: #fff;
text-decoration: none;
font-weight: 600;
}
header .navigation {
display: flex;
justify-content: center;
flex-wrap: wrap;
margin: 10px 0;
}
header .navigation li {
list-style: none;
margin: 0 20px;
}
header .navigation li a {
text-decoration: none;
color: #fff;
font-weight: 600;
letter-spacing: 1px;
}
header .navigation li a:hover{
color: #ffed3b;
}
header .search {
position: relative;
width: 300px;
height: 40px;
}
header .search input {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
color: #fff;
background: transparent;
outline: none;
border: 1px solid #fff;
border-radius: 5px;
padding: 0 10px 0 45px;
}
header .search input::placeholder {
color: #fff;
}
header .search .fa-search {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 10px;
color: #fff;
border-right: 1px solid #fff;
padding-right: 10px;
}
.banner {
background: #eee;
padding: 200px 100px 100px;
min-height: 100vh;
display: flex;
justify-content: space-between;
align-items: center;
}
.banner .content {
max-width: 1000px;
}
.banner .content h2 {
font-size: 2.5em;
color: #333;
margin-bottom: 20px;
}
.banner .content p {
font-size: 1em;
color: #333;
}
.banner .content a {
display: inline-block;
background: #434978;
color: #fff;
padding: 10px 20px;
text-decoration: none;
font-weight: 600;
margin-top: 20px;
}
.banner .image {
max-width: 500px;
margin-left: 50px;
}
/*螢屏寬度小于991px,改變布局和樣式*/
@media screen and (max-width:991px) {
header {
padding: 10px 20px;
flex-direction: column;
}
.banner {
padding: 150px 20px 50px;
flex-direction: column-reverse;
}
.banner .image {
max-width: 80%;
margin-left: 0;
}
.banner .content h2 {
font-size: 2em;
}
}
/*螢屏寬度小于600px,改變布局和樣式*/
@media screen and (max-width:600px) {
header .search {
width: 100%;
}
.banner .image {
margin-top: 30px;
}
}
3.4 圖片


今天的學習就到這里了,由于本人能力和知識有限,如果有寫的不對的地方,還請各位大佬批評指正,有什么不明白的地方歡迎給我留言,如果想繼續學習提高,歡迎關注我,每天進步一點點,就是領先的開始,加油,如果覺得本文對你有幫助的話,歡迎轉發,評論,點贊!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/250243.html
標籤:其他
上一篇:初識Vue.js
