pc端的企業網站(IT修真院test9)詳解一個響應式完成的pc端項目

来源:http://www.cnblogs.com/hewasdrunk/archive/2017/07/24/7230452.html
-Advertisement-
Play Games

一:引入bootstrap框架 昨天一直被bootstrap柵格系統折磨。 why? 我本來想一邊碼字,一邊學習柵格佈局的。but不成功。這時我頭腦已經昏了。 下午,我查看了bootstrap的官網,帶著我的問題:究竟怎麼使用bootstrap的框架呢? 發現問題一:我原先外部引入的bootstra ...


 

 

一:引入bootstrap框架

 

昨天一直被bootstrap柵格系統折磨。

why?

我本來想一邊碼字,一邊學習柵格佈局的。but不成功。這時我頭腦已經昏了。

下午,我查看了bootstrap的官網,帶著我的問題:究竟怎麼使用bootstrap的框架呢?

發現問題一:我原先外部引入的bootstrap,的確可以還原樣式。但是碼字的時候特麻煩。webstrom無法提示代碼。

為此,我在bootstrap中文網上download了bootstrap-3.3.7-dist.zip,好!

在html頁面也引入三段式

<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">
<!-- jQuery文件。務必在bootstrap.min.js 之前引入 -->
<script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="http://cdn.bootcss.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>

but,我的代碼是這樣的。

<script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
<link href="css/bootstrap.min.css" rel="stylesheet"/>
<link href="css/bootstrap-theme.min.css" rel="stylesheet"/>

這裡犯錯誤了,因為配件還沒齊。我就這麼地瞎弄,頁面沒效果。為此又用3個鐘找出問題所在。

怎麼我一路都是排雷啊! ~~~x_x!

找到問題後,我上https://jquery.com/download/下載了最新的jquery-3.2.1.min.js放在我新建的test9-1.html的同層目錄lib的目錄下

然後在</body>上輸入如下代碼:

<script type="text/javascript" src="lib/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
</body>

,好了,配置完畢。如果你看到我這篇文章,恭喜你,不用再踩這坑了!我其實這2天都在柬埔寨地雷中。

總結 :如果你按照我說的樣式佈局,那麼會有如下結構:

1自己項目下含有bootstrap的(css,fonts,js)三個文件。

2在每個頁面的<head></head>標簽中有如下代碼1號

3在</body>前有引入js的代碼2號

 

花了那麼多天,當然要問自己,要花多少時間學會使用bootstrap呢?又與原生html+css佈局有什麼區別呢?

 

二,bootstrap的柵格系統

其實,

twitter bootstrap的 container類的優點在於它是響應式的,它會以當前屏幕的寬度為基礎計算出最佳的寬度予以使用。

響應式嘛!這是當前最流行的佈局啊!而且對自己說句不好聽的,你以為這班大茄會比你笨,和比你無聊的讓你學嗎?

立馬清醒了。

container類等價於創建了一個具有靜態寬度並且magin值為auto的一個居中的div盒子

.container {
   padding-right: 15px;
   padding-left: 15px;
   margin-right: auto;
   margin-left: auto;
}

而row類就是margin水平方向負15px;

當時我直接照搬container》row》cod-lg-4這樣的結構佈局呢!所以在排版定位上跟我原先的思路脫軌了!

所以在中午的時候我帶著“如何消除左右邊的空白”在IT散修群上發問的時候,有一位師兄讓我搞個-15px;現在大概明白了!。

整個下來,柵格系統的理論就是:

最外層的container含有left,right的15px padding

順位row含有left,right的-15px margin

順位col-lg-12含有left,right的15px padding

這個結構,我想問:大神你確定不是中國墨家的繼承人?

 

還有一些傻逼的事情發生,我本來知道有.container-fluid 則是一個全寬的容器,使用整個寬度的事情。但是偏偏大半天在使用.container,然後調節水平的內外邊距。( ▼-▼ )被自己蠢哭。

經過今早的創作!,我瞭解到一般網上不提倡container內嵌套container,但是可以出現這種結構

1/container>row>直接是我們平時佈局的代碼

2/container>row>col-lg-12

3/container-fluid>container>row>col-lg-12

不知道觀眾有沒有想我這種蠢哭的人,一開始還以為只能按照container>row>col-lg-12的結構佈局,才算是柵格系統。8_8~憂傷啊!

 

回到我原先的提問,究竟與原生html+css佈局的差別

讓我們拿個實例說話

放上我的test8-1.html和test9-1.html的footer設置講解一下

整體結構如上:左邊是原生html+css,右邊是柵格系統

先說最下麵的f-row-2的設定吧!

 

原生h+c中,最底部版權信息的架構是

f-row-2>pct80 tr>內容

在這,我需要給個base樣式pct80{with:80%}來完成我的寬度分離原則。內容款只有80%寬,應該還要加入一個auto類,來讓我這div居中顯示。

而柵格系統,它的架構是這樣的

container-fluid>f-row-2 row>col-lg-12 col-md-12 col-xs-12>tr>內容

我還是通過f-row-2來確定內容顯示的空間高度,不過寬度是由柵格系統row和col-lg-12這種搭配來設定的。

而樣式,一點也沒改。

 

看完上面的例子,如果還沒弄明白,沒關係,還有下麵慄子。

左邊我是通過一個父盒子<div class="pct80 auto df-jcsb">來包含三個子盒子(f-cess-1,f-cess-2,f-cess-3)的。

通過父盒子css樣式df-jcsb兩端對齊,不換行來實現一行三個盒子自適應的(flex知識)

右邊我是通過

 

<div class="container">
   <div id="f-row-1" class="row">
       <div class="col-lg-4 col-md-4 col-xs-12">

放置每一個f-cess-1,f-cess-2的,f-cess-3我後來也應佈局,使用position定位來實現。

 

還有就是:左邊我要為每個子盒子設定寬度和外邊距。右邊我是直接通過col-lg-4來操縱的。

可能我說的不是很清晰吧!大家可以上我的github,download項目test9和test8來做對比。

附上地址:https://github.com/hewasdrunk/

總結一下我要說明的地方:就是原生html+css的佈局中是自由的設定div結構和寬度來實現我們要的佈局。而柵格系統就是自己有一套方法,讓我們通過改變col-lg-12的這種形式來實現寬度。行就通過row來實現。

——菜鳥:幾里路

 


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

-Advertisement-
Play Games
更多相關文章
  • 在Vue.js中,在實例化Vue之前,它們都是以HTML的文本形式存在文本編輯器中。當實例化後將經歷創建、編譯、銷毀三個主要階段,以下是Vue.js 1.x 和 2.0 實例的生命周期的介紹。 ...
  • 技術棧。前端:Express & EJS & ES6 & Less & Gulp。後端:Express & SocketIO & MongoDB & [REST API](API.md)。部署:Linux & PM2。 ...
  • 據說公司的項目較多的用到requirejs管理依賴,所以大熊同學擠出了5分鐘休息時間學習了一下,現在分享一下。如果你想瞭解requirejs的實現原理,請繞道!如果你想瞭解requirejs的高級用法,請繞道!那麼問題來了,這篇小文還有人看嗎? ...
  • 提起路由,首先想到的就是 ASPNET MVC 裡面的路由系統 通過事先定義一組路由規則,程式運行時就能自動根據我們輸入的URL來返回相對應的頁面。前端中的路由與之類似,前端中的路由是根據你定義的路由規則來渲染不同的頁面/組件,同時也會更新地址欄的URL。本篇文章要介紹的是React中經常使用到的路 ...
  • MVC是什麼? MVC是一種架構模式,它將應用抽象為3個部分:模型(數據)、視圖、控制器(分發器)。 本文將用一個經典的例子todoList來展開(代碼在最後)。 一個事件發生的過程(通信單向流動): 1、用戶在視圖 V 上與應用程式交互 2、控制器 C 觸發相應的事件,要求模型 M 改變狀態(讀寫 ...
  • 一、document.formName.item(”itemName”) 問題 問題說明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName"];Firefox 下,只能使用do ...
  • JS數組的基礎操作代碼: <script type="text/javascript"> 數組的三種定義 var arr1 = new Array(); var arr3 = Array(1,2,3.5,4,'5',false); var arr2 = [1,2,3,4,'5',"aa",true] ...
  • 開啟第一版本的迭代設計,互動朋友圈API設計,上篇文章公佈了我們的初稿原型圖設計。 該APP類似微信朋友圈,添加好用功能類似微博添加好友的那種關註與被關註的形式。運營形式類似於快手! 互動朋友圈API設計 一、登錄 請求地址:http://192.168.2.8020/api/Login 請求方式: ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...