開始bootstrap的學習

来源:http://www.cnblogs.com/hellocz/archive/2017/11/14/7832580.html
-Advertisement-
Play Games

終於過完雙十一,伺服器頂住了壓力,不知道為啥,突然的輕鬆,反而感覺有點無所適從,好久沒寫博客了,竟然發現還有人回我,很是開心,問題都是關於阿裡雲的,阿裡雲的吭確實多,其實關鍵在於,官方文檔還是少,出了問題,很多都要靠自己去嘗試,自己去找方法。 好了,今天開始學習bootstrap,自己本身是後端出身 ...


終於過完雙十一,伺服器頂住了壓力,不知道為啥,突然的輕鬆,反而感覺有點無所適從,好久沒寫博客了,竟然發現還有人回我,很是開心,問題都是關於阿裡雲的,阿裡雲的吭確實多,其實關鍵在於,官方文檔還是少,出了問題,很多都要靠自己去嘗試,自己去找方法。

 

好了,今天開始學習bootstrap,自己本身是後端出身,java,php,nodejs都做過幾個網站,目前負責白菜哦的全部技術,android和ios的app有時也需要自己去修改一些bug,瞬間感覺自己全能,有木有,不過直到現在,才發現之前一直鄙視的在mobile上的html5技術還是有某些方面的優勢的,簡單說下,目前我們的網站分成了 web, wap, ios,android, 後端甚至都是分開的,ios和android 會共用 api的調用邏輯,其他的都是分開的,相當於,要維護大量的重覆的東西,這樣帶來的好處是,當你遇到某個具體bug時,你比較容易找到地方,去debug,去修正,壞處是當你修改了一個bug,你可能要分別去其他幾個地方去看看,是否有bug,是否要去修改其他地方的問題,所以,要是再給我一次機會,這些是一定要復用的,及時判斷邏輯變得更複雜,那也是必須要做的事情。這點,希望大家在以後寫程式的時候去體會。

 

越來越覺得響應式佈局這個概念是多麼的前衛,為什麼一定要這樣去設計,因為,這樣可能就能讓你少維護一個平臺,比如wap和web,你打開的是同一個頁面,但是看到的是個性化的東西,很酷,很炫,對不對?  哈哈,當然需要功力。

首先說下 最基本的佈局:

meta:

移動設備優先,且禁止縮放

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

Viewport 基礎

一個常用的針對移動網頁優化過的頁面的 viewport meta 標簽大致如下:

<meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″>

width:控制 viewport 的大小,可以指定的一個值,如果 600,或者特殊的值,如 device-width 為設備的寬度(單位為縮放為 100% 時的 CSS 的像素)。
height:和 width 相對應,指定高度。
initial-scale:初始縮放比例,也即是當頁面第一次 load 的時候縮放比例。
maximum-scale:允許用戶縮放到的最大比例。
minimum-scale:允許用戶縮放到的最小比例。
user-scalable:用戶是否可以手動縮放

佈局容器

Bootstrap 需要為頁面內容和柵格系統包裹一個 .container 容器。我們提供了兩個作此用處的類。註意,由於 padding 等屬性的原因,這兩種 容器類不能互相嵌套。

.container 類用於固定寬度並支持響應式佈局的容器。

<div class="container">
  ...
</div>

.container-fluid 類用於 100% 寬度,占據全部視口(viewport)的容器。

<div class="container-fluid">
  ...
</div>

柵格系統

柵格系統用於通過一系列的行(row)與列(column)的組合來創建頁面佈局,你的內容就可以放入這些創建好的佈局中。下麵就介紹一下 Bootstrap 柵格系統的工作原理:

  • “行(row)”必須包含在 .container (固定寬度)或 .container-fluid (100% 寬度)中,以便為其賦予合適的排列(aligment)和內補(padding)。
  • 通過“行(row)”在水平方向創建一組“列(column)”。
  • 你的內容應當放置於“列(column)”內,並且,只有“列(column)”可以作為行(row)”的直接子元素。
  • 類似 .row.col-xs-4 這種預定義的類,可以用來快速創建柵格佈局。Bootstrap 源碼中定義的 mixin 也可以用來創建語義化的佈局。
  • 通過為“列(column)”設置 padding 屬性,從而創建列與列之間的間隔(gutter)。通過為 .row 元素設置負值 margin 從而抵消掉為 .container 元素設置的 padding,也就間接為“行(row)”所包含的“列(column)”抵消掉了padding
  • 負值的 margin就是下麵的示例為什麼是向外突出的原因。在柵格列中的內容排成一行。
  • 柵格系統中的列是通過指定1到12的值來表示其跨越的範圍。例如,三個等寬的列可以使用三個 .col-xs-4 來創建。
  • 如果一“行(row)”中包含了的“列(column)”大於 12,多餘的“列(column)”所在的元素將被作為一個整體另起一行排列。
  • 柵格類適用於與屏幕寬度大於或等於分界點大小的設備 , 並且針對小屏幕設備覆蓋柵格類。 因此,在元素上應用任何 .col-md-* 柵格類適用於與屏幕寬度大於或等於分界點大小的設備 , 並且針對小屏幕設備覆蓋柵格類。 因此,在元素上應用任何 .col-lg-* 不存在, 也影響大屏幕設備。(沒看懂)
最後一條沒看明白,但是在做了個試驗,下麵用個例子來說明這個問題:
<div class="row">
  <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
  <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
  <!-- Optional: clear the XS cols if their content doesn't match in height -->
  <div class="clearfix visible-xs-block"></div>
  <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
</div>
在一個div class裡面有兩個類 col-xs-6 和 col-sm-4,

col-sm-4在屏幕超過768px的地方纔會生效。col-xs-6會在屏幕小的地方生效,這種思路可以得到擴展,自己在做設計的時候,要解決一些相容問題,可以往這個思路去考慮。

隨便粘幾個例子,在例子裡面去體會:

<!-- Stack the columns on mobile by making one full-width and the other half-width -->
<div class="row">
  <div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>

<!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop -->
<div class="row">
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>

<!-- Columns are always 50% wide, on mobile and desktop -->
<div class="row">
  <div class="col-xs-6">.col-xs-6</div>
  <div class="col-xs-6">.col-xs-6</div>
</div>


響應式的大家根據自己的需求去嘗試,下麵是經常需要用的,當我們有嵌套時,且不想把所有格子占滿時,怎麼寫

這種效果,

<div class="col-sm-9">
      Level 1: .col-sm-9
      <div class="row show-grid">
        <div class="col-xs-8 col-sm-5 col-sm-offset-1">
          Level 2: .col-xs-8 .col-sm-6
        </div>
        <div class="col-xs-4 col-sm-5">
          Level 2: .col-xs-4 .col-sm-6
        </div>
      </div>
    </div>

 

通過使用 .col-md-push-*.col-md-pull-* 類就可以很容易的改變列(column)的順序

<div class="row">
  <div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>
  <div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>
</div>

列偏移

使用 .col-md-offset-* 類可以將列向右側偏移。這些類實際是通過使用 * 選擇器為當前元素增加了左側的邊距(margin)。例如,.col-md-offset-4 類將 .col-md-4 元素向右側偏移了4個列(column)的寬度。

 

另外,推薦下firefox的全新瀏覽器,優化好像確實有進步。

https://ftp.mozilla.org/pub/firefox/releases/57.0/

Firefox Quantum(火狐量子)瀏覽器還對記憶體數據使用優先順序進行優化,使其記憶體占用率比谷歌瀏覽器低30%。Firefox Quantum(火狐量子)瀏覽器採用名為Photon的用戶界面,提供更簡約的外觀,在高DPI顯示器上看起來不錯


 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 對於沒參加過互聯網企業招聘,或是沒有參加過大型互聯網企業招聘的人來說,能以這些公司的面試題做為鍛煉,無疑是一種非常好的學習和進步的途徑。下麵是一道騰訊的前端面試題(JS解答),題目本身在現實中意義不大,主要是考察應試者對js及演算法的理解程度,本文給出了三種答案,期待有更大的俠來一試身手,做出更好的解 ...
  • 分頁有兩種方式: 1. 前臺分頁:ajax一次請求獲取全部數據,適合少量數據(萬條數據以下); 註意:1. bootstrap3中分頁的HTML部分要求使用ul標簽;2. 前臺寫分頁演算法。 2. 後臺分頁:發送多次ajax,每次獲取指定頁數的數據(萬條數據以上)。 註意:1. bootstrap3中 ...
  • ()這裡用的是input做的點擊發送驗證碼<input type="number" class="input" name="mobile" placeholder="手機號" style="border: none"<input class="hui_kuang"style="width: 30%; ...
  • 使用的插件為LArea 使用方法 出現的問題:點擊input時會預設彈出軟體盤,與插件彈出的省市區選擇器重疊 解決辦法: $("#txt_area").focus(function () { document.activeElement.blur(); }); 或者 插件地址http://www.5 ...
  • 譯者註:隨著 Node.js 、react-native 等技術的不斷出現,和互聯網行業的創業的層出不窮,瞭解些前端知識,成為全棧攻城師,快速的產出原型,展示你的創意,對程式員,尤其是在創業的程式員來說,越來越重要,下麵我們就跟隨著名國外開發者網站上的熱推文章《Leveling up in CSS》 ...
  • 簡介 普通的UI應用生命周期一般包括Birth, Growth, Death, React中Component的生命周期也是如此,這是一個持續的過程,貫穿整個應用的生命歷程。 階段 1.mounting(birth) 啟動和初始化組件的時候,在這個階段,會發生如下事情: 定義和配置props和sta ...
  • $(document).on("scroll", function () { //真實內容的高度 var pageHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight); //視窗的高度 var viewpo ...
  • 最近在一個剛結束的一個項目中使用到了UEditor編輯器,下麵總結一下遇到的問題以及使用時需要註意的地方: 1. 使用UEditor插件需要先對其進行路徑配置: 在ueditor.config.js文件中 配置 ueditor.config.js文件相對Ueditor文件夾的位置; 2. UEdit ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...