整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          3個步驟為網(wǎng)站添加響應(yīng)式

          3個步驟為網(wǎng)站添加響應(yīng)式

          機(jī),平板設(shè)備的暴增,直接促進(jìn)了移動互聯(lián)網(wǎng)的大潮來襲,互聯(lián)網(wǎng)迎來了更多的變革,包括web前端行業(yè)也是, 現(xiàn)在變?yōu)橐苿觲eb前端開發(fā)了,有多少人迎風(fēng)倒下,又有多少人經(jīng)受了這場革命的洗禮。這次教大家如何為自己網(wǎng)站添加響應(yīng)式,快速抓住移動互聯(lián)網(wǎng)用戶。

          流行的有某適配,如果你愿意每年支出高額的費用的話,這里介紹的是一個屌絲如何為網(wǎng)站添加響應(yīng)式,響應(yīng)式實現(xiàn)原理非常簡單:就是通過css3 media query技術(shù)通過瀏覽器窗口寬度的判斷,來調(diào)整合適的布局。

          1,在網(wǎng)站head區(qū)間里面添加

          <meta content="width=device-width,initial-scale=1" name="viewport">

          2,在head區(qū)域添加

          <link rel="stylesheet" href="css/responsive.css">,在目錄下新建 responsive.css文件。

          3,書寫css代碼

          /*當(dāng)寬度為640的時候的樣式*/

          @media only screen and (max-width:640px) {

          }

          /*當(dāng)寬度為480的時候的樣式*/

          @media only screen and (max-width:480px) {

          }

          書寫css代碼需要你有一些css基礎(chǔ),可以上w3school學(xué)習(xí)下,切圖網(wǎng)開發(fā)了一款用于快速響應(yīng)式布局的css框架——快切,它包含了很多具有響應(yīng)式的組件構(gòu)成,基于它可以快速完成響應(yīng)頁面的搭建。

          http://kuaiqie.qietu.com

          如果你對web前端技術(shù)感興趣,加我們微信:qietuwang

          文地址: https://medium.com/free-code-camp/how-to-make-your-html-responsive-by-adding-a-single-line-of-css-2a62de81e431

          原文作者: Per Harald Borgen

          翻譯作者: https://github.com/hanxiansen

          在這篇文章中,我將教你如何使用 CSS Grid 來創(chuàng)建一個超酷的圖像網(wǎng)格圖,它將根據(jù)屏幕的寬度來改變列的數(shù)量。最精彩的地方在于:所有的響應(yīng)特性被添加到了一行 css 代碼中。這意味著我們不必將 HTML 與丑陋的類名(如col-sm-4, col-md-8)混雜在一起,也不必為每個屏幕創(chuàng)建媒體查詢。ok,讓我們發(fā)車吧。

          設(shè)置

          在本文中,我將繼續(xù)使用我在第一篇 CSS Grid 布局教程文章中的網(wǎng)格布局。然后,我們將在文章末尾添加圖片。下面是我們初始化網(wǎng)格的外觀:

          HTML 代碼:

          <div class="container">
           <div>1</div>
           <div>2</div>
           <div>3</div>
           <div>4</div>
           <div>5</div>
           <div>6</div>
          </div>
          

          CSS 代碼:

          .container {
           display: grid;
           grid-template-columns: 100px 100px 100px;
           grid-template-rows: 50px 50px;
          }
          

          注意: 示例中有一些基礎(chǔ)的樣式,但我在這里沒有寫出來,因為這對 CSS 網(wǎng)格布局沒有任何影響

          如果這段代碼讓你感到困惑,我建議你去好好讀下我的這篇文章 Learn CSS Grid in 5 minutes ,其中就詳細(xì)的解釋了布局的基礎(chǔ)知識。

          讓我們讓列開始具有自適應(yīng)特性吧。

          基礎(chǔ)響應(yīng)單位: fraction

          CSS 柵格布局帶來了一個全新的值:fraction單位,fraction單位通常簡寫為fr,它允許你根據(jù)需要將容器拆分為多個塊。

          讓我們將每一列更改為一個 fraction 單位寬:

          .container {
           display: grid;
           grid-template-columns: 1fr 1fr 1fr;
           grid-template-rows: 50px 50px;
          }
          

          結(jié)果是柵格布局將會把整個寬度分成三個 fraction,每列占據(jù)一個 fraction 單位,效果如下:

          如果我們將grid-template-columns的值更改為1fr 2fr 1fr,第二列的寬度將會是其它兩列的兩倍。總寬現(xiàn)在是四個 fraction 單位,第二列占據(jù)兩個 fraction 單位,其它列各占一個 fraction。效果如下:

          總的來說,fraction 單位值將使你可以很容易的更改列的寬度。

          高級響應(yīng)

          然而,上面列子并沒有給出我們想要的響應(yīng)性,因為網(wǎng)格總是三列寬。我們希望網(wǎng)格能根據(jù)容器的寬度改變列的數(shù)量。要做到這一點,你必須學(xué)習(xí)如下三個概念:

          repeat()

          首先我們學(xué)習(xí)repeat()函數(shù)。這是一個強(qiáng)大的指定列和行的方法。讓我們使用repeat()函數(shù)來更改網(wǎng)格:

          .container {
           display: grid;
           grid-template-columns: repeat(3, 100px);
           grid-template-rows: repeat(2, 50px);
          }
          

          在上面代碼中,repeat(3, 100px)等于100px 100px 100px。第一個參數(shù)指定行與列的數(shù)量,第二個參數(shù)指定它們的寬度,因此它將為我們提供與開始時完全相同的布局:

          auto-fit

          然后是auto-fit。讓我們跳過固定數(shù)量的列,將3替換為自適應(yīng)數(shù)量:

          .container {
           display: grid;
           grid-gap: 5px;
           grid-template-columns: repeat(auto-fit, 100px);
           grid-template-rows: repeat(2, 100px);
          }
          

          效果如下:

          現(xiàn)在,柵格將會根據(jù)容器的寬度調(diào)整其數(shù)量。它會嘗試在容器中容納盡可能多的 100px 寬的列。但如果我們將所有列硬寫為 100px,我們將永遠(yuǎn)沒法獲得所需的彈性,因為它們很難填充整個寬度。正如你在上圖看到的,網(wǎng)格通常在右側(cè)留有空白。

          minmax()

          為了解決上述問題,我們需要minmax()。我們將 100px 替換為 minmax(100px, 1fr),代碼如下:

          .container {
           display: grid;
           grid-gap: 5px;
           grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
           grid-template-rows: repeat(2, 100px);
          }
          

          請注意,所有響應(yīng)都發(fā)生在一行 css 代碼中

          效果如下:

          正如你所見,效果完美。minmax()函數(shù)定義的范圍大于或等于 min, 小于或等于 max。

          因此,現(xiàn)在每列將至少為 100px。但如果有更多的可用空間,柵格布局將簡單地將其均分給每列,因為這些列變成了 fraction 單位,而不是 100px。

          添加圖片

          最后一步是添加圖片。這與 CSS Grid 布局無關(guān),但讓我們看下代碼。

          我們在每個網(wǎng)格中添加一個圖片標(biāo)簽:

          <div><img src="img/forest.jpg"/></div>
          

          為了使圖片適應(yīng)于每個條目,我們將其寬、高設(shè)置為與條目本身一樣,我們使用object-fit:cover。這將使圖片覆蓋它的整個容器,根據(jù)需要,瀏覽器將會對其進(jìn)行裁剪。

          .container > div > img {
           width: 100%;
           height: 100%;
           object-fit: cover;
          }
          

          效果如下:

          ok!現(xiàn)在你已經(jīng)了解了 CSS Grid 布局中最復(fù)雜的概念之一了,請給自己一個贊吧。

          瀏覽器兼容性

          在結(jié)束本文前,我提下瀏覽器支持情況,在撰寫本文時,全球77%的網(wǎng)站將支持 CSS Grid,而且比例還在逐步攀升。

          我想想2018將是 CSS 網(wǎng)格布局的元年。它將獲得突破,并成為前端開發(fā)者的必備技能,就像過去幾年 CSS Flexbox 布局發(fā)生的情況一樣。

          輯導(dǎo)語:利用響應(yīng)式網(wǎng)頁設(shè)計創(chuàng)建網(wǎng)頁布局,設(shè)計將能夠更好地適配不同的屏幕和尺寸。那么,隨著設(shè)計行業(yè)的不斷更迭,未來響應(yīng)式網(wǎng)頁設(shè)計又可能會怎么發(fā)展?本篇文章里,作者就“響應(yīng)式網(wǎng)頁設(shè)計”的發(fā)展問題做了解答,一起來看一下。

          如果你和我一樣一直在網(wǎng)頁設(shè)計行業(yè),你知道一件事即將發(fā)生,唯一不變的就是變化。大約每10年,我們做事的方式就會發(fā)生根本性的轉(zhuǎn)變,這對于超越我們之前所做的事情至關(guān)重要……我們即將再次跨入下一個階段。

          一、它是如何開始的——固定屏幕

          在千禧年來臨之前,我們首先開始在單一視圖屏幕中進(jìn)行UI設(shè)計,這類屏幕在當(dāng)時最流行的尺寸是640×480。大多數(shù)時候,我們甚至沒有考慮讓屏幕滾動,而是在特定區(qū)域或文本局部區(qū)塊中設(shè)置了內(nèi)部滾動條。

          毋庸置疑,當(dāng)時的大部分網(wǎng)頁也是用Flash或HTML創(chuàng)建的,并帶有用于布局的表格。那是在智能手機(jī)出現(xiàn)之前,隨著事物的發(fā)展,我們經(jīng)歷了第一個向“響應(yīng)式”設(shè)計的根本轉(zhuǎn)變。我們已經(jīng)走了很長一段路,CSS已得到長足的發(fā)展,“響應(yīng)式”網(wǎng)頁設(shè)計從2010年開始才真正獲得了專有工具。

          二、它現(xiàn)在怎么樣——響應(yīng)式設(shè)計

          隨著CSS3的發(fā)布,我們獲得了對“媒體查詢”(Media Queries)的訪問權(quán)限(譯者注:隨著移動互聯(lián)網(wǎng)的興起,我們需要適配多種移動端設(shè)備,這就需要用到Media Queries,即“媒體查詢”),此后不久,Ethan Marcotte在2009年底創(chuàng)造了“響應(yīng)式設(shè)計”一詞。

          十多年來,我們一直使用“響應(yīng)式網(wǎng)頁設(shè)計”(RWD)創(chuàng)建網(wǎng)頁布局,作為一種網(wǎng)頁設(shè)計方法,僅需基于一種屏幕尺寸進(jìn)行設(shè)計,“響應(yīng)式”使我們的設(shè)計能夠適配各種設(shè)備和屏幕尺寸。

          在早期,當(dāng)移動電話還不兼容媒體查詢或JavaScript時,“移動優(yōu)先”和”漸進(jìn)式增強(qiáng)”的概念就成為了非常流行的方法,當(dāng)時有很多CSS完全不受支持。

          用我們今天的話來說響應(yīng)式設(shè)計,我們認(rèn)為頁面的布局要適配整個瀏覽器、屏幕大小和那些需要投射到整個布局上的限制。當(dāng)需要設(shè)計從桌面端調(diào)整為移動設(shè)備屏幕所需的尺寸時,我們使用“媒體查詢”來更改整個頁面布局。

          三、它的未來是什么——組件驅(qū)動

          很快,使用這種“響應(yīng)式”設(shè)計方法可能會被認(rèn)為與使用表格進(jìn)行頁面布局一樣過時——就像我們在90年代所做的那樣。

          我們通過基于viewport(視口)的“媒體查詢”獲得了許多強(qiáng)大的工具,但我們也缺乏很多適配的可能性,因為“媒體查詢”是一個適用于整個頁面的通用解決方案,并且對每個用戶來說都一樣。我們?nèi)狈憫?yīng)“用戶需求”的能力,也缺乏將“響應(yīng)式”樣式注入“組件”本身的能力。

          當(dāng)我們談到組件時,這里指的是頁面上的“元素”,這些元素可以由其它“元素”的集合組成。

          例如卡片、橫劃卡或推薦模塊之類的UI內(nèi)容,每個“塊”都由各種更小的“構(gòu)建塊”組成。這些組件拼湊在一起構(gòu)成我們的網(wǎng)頁。我們可以使用 global viewport information(全局視口信息)來設(shè)置這些組件,但它們?nèi)匀粺o法擁有自己的風(fēng)格。當(dāng)我們的設(shè)計系統(tǒng)是基于“組件”的而不是基于“頁面”的時,這使得它變得更加困難。

          好消息是這個生態(tài)系統(tǒng)正在發(fā)生變化,而且它正在迅速變化,這需要我們進(jìn)行一些思維轉(zhuǎn)變:考慮如何設(shè)計和定義組件樣式以及它們?nèi)绾芜m應(yīng)周圍環(huán)境。

          CSS正在不斷發(fā)展,“響應(yīng)式”網(wǎng)頁設(shè)計的新時代即將到來。從目前的情況來看,自從我們第一次引入 “響應(yīng)式網(wǎng)頁設(shè)計”(RWD)以來,僅僅10多年的時間,這個生態(tài)系統(tǒng)已經(jīng)準(zhǔn)備好迎接CSS發(fā)生一些相當(dāng)大的改變。

          讓我們深入研究一下可以期待哪些類型的變化,這會如何改變我們的設(shè)計方法,以及我們?nèi)绾慰紤]界面設(shè)計。

          四、用戶能夠設(shè)置基于個人偏好的“媒體查詢”

          簡單來說,我們可以期待新的基于偏好的“媒體查詢”來幫助我們更好地“響應(yīng)”用戶。它們將使我們能夠根據(jù)用戶自己的特定偏好或需求來設(shè)定網(wǎng)頁樣式。這將使我們能夠根據(jù)用戶的體驗偏好來調(diào)整用戶體驗。

          這絕不是一個完整的列表,但能給你一些想法,這些基于偏好的“媒體查詢”可能包括:

          這些將幫助我們構(gòu)建更具活力和個性化的網(wǎng)頁體驗,專門滿足我們用戶的專屬需求,尤其是那些希望網(wǎng)站易于訪問的用戶。

          更進(jìn)一步說,這些基于偏好的“媒體查詢“尊重任何用戶已經(jīng)在操作系統(tǒng)設(shè)置的偏好。

          舉個例子,當(dāng)用戶的操作系統(tǒng)偏好設(shè)定為“減少動效”時,他們很可能不喜歡你頁面上的超級華麗的介紹、加載或飛入的動畫動效。我們應(yīng)先尊重他們的偏好,并為其他人提供“動效增強(qiáng)”的體驗。

          另一個流行的媒體查詢是@prefers-color-scheme(配色偏好設(shè)定),它允許我們根據(jù)用戶的偏好和操作系統(tǒng)中的設(shè)置將我們的設(shè)計更改為“亮色模式”或“暗色模式”。這不依賴于用戶需要手動來更改“暗色模式”,它會自動發(fā)生。

          五、“容器查詢”為你的設(shè)計系統(tǒng)注入新的生命力

          CSS 中最令人興奮的新興領(lǐng)域之一是“容器查詢”(container queries),通常也稱為“元素查詢”。從基于“頁面”的“響應(yīng)式”設(shè)計到基于“容器”的“響應(yīng)式”設(shè)計的轉(zhuǎn)變對發(fā)展“設(shè)計系統(tǒng)”的作用價值不容低估,盡管今天使用它并不安全,但重要的是要了解其發(fā)展方向。

          簡而言之,“容器查詢”將允許我們基于“父級容器”而不是整個頁面來設(shè)置規(guī)則。這意味著任何組件都更加獨立,與現(xiàn)代設(shè)計系統(tǒng)保持一致,真正成為“即插即用”模塊,可以轉(zhuǎn)移到任何頁面或布局,而且無需根據(jù)新環(huán)境重新考慮所有內(nèi)容。

          “容器查詢”為我們?nèi)绾我?guī)劃、設(shè)計和構(gòu)建特定組件提供了一種更加動態(tài)的方法,因為組件本身擁有它的響應(yīng)信息。

          甚至Ethan Marcotte自己也表達(dá)了為什么“容器查詢”如此重要,我們應(yīng)該研究一下。

          六、考慮各種形態(tài)因素

          由于各種“形態(tài)因素”(form factors)的變化和擴(kuò)展,例如新的屏幕類型,可折疊屏,我們需要“媒體查詢”來考慮這些場景。在這里提到的所有內(nèi)容中,請記住,這是最具實驗性的,并且只是一項正在進(jìn)行的工作,仍在嘗試解決我們可能遇到的任何復(fù)雜問題,同時考慮未來“形體因素”可能會如何發(fā)展。

          在可折疊屏場景中,原型中有一些“媒體查詢”可以讓你定位屏幕跨度以及我們?nèi)绾巫寖?nèi)容根據(jù)新環(huán)境進(jìn)行適配。例如,你可以在一個屏幕上放置一個收起的側(cè)邊欄(或菜單),并允許內(nèi)容在另一個屏幕上展開并隨頁面滾動。

          七、為什么我們需要它?

          我知道你在想什么,我們已經(jīng)從事網(wǎng)頁設(shè)計并使用“響應(yīng)式”來進(jìn)行網(wǎng)頁設(shè)計10余年了。我們對其相當(dāng)滿意,那么為什么要改變呢?

          如果我們真的以終局視角來看響應(yīng)式設(shè)計,那么它就是關(guān)于個人用戶的用戶體驗設(shè)計。我們正朝著一個與每一位個體用戶高度相關(guān)的時代邁進(jìn)。我們的網(wǎng)頁體驗應(yīng)該去適應(yīng)用戶的需求偏好。隨著設(shè)計系統(tǒng)的發(fā)展以及我們?nèi)绾蝿?chuàng)建更便攜的網(wǎng)頁,諸如“容器查詢”之類的工具將變得非常有意義。

          配圖:CSS 將基于各個層級來確定用戶的最佳體驗

          考慮到這一點,這意味著我們現(xiàn)在可以使用基于頁面的媒體查(包括跨越屏幕的細(xì)微差別)來設(shè)計宏觀布局;使用容器查詢的組件設(shè)計微觀布局;使用基于用戶偏好的媒體查詢,根據(jù)用戶獨特的偏好和需求定制用戶體驗。

          對于新的響應(yīng)式設(shè)計,有許多新概念正在被原型化和概念化——請看下面的延伸閱讀。

          所有這些協(xié)同工作的方式需要我們從根本上轉(zhuǎn)變我們對設(shè)計和用戶獨特體驗的看法。我們需要更加適應(yīng)這樣一個事實:即我們的設(shè)計不是靜態(tài)的,不僅在布局上,還有在用戶可獲得的體驗中,我們需要學(xué)會在這種模糊性中做出計劃。網(wǎng)頁和設(shè)計的未來變得越來越復(fù)雜,我們需要適應(yīng)和挑戰(zhàn)自己,理解“新響應(yīng)式”體驗的意義。

          進(jìn)一步了解

          • New media queries you need to know(LogRocket)
          • Container Units should be pretty handy(CSS-Tricks)
          • It’s time we say goodbye to pixel units
          • Say Hello To CSS Container Queries
          • Container Queries: a Quick Start Guide

          本文原作者:FrancoisBrill

          作者:百度MEUX,百度移動生態(tài)用戶體驗設(shè)計中心,負(fù)責(zé)百度移動生態(tài)體系的用戶/商業(yè)產(chǎn)品的全鏈路體驗設(shè)計

          本文由 @百度MEUX 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

          題圖來自Unsplash,基于CC0協(xié)議


          主站蜘蛛池模板: 手机看片福利一区二区三区| 精品午夜福利无人区乱码一区| 亚洲国产精品一区| 国产在线观看一区二区三区四区 | 精品一区二区三人妻视频| 国产情侣一区二区三区| 女人18毛片a级毛片一区二区| 中日av乱码一区二区三区乱码| 五月婷婷一区二区| 日本一区二区三区精品中文字幕| 国产福利一区二区| 丝袜美腿一区二区三区| 亚洲av无码片区一区二区三区| 丝袜人妻一区二区三区网站| 大香伊蕉日本一区二区| 亚洲欧洲无码一区二区三区| 国产精品日本一区二区在线播放 | 成人丝袜激情一区二区 | 亚洲国产精品综合一区在线| 成人日韩熟女高清视频一区| 无码精品人妻一区二区三区免费| 无码一区二区三区在线| 国产乱人伦精品一区二区| 色狠狠AV一区二区三区| 精品国产亚洲一区二区三区| 日韩在线一区二区三区免费视频| 国模精品一区二区三区视频 | 国产内射999视频一区| 亚洲第一区精品日韩在线播放| 国产中的精品一区的| 国产人妖在线观看一区二区| 国产熟女一区二区三区五月婷| 无码人妻精一区二区三区| 海角国精产品一区一区三区糖心| 日韩视频一区二区三区| 中文字幕亚洲乱码熟女一区二区 | 秋霞无码一区二区| 日韩一区二区三区无码影院| 久久久久成人精品一区二区| 日韩一区精品视频一区二区| 亚洲国产一区在线观看|