Bootstrap 是最受歡迎的 HTML、CSS 和 JS 框架,用于開發響應式布局、移動設備優先的 WEB 項目。
當前版本: v3.3.7 | 文檔更新于:2017-05-22
摘要:一響應式布局最近在項目開發的時候,發現了自己對布局方面的一些不足之處,特別是適配不同分辨率方面,幾乎是沒有經驗的。在查閱了相關資料之后發現,響應式布局是目前解決不同分辨率顯示問題的最好解決方案。
一 響應式布局
最近在項目開發的時候,發現了自己對css布局方面的一些不足之處,特別是適配不同分辨率方面,幾乎是沒有經驗的。在查閱了相關資料之后發現,響應式布局是目前解決不同分辨率顯示問題的最好解決方案。達到一次設計,普遍使用的功能。本文主要以一個小項目為例,來說明這個概念。響應式Web設計
二 media查詢media查詢是響應式布局的核心所在,根據不同的條件來顯示不同的css樣式。達到不同分辨率的屏幕上顯示不同的樣式效果的目的。
@media(min-width:1200px) { .container{ width:1170px; } }
上例就是媒體查詢一個最簡單的示例。當輸出設備的寬度大于1200px的時候,容器的寬度等于1170px。想了解更多media query可以點擊這里
三 響應式項目作為前端開發的同學們一定都上過BootStrap的官網。我們來看看官網的導航部分,當屏幕寬度不同的時候,其導航條的樣式也是不一樣的。
(1)當屏幕寬度大于768px時顯示的樣式
(2)當屏幕寬度小于768px時顯示的樣式
下面我們就來實現一下這個小功能。
3.1 html核心代碼 BBootstrap 是最受歡迎的 HTML、CSS 和 JS 框架,用于開發響應式布局、移動設備優先的 WEB 項目。
當前版本: v3.3.7 | 文檔更新于:2017-05-22
html部分主要是借鑒了bootstrap原站的寫法,發現他們在寫html部分的時候,用的標簽語義化非常好也很規范,這點很值得我們學習。像頁面的頭部都是使用的是header標簽,導航部分使用nav,正文部分使用main標簽等等。這些標簽的準確使用能很好的讓我們看出頁面的一個整體脈絡。
3.2 css部分核心代碼body{ font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background-color:#fff; font-size:14px; line-height: 1.42857143; color:#333; } div.container{ font-weight: 500; color: #563d7c; margin:0 auto; overflow: hidden; padding:0px 15px; @media (min-width: 768px) { width:750px; } @media (min-width: 992px) { width:970px; } @media (min-width: 1200px) { width:1170px; } div.nav-logo{ font-size: 18px; overflow: hidden; @media (min-width: 768px) { float: left; } a{ display: block; padding: 15px; line-height: 20px; @media (min-width: 768px) { margin-left:-15px; } @media (max-width: 768px) { float: left } } button{ @media (min-width: 768px) { display: none; } float:right; padding:9px 10px; margin:8px auto; background-color: #f9f9f9; border-color:#f9f9f9; border:1px solid transparent; span.icon-bar{ width: 22px; height: 2px; display: block; background-color: #563d7c; &:nth-of-type(2n){ margin: 4px 0px; } } } } nav.nav-content{ overflow: hidden; @media (max-width: 768px) { clear: both; height: 0px; transition: height 200ms linear; } ul.nav-item{ @media (min-width: 768px) { float: left; overflow: hidden; } li{ @media(min-width: 768px) { padding:15px; line-height: 20px; float:left; } a{ @media(max-width: 768px) { display: block; padding:10px 15px; line-height: 20px; } } } } ul.nav-item-right{ @media(min-width: 768px) { float: right; margin-right: -15px; } } } } main.bs-docs-masthead{ padding:80px 0px; div.container{ color:#fff; span{ margin:0 auto 30px; } } .lead{ @media (min-width: 768px) { width: 80%; } @media (max-width: 768px) { font-size: 20px; } font-size: 30px; margin:0 auto 30px; .btn{ padding: 15px 30px; font-size: 20px; width:auto; } } } .navbar-static-top { z-index: 1000; border-width: 0 0 1px; }
css的核心部分就是使用了@media query查詢,具體參加代碼。主要是幾個地方用了@media查詢來控制不同的屏幕寬度顯示不同的樣式。
3.3 一些簡單交互的實現當屏幕小于768px時,頁面會顯示一個buttton按鈕,當點擊button時,菜單出現,再點擊隱藏,bootstrap封裝了一個collapse類來實現這一功能。因為自己對css動畫用的不多,所以想自己寫一個類似的簡單功能,所以這里就沒有使用collapse類,而是實現了一個類似的功能。
js部分
const navContent = document.getElementsByClassName("nav-content")[0] const clickBtn = document.getElementsByTagName("button")[0] const collapseHeight = document.getElementsByClassName("nav-item")[0] clickBtn.addEventListener("click",function(e){ if(!parseInt(window.getComputedStyle(navContent,null).height)){ navContent.style.height = "304px" } else{ navContent.style.height = 0 } })
以上代碼基本能實現一個collapse部分,但是如果僅僅這樣寫還遠遠達不到預期的效果,這里就需要加上css3動畫-transition。transition會捕獲css的變化,并且應用動畫的形式過渡變化,而不是硬生生的改變。這點是非常實用的功能。以下代碼就是讓高度在200ms,線性的改變高度。
transition: height 200ms linear;
更多關于transition的知識點擊這里
四 總結通過以上的小案例,我們可以大致了解一個響應式布局是一個什么樣的概念。在日常開發中,響應式布局是一個比較有用的布局方法,主要幾點就是媒體查詢的使用。(另外還有不設置絕對寬度,流體布局的使用等等)。以后自己在開發頁面的時候,一定要考慮好在不同分辨率輸出設備上的兼容顯示問題。這點非常重要。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/112091.html
摘要:發布按照官方發布計劃,的發布意味著進入階段,徹底退出舞臺,的還有半年結束。為了應對這個挑戰,美團點評境外度假前端研發團隊自年月起啟動了面向端用戶的赫爾墨斯項目。前端技術越來越復雜,有不低的技術門檻。 推薦 1. 利用 Dawn 工程化工具實踐 MobX 數據流管理方案 https://zhuanlan.zhihu.com/p/... 項目在最初應用 MobX 時,對較為復雜的多人協作項...
摘要:希望能通過理解的模塊化,窺探出模塊化的意義與思想。本文僅解析模塊化思想與技巧,構建工具與動態樣式語言本身這兩樣是必不可少,篇幅有限就不展開討論了。 前言 前端模塊化是個非常大的話題了,我們可以簡單的分為html模塊化、javascript模塊化、css模塊化;那么我們先從css模塊化開始,css模塊化基礎卻必不可少。希望能通過理解css的模塊化,窺探出模塊化的意義與思想。 提綱 當項目...
摘要:在這里使用學而思網校的錄像設備,記錄前端工程師每天學習的內容商城小程序分享人王聰視頻插件開發分享人魏媛視頻原理分享人李佳曉視頻講座優化實戰分享人江芊視頻文件操作分享人張凱視頻一次性學會正則表達式分享人賀杰視頻淺談 在這里使用學而思網校的錄像設備,記錄前端工程師每天學習的內容: 2019-8-22 商城小程序codereview 分享人:王聰 視頻:https://lecture.xue...
摘要:使用移動設備查看頁面時會發現,在微信瀏覽器中有頂部導航欄有效解決圖片使用單位邊角缺失的問題前端掘金起因在移動端使用布局時圖片也需要用單位。移動端實踐前端掘金說起,相信大家并不陌生。 Sticky Footer,完美的絕對底部 - 前端 - 掘金寫在前面 做過網頁開發的同學想必都遇到過這樣尷尬的排版問題:在主體內容不足夠多或者未完全加載出來之前,就會導致出現(圖一)的這種情況,原因是因為...
閱讀 3669·2021-11-23 09:51
閱讀 1660·2021-10-22 09:53
閱讀 1345·2021-10-09 09:56
閱讀 853·2019-08-30 13:47
閱讀 2155·2019-08-30 12:55
閱讀 1597·2019-08-30 12:46
閱讀 1105·2019-08-30 10:51
閱讀 2410·2019-08-29 12:43