疊樣式表(Cascading Style Sheet,簡稱:CSS)是為網頁添加樣式的代碼。本節將介紹 CSS 的基礎知識,并解答類似問題:怎樣將文本設置為黑色或紅色?怎樣將內容顯示在屏幕的特定位置?怎樣用背景圖片或顏色來裝飾網頁?
和 HTML 類似,CSS 也不是真正的編程語言,甚至不是標記語言。它是一門樣式表語言,這也就是說人們可以用它來選擇性地為 HTML 元素添加樣式。舉例來說,要選擇一個 HTML 頁面里所有的段落元素,然后將其中的文本改成紅色,可以這樣寫 CSS:
p {
color: red;
}
不妨試一下:首先新建一個 styles 文件夾,在其中新建一個 style.css 文件,將這三行 CSS 保存在這個新文件中。
然后再將該 CSS 文件連接至 HTML 文檔,否則 CSS 代碼不會對 HTML 文檔在瀏覽器里的顯示效果有任何影響。(如果你沒有完成前幾節的實踐,請復習處理文件 和 HTML 基礎。在筆記本里有這個方面的內容!)
1、打開 index.html 文件,然后將下面一行粘貼到文檔頭(也就是 <head> 和 </head> 標簽之間)。
<link href="styles/style.css" rel="stylesheet">
2、保存 index.html 并用瀏覽器將其打開。應該看到以下頁面:
如果段落文字變紅,那么祝賀你,你已經成功地邁出了 CSS 學習的第一步。
讓我們來仔細看一看上述CSS:
整個結構稱為 規則集(通常簡稱“規則”),各部分釋義如下:
注意其他重要的語法:
如果要同時修改多個屬性,只需要將它們用分號隔開,就像這樣:
p {
color: red;
width: 500px;
border: 1px solid black;
}
也可以選擇多種類型的元素并為它們添加一組相同的樣式。將不同的選擇器用逗號分開。例如:
p, li, h1 {
color: red;
}
選擇器有許多不同的類型。上面只介紹了元素選擇器,用來選擇 HTML 文檔中給定的元素。但是選擇的操作可以更加具體。下面是一些常用的選擇器類型:
選擇器名稱 | 選擇的內容 | 示例 |
元素選擇器(也稱作標簽或類型選擇器) | 所有指定(該)類型的 HTML 元素 | p 選擇 <p> |
ID 選擇器 | 具有特定 ID 的元素(單一 HTML 頁面中,每個 ID 只對應一個元素,一個元素只對應一個 ID) | #my-id 選擇 <p id="my-id"> 或 <a id="my-id"> |
類選擇器 | 具有特定類的元素(單一頁面中,一個類可以有多個實例) | .my-class 選擇 <p class="my-class"> 和 <a class="my-class"> |
屬性選擇器 | 擁有特定屬性的元素 | img[src] 選擇 <img src="myimage.png"> 而不是 <img> |
偽(Pseudo)類選擇器 | 特定狀態下的特定元素(比如鼠標指針懸停) | a:hover 僅在鼠標指針懸停在鏈接上時選擇 <a>。 |
選擇器的種類遠不止于此,更多信息請參閱 選擇器。
譯注:再一次說明,中文字體文件較大,不適合直接用于 Web Font。
在探索了一些 CSS 基礎后,我們來把更多規則和信息添加至 style.css 中,從而讓示例更美觀。首先,讓字體和文本變得更漂亮。
第一步:找到之前Google Font 輸出的地址。并以<link>元素的形式添加進index.html文檔頭(<head>和</head>之間的任意位置)。代碼如下:
<link href="https://fonts.font.im/css?family=Open+Sans" rel="stylesheet" type="text/css">
以上代碼為當前網頁下載 Open Sans 字體,從而使自定義 CSS 中可以對 HTML 元素應用這個字體。
第二步:接下來,刪除 style.css 文件中已有的規則。雖然測試是成功的了,但是紅字看起來并不太舒服。
第三步:將下列代碼添加到相應的位置,用你在 Google Fonts 找到的字體替代 font-family 中的占位行。( font-family 意味著你想要你的文本使用的字體。)這條規則首先為整個頁面設定了一個全局字體和字號(因為 <html> 是整個頁面的父元素,而且它所有的子元素都會繼承相同的 font-size 和 font-family):
html {
/* px 表示 “像素(pixels)”: 基礎字號為 10 像素 */
font-size: 10px;
/* Google fonts 輸出的 CSS */
font-family: 'Open Sans', sans-serif;
}
注:CSS 文檔中所有位于 /* 和 */ 之間的內容都是 CSS 注釋,它會被瀏覽器在渲染代碼時忽略。你可以在這里寫下對你現在要做的事情有幫助的筆記。
譯注:/*``*/ 不可嵌套,/*這樣的注釋是/*不行*/的*/。CSS 不接受 // 注釋。
接下來為文檔體內的元素(<h1> (en-US)、<li>和<p>)設置字號。將標題居中顯示,并為正文設置行高和字間距,從而提高頁面的可讀性。
h1 {
font-size: 60px;
text-align: center;
}
p, li {
font-size: 16px;
/* line-height 后而可以跟不同的參數,如果是數字,就是當前字體大小乘上數字 */
line-height: 2;
letter-spacing: 1px;
}
可以隨時調整這些 px 值來獲得滿意的結果,以下是大體效果:
編寫 CSS 時你會發現,你的工作好像是圍繞著一個一個盒子展開的——設置尺寸、顏色、位置,等等。頁面里大部分 HTML 元素都可以被看作若干層疊的盒子。
并不意外,CSS 布局主要就是基于盒模型的。每個占據頁面空間的塊都有這樣的屬性:
這里還使用了:
開始在頁面中添加更多 CSS 吧!大膽將這些新規則都添加到頁面的底部,而不要糾結改變屬性值會帶來什么結果。
html{
background-color:#00539f;
}
這條規則將整個頁面的背景顏色設置為 所計劃的顏色。
body{
width:600px;
margin:0 auto;
background-color:#ff9500;
padding:0 20px 20px 20px;
border:5px solid black;
}
現在是 <body> 元素。以上條聲明,我們來逐條查看:
h1{
margin: 0;
padding:20px 0;
color: #00539f;
text-shadow:3px 3px 1px black
}
你可能發現頁面的頂部有一個難看的間隙,那是因為瀏覽器會在沒有任何 CSS 的情況下 給 <h1>en-US等元素設置一些默認樣式。但這并不是個好主意,因為我們希望一個沒有任何樣式的網頁也有基本的可讀性。為了去掉那個間隙,我們通過設置margin: 0;來覆蓋默認樣式。
至此,我們已經把標題的上下內邊距設置為 20 像素,并且將標題文本與 HTML 的背景顏色設為一致。
需要注意的是,這里使用了一個 text-shadow 屬性,它可以為元素中的文本提供陰影。四個值含義如下:
不妨嘗試不同的值看看能得出什么結果。
img{
display:block;
margin:0 auto;
}
最后,我們把圖像居中來使頁面更美觀。可以復用 body 的margin: 0 auto,但是需要一點點調整。<body>元素是塊級元素,意味著它占據了頁面的空間并且能夠賦予外邊距和其他改變間距的值。而圖片是內聯元素,不具備塊級元素的一些功能。所以為了使圖像有外邊距,我們必須使用display: block 給予其塊級行為。
注:以上說明假定所選圖片小于頁面寬度(600 pixels)。更大的圖片會溢出 body 并占據頁面的其他位置。要解決這個問題,可以:
1)使用 圖片編輯器 來減小圖片寬度; 2)用 CSS 限制圖片大小,即減小 <img> 元素 width 屬性的值(比如 400 px)。
注:如果你暫時不能理解 display: block 和塊級元素與行內元素的差別也沒關系;隨著你對 CSS 學習的深入,你將明白這個問題。
如果你按部就班完成本文的實踐,那么最終可以得到以下頁面
相關推薦:
前端新手看過來,手把手帶你輕松上手html的實操
節課將網頁的排版框架大致寫好。
這節課就來進行更具體的修改和增加所有元素的細節,完成整個網頁的編寫。
按照上節課的方法,用調試工具分析代碼之后,可以下載好必須的圖片文件。
關于當中專題的圖片,這里只下載了3個,更多的圖和文字留給大家自己去完成。
給table加上邊框線的目的是為了方便在開發編寫完成之前能夠隨時觀察排版的情況,方便進行調整。
在排版樣式基本調整到位之后,就可以刪除table的邊框了。
來給下面2行的左右分別增加內邊距為140px和120px。
修改css代碼如下:
刷新頁面:
可以看到,下面2行的左右留白出現了,同時第2行和第3行之間有間距,第3行的左右2個td之間也有間距。
雖然第3行的2個td的寬度比例不對,但是先不著急,下面按照次序一個一個元素來調整。
最上面一排左邊4個元素,右邊4個元素,當中留白,因此一共9個td。
將左邊4個td和右邊4個td的寬度固定,剩余當中的一個td不設置,那么瀏覽器窗口變化的時候,就不影響到左右的8個td的寬度。
僅僅影響到當中留白的那個td。這是經常使用的一種適應不同瀏覽器在不同屏幕上不同寬度的一種方法。
修改css代碼,增加tda1到tda9的樣式。
刷新頁面:
可以看到,基本的按鈕位置已經到位,可以不需要table的邊框了。
刪除掉table的邊框樣式,同時針對最上面一排的整個table的樣式table2增加一個下邊框的樣式,做出一條灰色的分割線出來。
修改css代碼如下:
刷新頁面:
接下來,逐步添加圖片或者按鈕。
第一步,添加第一個圖片,logo圖片。然后增加后面的2個icon圖標,這里icon圖標要用到一個新的技術,就是css3的content屬性。
并且通過自定義字體文件,來顯示圖標類型的文字。具體內容這里不深入講解,大家只要了解,通過引入自定義字體文件的方式就可以將字體文件里面的特殊符號圖標形狀的文字顯示在網頁上。它看起來是一個圖標,但其本質是一個文字。這是這個文字做成圖標樣子了。比如很多網頁中出現的各種箭頭圖標,很多都是文字。
修改css代碼如下:
修改html代碼如下:
刷新頁面:
可以看到,前面3個圖標都模仿編寫完成了。
接下來模仿搜索框部分。
搜索框可以用外面套一個div,div的背景色是灰色,然后邊角做成圓角的。
當中放一個input標簽可以用于輸入,input標簽是一個新的標簽,具體的作用就是讓用戶可以輸入文本的。
后面的課程中會詳細講解的,這里不深入講解。
然后右邊放一個類似前面的圖標用i標簽并設置content自定義文字編碼來實現。
修改css代碼如下:
修改html代碼如下:
刷新頁面:
接下來,修改右側的4個圖標和按鈕。
第1個很簡單,也是一個文字圖標,和前面的下載圖標一樣。
第2個是一個文字a鏈接,樣式為灰色文字。
第3個也是一個文字a鏈接,注意邊框為圓角邊框,顏色為紅色。
第4個也是一個文字a鏈接,底色為紅色,邊框為圓角,里面包含一個i標簽和文字,其中i標簽也是一個羽毛筆的圖標文字。
修改css代碼如下:
修改html代碼如下:
刷新頁面:
可以看到,通過分析原始網頁的相關CSS樣式的值,然后模仿寫到自己的css文件里面,就能很方便的將網頁元素模仿編寫出同樣類似的效果。當然,模仿后和原來的不是百分之百一樣的,這很難做到,因為畢竟每個網頁的排版布局是不一樣的實現方式。只要掌握了這個方法,通過學習不同的網頁的實現方式,很快就能掌握如何編寫出自己的網站效果了。
接下來的實現過程,學哥就不再逐個元素的講解了,直接將修改好的代碼呈現給大家。
大家也可以先不要往下看學哥的實現結果,可以自己先嘗試將網頁剩余的元素全部編寫出來。
修改css代碼如下:
修改html代碼如下:
刷新頁面:
可以看到關于專題這部分已經都做好了。由于專題太多了,而且都是重復的樣式,這里就不做出所有的專題了,做出3個作為代表性的例子就足夠了。
現在可以調整下面一行的左右td的寬度了,將右側的td的寬度固定為218px,左側的td不固定寬度。
修改css代碼如下:
刷新頁面:
可以看到右側td的寬度變大了,左側的td的寬度變小了。
如果瀏覽器窗口拉大或者縮小會發生什么情況呢?
如果瀏覽器窗口放大的話,左側td的寬度也會自動變大,是由于將table的寬度設置為100%了。
一個table設置為100%,也就是根據瀏覽器寬度變化而變化,同時一個tr里面的td如果設置了絕對寬度則寬度就不跟隨瀏覽器變化而變化,如果td沒有設置寬度,則這些td會根據內容的比例進行分配寬度。
假如一行里面只有一個td沒有設置寬度,則剩余的寬度都會分配給這個td,那么瀏覽器寬度變化的話就只有這個td會改變寬度。
將瀏覽器窗口拉大一些,效果如下:
可以看到,右側的td的寬度不變,而左側的td的寬度變大了。
同時可以看到最上面一排按鈕,只有當中留白的那個td也變大了。其它按鈕的td并沒有變化。
這個設置table寬度自適應瀏覽器寬度的方法,是一個比較好的控制瀏覽器寬度變化的方法。大家在編寫網頁時候要考慮到瀏覽器寬度的因素。
修改css代碼如下:
修改html代碼如下:
刷新頁面:
可以看見第3行的左邊部分,關于文章的內容全部做好了。
主要是css代碼部分增加比較多。
首先將第3行的左右2個td的垂直方向都靠上對齊:
修改css代碼如下:
然后,修改右側的大圖標和作者排行內容。
修改css代碼如下:
修改html代碼如下:
刷新頁面:
可以看到,所有的頁面代表性元素全部樣式都做成了。
到這里,完成了模仿一個真實的網頁的全部工作,按照這種模式,可以模仿出各種各樣的網頁編碼。
接下來,要將代碼部署到本地服務器上。
然后通過安裝不同的瀏覽器軟件,例如IE瀏覽器,Chrome瀏覽器,Safari瀏覽器,Firefox瀏覽器進行不同瀏覽器的兼容性測試。
保證在不同的瀏覽器上看到的網頁效果大致都一樣,不要出現明顯的不協調或不美觀之處。
然后還要在不同的設備和操作系統上針對不同的瀏覽器做更大范圍的兼容性測試,這樣才能盡最大可能讓我們編寫的網頁程序能夠適應更多的計算機環境,呈現最好的效果。
前面通過15小節的內容,講解了如何編寫靜態內容網站,如何部署到本地服務器,如何運用瀏覽器調試工具來學習和模仿編寫網站,如何將網站程序部署到云服務器,如何購買一個域名并解析到云服務器,完整的通過2個實例演示了整個網站實現的過程。
下面來回顧一下每節課的內容,并說明重點以及自學是需要注意的地方。
第2.1節,主要是講解關于網站的技術原理和要做的大概內容。
第2.2節,主要講一個最最簡單的網頁代碼是什么樣子的,讓大家有一個最直觀的感受,從最簡單的開始,html標簽,head標簽,title標簽,body標簽,和使用文本編輯器。
第2.3節,從一個網站的設計開始,然后講解了br標簽,b標簽,設置網頁網頁的背景色,關于CSS樣式定義以及顏色定義。
第2.4節,開始學習最重要的一個div標簽,包括設置背景色,文字顏色,文字大小,尺寸單位,文字字體,文字斜體和加粗。
第2.5節,學習基本的CSS樣式之后,學習將CSS樣式和網頁內容進行分離,更方便開發。
第2.6節,網頁顯示中很重要的寬度,高度,內邊距,外邊距,邊框,可以將網頁元素修飾的更美觀大氣。
第2.7節,在學會使用div進行頁面排版布局之后,再學習使用table表格來對網頁進行排版,掌握td的用法,包括設置內邊距和字體,以及邊框。
第2.8節,學習對table表格進行td合并以及設置排版樣式,說明特定元素通過id設置樣式,以及說明元素標簽嵌套關系和順序關系。
第2.9節,學習設置背景圖片,以及img標簽顯示圖片的方法,以及一些HTML和CSS代碼注釋以及縮進的格式。
第2.10節,學習如何讓網頁進行遷移,包括文字鏈接和圖片鏈接,以及類似按鈕的鏈接。
第2.11節,網頁基本編寫完成之后,將網頁部署到本地一個Web服務器,通過局域網可以訪問。
第2.12節,將網站部署到云服務器上,這樣可以通過互聯網訪問網站頁面。
第2.13節,創建好域名之后,將域名解析到云服務器,這樣通過互聯網可以訪問域名就能看到網站頁面了。
第2.14節,學習分析一個已經存在的網站,并進行設計規劃,進行模仿編寫網頁。
第2.15節,一邊分析網頁,一邊開始模仿編寫網頁,一個元素一個元素的編寫,最終完整模仿整個網頁。
通過整個15節課程,一步一步實現2個代表性網站頁面,掌握如果使用HTML加CSS代碼來編寫實現靜態內容網站。
為將來實現動態內容網站打下一個堅實的基礎。
第2章的內容是很多互聯網編程技術的基礎。同樣的,第3章的內容也是互聯網編程技術的基礎。
第3章開始講解JavaScript編程技術,學習掌握如何通過代碼實現改變網頁顯示元素的技術。
第3章以實現一個連連看網頁游戲作為主線,穿插講解關于JavaScript技術的方方面面,讓大家在第3章結束之后,掌握好使用JavaScript技術進行交互式網頁開發的技能。
由于學哥的教程是系列教程,前后關聯極強,請大家查看歷史消息。
見HTML ! 用純Python就能寫一個漂亮的網頁
我們在寫一個網站或者一個網頁界面的時候,需要學習很多東西,對小白來說很困難!比如我要做一個簡單的網頁交互:
天啊,聽聽頭都大呢!其實我就給老板做一個簡單的交互的頁面,而且我只會Python ,有沒有很簡單的辦法可以做到呢。
今天小編在Github上逛的時候,找到一個非常酷的神器,名字叫remi ,目前收獲了2300個贊。
再見HTML ! 用純Python就能寫一個漂亮的網頁
star并不是很多,但是這個庫可是選入2018年的十大明星庫,號稱是一個獨立的GUI庫,而且最牛逼的就是這個庫竟然小于 100K,是否很神奇呢,我們一起來體驗看一下特性:
安裝
如何安裝呢,因為是Python 庫,直接用pip 即可
如果是沒有網絡的,或者服務器跟外網不通的,可以離線安裝。下載這個包,然后用install 安裝
快速體驗
我們來快速看一下,這個簡單的Hello world網頁。
再見HTML ! 用純Python就能寫一個漂亮的網頁
這里面包含了一個 2個元素:
點擊這個按鈕還會改變Hello world的文本內容,看點一下就變成了Button pressed.
再見HTML ! 用純Python就能寫一個漂亮的網頁
上面這個簡單的效果,其實只用了20來行Python代碼,都是原生的Python代碼,沒有用一行HTML .
我們來看一下源碼:
再見HTML ! 用純Python就能寫一個漂亮的網頁
整個的代碼的結構層次還很清晰的:
再見HTML ! 用純Python就能寫一個漂亮的網頁
更多復雜的網頁元素
看完上面的設計是不是就覺得跟Python里面大名鼎鼎的tk庫很相似啊,上面的只是開胃菜,這個remi還能提供更復雜的gui界面元素。
再見HTML ! 用純Python就能寫一個漂亮的網頁
上面的是一個完整的demo頁面,基本上常見的控件元素的都包含了,比如有菜單欄,文本,按鈕,單選框,進度欄,下拉框,表格,彈出框,按鈕選取文件路徑,文件樹形結構,日期等幾十種控件。
需要更多2020最新Python資料 私信小編“學習”即可獲取。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。