已發布的GitHub Pages網站可能不會超過1 GB。
GitHub Pages網站的軟帶寬限制為每月100GB。
一、簡介
二、CSS框架
三、安裝
<!DOCTYPE html> <html lang="zh-Hant-TW"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="js/jquery-3.3.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.min.js"></script> <title>Bootstrap 離線版</title> </head> <body> </body> </html>請用開發人員工具「F12」=> Network 檢查 引入的Js、Css是否正確
<!doctype html> <html lang="zh-Hant-TW"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous"> <title>Hello, world!</title> </head> <body> <h1>Hello, world!</h1> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> </body> </html>
// Extra small devices (portrait phones, less than 576px) // No media query since this is the default in Bootstrap // Small devices (landscape phones, 576px and up) @media (min-width: 576px) { ... } // Medium devices (tablets, 768px and up) @media (min-width: 768px) { ... } // Large devices (desktops, 992px and up) @media (min-width: 992px) { ... } // Extra large devices (large desktops, 1200px and up) @media (min-width: 1200px) { ... }
Bootstrap 4 因為使用了 CSS Flexbox,所以不輸入數字 = 平均分配欄寬。
<div class="row"> <div class="col-sm"></div> <div class="col-sm"></div> <div class="col-sm"></div> </div>
https://codepen.io/ugm/pen/rdQYGo
<div class="row"> <div class="col-sm"></div> <div class="col-sm-6"></div> <div class="col-sm"></div> </div>
<div class="row"> <div class="col-sm">a</div> <div class="col-sm-auto">bbbbbbbbbbbbbbbbbbbbbbbbbb</div> <div class="col-sm">c</div> </div>
使用 flexbox 容器上的 justify-content
通用類別改變 flex 物件在主軸上的對齊(x軸開始,如果 flex-direction: column
,則為 y 軸)。從 start
(瀏覽器預設)、 end
、center
、between
、或 around
中選擇。
https://codepen.io/ugm/pen/dmQZBp
<div class="container"> <div class="row justify-content-start my-5"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> <div class="row justify-content-center my-5"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> <div class="row justify-content-end my-5"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> <div class="row justify-content-around my-5"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> <div class="row justify-content-between my-5"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> </div>
.row{ background: #aa0; border: 1px blue solid; } .cell{ background: #ccc; padding: 10px; }
<div class="container"> <div class="row align-items-start my-3"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> <div class="row align-items-center mb-3"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> <div class="row align-items-end mb-3"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> </div>
<h4>單獨</h4> <div class="row my-3"> <div class="col-2 align-self-start"><div class="cell">A</div></div> <div class="col-2 align-self-center"><div class="cell">B</div></div> <div class="col-2 align-self-end"><div class="cell">C</div></div> </div>
您可以通過兩種方式來位移欄 .offset-
Class 和 margin 通用類別。網格位移的空間與欄間格相符合,這種推移對於快速佈局可增加更多變化。
使用 .offset-md-*
向右移動列。 透過 *
增加欄的左邊距。 例如 .offset-md-4
增加四欄位移 .col-md-4
。
<div class="container"> <div class="row"> <div class="col">1</div> <div class="col">2</div> <div class="w-100"></div> <div class="col">3</div> <div class="col">4</div> </div> </div> <hr> <div class="container"> <div class="row"> <div class="col-1 border border-primary"> <div class="row"> <div class="col-6 border border-secondary">a</div> <div class="col-6 border border-secondary">b</div> </div> </div> <div class="col-1 border border-primary">2</div> <div class="col-1 border border-primary">3</div> <div class="col-1 border border-primary">4</div> <div class="col-1 border border-primary">5</div> <div class="col-1 border border-primary">6</div> <div class="col-1 border border-primary">7</div> <div class="col-1 border border-primary">8</div> <div class="col-1 border border-primary">9</div> <div class="col-1 border border-primary">10</div> <div class="col-1 border border-primary">11</div> <div class="col-1 border border-primary">12</div> <div class="col-1 border border-primary">13</div> <div class="col-1 border border-primary">14</div> </div> </div>
<hr> <div class="container"> <div class="row"> <div class="col-sm-4 col-md-3 border border-primary">1</div> <div class="col-sm-4 col-md-3 border border-primary">2</div> <div class="col-sm-4 col-md-3 border border-primary">3</div> </div> </div>
<!DOCTYPE html> <html lang="zh-Hant-TW"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <!-- css --> <style> .row{ background: #aa0; border: 1px blue solid; height:200px; } .cell{ background: #f00; padding: 10px; } </style> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="js/jquery-3.3.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.min.js"></script> <title>垂直對齊</title> </head> <body> <div class="container"> <div class="row align-items-start my-3"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2 align-self-center"><div class="cell">B</div></div> <div class="col-2 align-self-end"><div class="cell">C</div></div> </div> <div class="row align-items-center mb-3"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> <div class="row align-items-end mb-3"> <div class="col-2"><div class="cell">A</div></div> <div class="col-2"><div class="cell">B</div></div> <div class="col-2"><div class="cell">C</div></div> </div> </div> </body> </html>
日曆
<!DOCTYPE html> <html lang="zh-Hant-TW"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="js/jquery-3.3.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.min.js"></script> <title>日曆</title> </head> <body> <div class="container"> <div class="row"> <div class="col-8 offset-2"> <div> ..... </div> </div> </div> </div> </body> </html>
<span class="border"></span> <span class="border-top"></span> <span class="border-right"></span> <span class="border-bottom"></span> <span class="border-left"></span>
<span class="border-0"></span> <span class="border-top-0"></span> <span class="border-right-0"></span> <span class="border-bottom-0"></span> <span class="border-left-0"></span>
二、邊框色彩
<span class="border border-primary"></span> <span class="border border-secondary"></span> <span class="border border-success"></span> <span class="border border-danger"></span> <span class="border border-warning"></span> <span class="border border-info"></span> <span class="border border-light"></span> <span class="border border-dark"></span> <span class="border border-white"></span>
<img src="..." alt="..." class="rounded"> <img src="..." alt="..." class="rounded-top"> <img src="..." alt="..." class="rounded-right"> <img src="..." alt="..." class="rounded-bottom"> <img src="..." alt="..." class="rounded-left"> <img src="..." alt="..." class="rounded-circle"> <img src="..." alt="..." class="rounded-0">
一、Colors:借助一些顏色通用類別讓顏色的表達具有意義。這也包括支援有 hover 狀態的樣式連結。
二、範例
<p class="text-primary">.text-primary</p> <p class="text-secondary">.text-secondary</p> <p class="text-success">.text-success</p> <p class="text-danger">.text-danger</p> <p class="text-warning">.text-warning</p> <p class="text-info">.text-info</p> <p class="text-light bg-dark">.text-light</p> <p class="text-dark">.text-dark</p> <p class="text-muted">.text-muted</p> <p class="text-white bg-dark">.text-white</p>
.text-white
、.text-muted
沒有連結樣式
<p><a href="#" class="text-primary">Primary link</a></p> <p><a href="#" class="text-secondary">Secondary link</a></p> <p><a href="#" class="text-success">Success link</a></p> <p><a href="#" class="text-danger">Danger link</a></p> <p><a href="#" class="text-warning">Warning link</a></p> <p><a href="#" class="text-info">Info link</a></p> <p><a href="#" class="text-light bg-dark">Light link</a></p> <p><a href="#" class="text-dark">Dark link</a></p> <p><a href="#" class="text-muted">Muted link</a></p> <p><a href="#" class="text-white bg-dark">White link</a></p>
背景色
類似於文字顏色 class,可輕易將元素加上背景色彩。連結元素將會在 hover 上變暗,就像文字類型一樣。背景色 不要設置color
樣式,盡可能使用 .text-*
通用類別。
<div class="p-3 mb-2 bg-primary text-white">.bg-primary</div> <div class="p-3 mb-2 bg-secondary text-white">.bg-secondary</div> <div class="p-3 mb-2 bg-success text-white">.bg-success</div> <div class="p-3 mb-2 bg-danger text-white">.bg-danger</div> <div class="p-3 mb-2 bg-warning text-dark">.bg-warning</div> <div class="p-3 mb-2 bg-info text-white">.bg-info</div> <div class="p-3 mb-2 bg-light text-dark">.bg-light</div> <div class="p-3 mb-2 bg-dark text-white">.bg-dark</div> <div class="p-3 mb-2 bg-white text-dark">.bg-white</div>
.clearfix
(清除浮動)以方便的清除float
(浮動)。Display 通用類別可快速且包含響應式的切換元件的顯示與否,我們的 Display 通用類別包含許多常用的值,另外在列印時也能使用。
如何運作
使用 display 的通用類別 Class 來改變 display
屬性,我們故意只支援 display
所有可能的一個子集,可以依據需求將這些 Class 調整出各種效果。
符號
Display 通用類別可以套用在所有中斷點,從 xs
到 xl
都在其中,而這些是從最小寬度 min-width: 0;
開始運用,因此預設不受 media query 限制,然而其餘的斷點都包含縮寫。
因此,這些 Class 使用以下格式來命名:
.d-{value}
for xs
.d-{breakpoint}-{value}
for sm
, md
, lg
, and xl
.value 可以替換成以下:
none
inline
inline-block
block
table
table-cell
table-row
flex
inline-flex
這些 media queries 會設置大於中斷點,舉例來說: .d-lg-none
在 lg
和 xl
屏幕上設置 display:none;
。
範例:
<div class="d-inline p-2 bg-primary text-white">d-inline</div> <div class="d-inline p-2 bg-dark text-white">d-inline</div>
<span class="d-block p-2 bg-primary text-white">d-block</span> <span class="d-block p-2 bg-dark text-white">d-block</span>
為了更快速且友善的移動設備開發,請使用響應式 display Class 來顯示和隱藏元件。避免創建完全不同版本的同一個網站,而不是按照每個螢幕尺寸隱藏元素。
要在給定的螢幕上顯示一個元素,您可以將一個 .d-*-none
與 .d-*-*
結合起來,例如 .d-none.d-md-block.d-xl-none
將隱藏所有螢幕尺寸的元素,除了中型和大型設備。
Screen Size | Class |
---|---|
Hidden on all | .d-none |
Hidden only on xs | .d-none .d-sm-block |
Hidden only on sm | .d-sm-none .d-md-block |
Hidden only on md | .d-md-none .d-lg-block |
Hidden only on lg | .d-lg-none .d-xl-block |
Hidden only on xl | .d-xl-none |
Visible on all | .d-block |
Visible only on xs | .d-block .d-sm-none |
Visible only on sm | .d-none .d-sm-block .d-md-none |
Visible only on md | .d-none .d-md-block .d-lg-none |
Visible only on lg | .d-none .d-lg-block .d-xl-none |
Visible only on xl | .d-none .d-xl-block |
<div class="d-lg-none">hide on screens wider than lg</div> <div class="d-none d-lg-block">hide on screens smaller than lg</div>
<!DOCTYPE html> <html lang="zh-Hant-TW"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="js/jquery-3.3.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.min.js"></script> <title>Bootstrap border</title> <style type="text/css"> [class^=border] { display: inline-block; width: 5rem; height: 5rem; margin: .25rem; background-color: #f5f5f5; } .ex-border-0 span{ border: 1px solid #ccc; } </style> </head> <body> <div class="container"> <div class="my-5 border border-primary p-5" style=""> <h2>Border 增加</h2> <span class="border"></span> <span class="border-top"></span> <span class="border-right"></span> <span class="border-bottom"></span> <span class="border-left"></span> </div> </div> </body> </html>
<!DOCTYPE html> <html lang="zh-Hant-TW"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="js/jquery-3.3.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.min.js"></script> <title>Bootstrap clearfix</title> </head> <body> <div class="container"> <div class="clearfix"> <img src="img/fix-1.jpg" alt="aaa" width="300" class="float-right"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis enim optio ad suscipit natus, impedit hic, numquam odit iure autem debitis rerum odio nulla voluptas laudantium minima quae ipsa accusamus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellat tempora, quidem ut quam ex ad delectus aperiam vitae molestias architecto nulla sit ipsa, eius maxime nemo temporibus expedita quo. Vel?</p> </div> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem et maxime amet doloribus, quis, soluta deleniti optio esse aperiam dicta repellendus suscipit cum recusandae earum excepturi at nostrum eos enim.</p> </div> </body> </html>
<button class="navbar-toggler" data-toggle="collapse" data-target="#navbar-content"> <span class="navbar-toggler-icon"></span> </button>
<li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Something else here</a> </div> </li>
<nav class="navbar navbar-expand-lg navbar-light bg-light"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Something else here</a> </div> </li> <li class="nav-item"> <a class="nav-link disabled" href="#">Disabled</a> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> </form> </div> </nav>
<!DOCTYPE html> <html lang="zh-Hant-TW"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="js/jquery-3.3.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.min.js"></script> <title>Bootstrap navs</title> </head> <body> <div class="container"> <ul class="nav"> <li class="nav-item"> <a href="#" class="nav-link">Html</a> </li> <li class="nav-item"> <a href="#" class="nav-link">Css</a> </li> <li class="nav-item"> <a href="#" class="nav-link">Javascript</a> </li> </ul> </div> </body> </html>
<table class="table"> <thead> <tr> <th scope="col">#</th> <th scope="col">First</th> <th scope="col">Last</th> <th scope="col">Handle</th> </tr> </thead> <tbody> <tr> <th scope="row">1</th> <td>Mark</td> <td>Otto</td> <td>@mdo</td> </tr> <tr> <th scope="row">2</th> <td>Jacob</td> <td>Thornton</td> <td>@fat</td> </tr> <tr> <th scope="row">3</th> <td>Larry</td> <td>the Bird</td> <td>@twitter</td> </tr> </tbody> </table>
反轉色彩,使用 .table-dark
在深色背景下放上淺色文本。
表格 head 選項
與預設和反轉樣式相似,使用如下兩個 .thead-light 或 .thead-dark 中的一個將 <thead> 顯示淺灰或深灰。
條紋行
使用 .table-striped 在 <tbody>中的任何表格行添加斑馬紋
帶框的表格
加入 .table-bordered 在表格和儲存格的四邊上添加邊框。
滑入變色
添加 .table-hover 以便在一個 <tbody> 中的表格行上啟用一個 hover 狀態。
小表格
添加 .table-sm 將儲存格 padding 縮減一半的方式讓表格更加精簡。
語意化 class
使用語意化 class 給表格列或單獨的儲存格上色。
<!-- On rows --> <tr class="table-active">...</tr> <tr class="table-primary">...</tr> <tr class="table-secondary">...</tr> <tr class="table-success">...</tr> <tr class="table-danger">...</tr> <tr class="table-warning">...</tr> <tr class="table-info">...</tr> <tr class="table-light">...</tr> <tr class="table-dark">...</tr> <!-- On cells (`td` or `th`) --> <tr> <td class="table-active">...</td> <td class="table-primary">...</td> <td class="table-secondary">...</td> <td class="table-success">...</td> <td class="table-danger">...</td> <td class="table-warning">...</td> <td class="table-info">...</td> <td class="table-light">...</td> <td class="table-dark">...</td> </tr>
響應式表格
當表格想要始終呈現水平滾動,可在 .table 上加入 .table-responsive,使 Viewport 符合任何表格。或者 .table 中加 .table-responsive{-sm|-md|-lg|-xl} 創建響應式表格的最大斷點。
<div class="table-responsive-sm"> <table class="table"> ... </table> </div> <div class="table-responsive-md"> <table class="table"> ... </table> </div> <div class="table-responsive-lg"> <table class="table"> ... </table> </div> <div class="table-responsive-xl"> <table class="table"> ... </table> </div>
水平對齊
.text-center
垂直對齊
.align-middle :http://bootstrap.hexschool.com/docs/4.0/utilities/vertical-align/
一、入口網站
<div class="container my-5"> <h1 class="text-center">入口網站</h1> <table class="table table-hover table-bordered"> <thead> <tr> <th class="text-center" scope="col" style="width:10%">#</th> <th class="text-center" scope="col" style="width:20%">網站名稱</th> <th class="text-center" scope="col">網站</th> </tr> </thead> <tbody> <tr> <th class="text-center align-middle" scope="row">0</th> <td class="text-center align-middle" >育將電腦工作室</td> <td class="text-center align-middle" > <a href="#" target="_blank"> <img src="...."> </a> </td> </tr> </tbody> </table> </div>
一、圖片處理
二、程式碼
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li> <li data-target="#carouselExampleIndicators" data-slide-to="1"></li> <li data-target="#carouselExampleIndicators" data-slide-to="2"></li> </ol> <div class="carousel-inner"> <div class="carousel-item active"> <img class="d-block w-100" src="..." alt="First slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="..." alt="Second slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="..." alt="Third slide"> </div> </div> <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a>
<ol class="carousel-indicators"> <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li> <li data-target="#carouselExampleIndicators" data-slide-to="1"></li> <li data-target="#carouselExampleIndicators" data-slide-to="2"></li> </ol>
<style type="text/css"> .carousel .carousel-item{ height: 100vh; } .carousel .carousel-item img{ min-height: 100vh; max-height: 100vh; object-fit:cover; } </style>
object-fit / object-position 透過這兩個屬性,我們可以控制置換元素的內容填入的位置及大小。
PS. 置換元素指的是img、video 及 canvas …等,簡單說就是 tag 的 src 載入內容後,會取代原本元素。
比較可惜的是, IE、edge 並不支援這兩個屬性
object-fit: fill 預設值,預設會強制變形至 css 所定義的元素寬高,不管原檔比例。 contain 增加或減少載入物件的寬度及高度(維持原比例)直到放得進所定義的元素寬高。 cover 填滿元素的寬度及高度(維持原比例),通常會剪掉部分的物件。 none 不做任何大小及比例調整。 scale-down 將會選擇設為 none 或 container 兩者間較小的那個物件。
二、範例:http://bootstrap.hexschool.com/docs/4.0/components/card/
<div class="card" style="width: 18rem;"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div>
圖片在底部:
<img class="card-img-bottom" src="img/slide01.jpg" alt="Card image cap">
<div class="card" style="width: 18rem;"> <ul class="list-group list-group-flush"> <li class="list-group-item">Cras justo odio</li> <li class="list-group-item">Dapibus ac facilisis in</li> <li class="list-group-item">Vestibulum at eros</li> </ul> </div>
<div class="card" style="width: 18rem;"> <div class="card-header"> Featured </div> <ul class="list-group list-group-flush"> <li class="list-group-item">Cras justo odio</li> <li class="list-group-item">Dapibus ac facilisis in</li> <li class="list-group-item">Vestibulum at eros</li> </ul> </div>
<div class="card" style="width: 18rem;"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> </div> <ul class="list-group list-group-flush"> <li class="list-group-item">Cras justo odio</li> <li class="list-group-item">Dapibus ac facilisis in</li> <li class="list-group-item">Vestibulum at eros</li> </ul> <div class="card-body"> <a href="#" class="card-link">Card link</a> <a href="#" class="card-link">Another link</a> </div> </div>
<div class="card bg-dark text-white"> <img class="card-img" src="..." alt="Card image"> <div class="card-img-overlay"> <h5 class="card-title">Card title</h5> <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p> <p class="card-text">Last updated 3 mins ago</p> </div> </div>
<div class="card-group"> <div class="card"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> <div class="card"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> <div class="card"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> </div>
卡片群組裡面是等高的,如果有需要對齊則可利用「.card-footer」
間隔:.card-group 改為 .card-deck
<div class="card-columns"> <div class="card"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title that wraps to a new line</h5> <p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p> </div> </div> <div class="card p-3"> <blockquote class="blockquote mb-0 card-body"> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p> <footer class="blockquote-footer"> <small class="text-muted"> Someone famous in <cite title="Source Title">Source Title</cite> </small> </footer> </blockquote> </div> <div class="card"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p> <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> </div> </div> <div class="card bg-primary text-white text-center p-3"> <blockquote class="blockquote mb-0"> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat.</p> <footer class="blockquote-footer"> <small> Someone famous in <cite title="Source Title">Source Title</cite> </small> </footer> </blockquote> </div> <div class="card text-center"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p> <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> </div> </div> <div class="card"> <img class="card-img" src="..." alt="Card image"> </div> <div class="card p-3 text-right"> <blockquote class="blockquote mb-0"> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p> <footer class="blockquote-footer"> <small class="text-muted"> Someone famous in <cite title="Source Title">Source Title</cite> </small> </footer> </blockquote> </div> <div class="card"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p> <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> </div> </div> </div>
carosel.html
<!DOCTYPE html> <html lang="zh-Hant-TW"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="js/jquery-3.3.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.min.js"></script> <title>Bootstrap 輪播圖</title> </head> <body> <style type="text/css"> .carousel .carousel-item{ height: 300px; } .carousel .carousel-item img{ min-height: 300px; max-height: 400px; object-fit:cover; } </style> <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li> <li data-target="#carouselExampleIndicators" data-slide-to="1"></li> <li data-target="#carouselExampleIndicators" data-slide-to="2"></li> </ol> <div class="carousel-inner"> <div class="carousel-item active"> <img class="d-block w-100" src="img/s01.jpg" alt="First slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="img/s02.jpg" alt="Second slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="img/s03.jpg" alt="Third slide"> </div> </div> <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> <!-- 卡片 --> <div class="container my-5"> <div class="card" style="width: 18rem;"> <img class="card-img-top" src="img/s03.jpg" alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> </div> </body> </html>
一、建立專案repo
echo "# gallery" >> README.md git init git add README.md git commit -m "first commit" git remote add origin git@github.com:webugm/gallery.git git push -u origin master
二、建立Bootstrap4框架
<!DOCTYPE html> <html lang="zh-Hant-TW"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="js/jquery-3.3.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.min.js"></script> <title>Bootstrap 離線版</title> </head> <body> </body> </html>
三、建立電子相簿網格
.img-thumbnail
讓圖片有1px邊框的顯示、.img-fluid
設定為響應式四、圖片處理
<div class="container"> <h1 class="my-4 text-center text-lg-left">電子相簿</h1> <div class="row"> <div class="col-lg-3 col-md-4 col-sm-6"> <a href="#" class="d-block mb-4 h-100"> <img class="img-fluid img-thumbnail" src="...." alt=""> </a> </div> </div> </div>
五、電子相簿播放
<!-- lightgallery css --> <link rel="stylesheet" type="text/css" href="lightgallery/css/lightgallery.css"> <!-- lightgallery js --> <script src="lightgallery/js/picturefill.min.js"></script> <script src="lightgallery/js/lightgallery-all.min.js"></script> <script src="lightgallery/js/jquery.mousewheel.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('#lightgallery').lightGallery(); }); </script>
<!-- 容器 --> <div class="container"> <!-- 列 --> <div class="row"> <!-- item --> <div class="col-lg-3 col-md-4 col-sm-6"> <a href="#"> <img src="...." alt="..."> </a> </div> </div> </div>
值 | 描述 |
absolute |
生成絕對定位的元素,相對於static 定位以外的第一個父元素進行定位。 元素的位置通過"left", "top", "right" 以及"bottom" 屬性進行規定。 |
fixed |
生成絕對定位的元素,相對於瀏覽器窗口進行定位。 元素的位置通過"left", "top", "right" 以及"bottom" 屬性進行規定。 |
relative |
生成相對定位的元素,相對於其正常位置進行定位。 因此,"left:20" 會向元素的LEFT 位置添加20 像素。 |
static默認值。 | 沒有定位,元素出現在正常的流中(忽略top, bottom, left, right 或者z-index 聲明)。 |
inherit | 規定應該從父元素繼承position 屬性的值。 |
thumbnail:true //true、false
thumbnail:true, animateThumb: true, //略縮圖動畫 showThumbByDefault: false //預設出現略縮圖
<!-- lightgallery css --> <link rel="stylesheet" type="text/css" href="lightgallery/css/lightgallery.min.css"> <!-- lightgallery js --> <script src="lightgallery/js/picturefill.min.js"></script> <script src="lightgallery/js/lightgallery-all.min.js"></script> <script src="lightgallery/js/jquery.mousewheel.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('#lightgallery').lightGallery(); }); </script>
<!-- 上方選單 --> <div class="header" id="header"> <nav class="navbar navbar-expand-lg navbar-light bg-light"> <div class="container-fluid"> <!-- 品牌 --> <a class="navbar-brand" href="#">Navbar</a> <!-- 切換按鈕 --> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <!-- 下拉選單 --> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Something else here</a> </div> </li> <li class="nav-item"> <a class="nav-link disabled" href="#">Disabled</a> </li> </ul> <!-- 搜尋 --> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> </form> </div> </div> </nav> </div>
一、套件
<!-- 引入插件 bootstrap-4-multi-dropdown-navbar --> <link href="https://bootstrapthemes.co/demo/resource/bootstrap-4-multi-dropdown-navbar/css/bootstrap-4-navbar.css" rel="stylesheet"> <script src="https://bootstrapthemes.co/demo/resource/bootstrap-4-multi-dropdown-navbar/js/bootstrap-4-navbar.js"></script>
一、方法
<!-- unitegallery --> <script type='text/javascript' src='unitegallery/js/unitegallery.min.js'></script> <link rel='stylesheet' href='unitegallery/css/unite-gallery.css' type='text/css' /> <!-- 網格 --> <script type='text/javascript' src='unitegallery/themes/tilesgrid/ug-theme-tilesgrid.js'></script> <script type="text/javascript"> jQuery(document).ready(function(){ jQuery("#gallery").unitegallery(); }); </script>
Google雲端無紙化工作術:http://ccs.tncomu.tw/modules/ccs_course/index.php?op=view_course&course_sn=7198
<div class="container"> <div class="row"> <div class="col-sm-12 col-md-6 col-lg-4 col-xl-3"> ..... </div> </div> </div>
<!-- card item --> <div class="card"> <img class="card-img-top" src="...." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">card 標題</h5> <p class="card-text">card 內容</p> <a href="#" class="btn btn-primary">按鈕</a> </div> <div class="card-footer"> <span>card 頁尾</span> </div> </div> <!-- card item end-->
上課範例:https://github.com/tawan158/gallery/blob/master/20180607.html
二、線上筆記
#Git 再次出現嚴重漏洞,只要透過 git clone 複製到惡意的遠端儲存庫,就會在本機電腦執行任意程式碼,相當危險,必須立刻更新所有 Git 用戶端軟體 (#所有作業系統平台)! 目前 #GitHub 與 #VSTS 都已經做出主動防禦,但其他平台很難說,#建議盡速更新,也請大家幫忙轉發,讓更多人知道!
目前已修正的 Git 版本為 2.17.1、2.16.4、2.15.2、2.14.4 以及 2.13.7 等等,請大家盡速更新!
.
各作業系統平台的更新方法整理如下:
git update-git-for-windows
或
choco upgrade git
brew upgrade git
#Linux更新方法 (Ubuntu)
sudo apt update && sudo apt upgrade git
或
sudo apt-add-repository ppa:git-core/ppa
sudo apt update && sudo apt upgrade git
port selfupdate; port upgrade git
git version
----
#攻擊示範影片:
https://twitter.com/VSTS/status/1001544001881862145