Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
果想開發(fā)一個網(wǎng)站,除了要精通后端開發(fā)語言(如:php)外,還要精通HTML代碼。那么,什么是HTML呢?HTML是一種超文本標(biāo)記語言,它包含有眾多的標(biāo)簽,我們可以通過這些標(biāo)簽,把不同的internet資源(如:文字、圖片、視頻、音頻、表單等等)整合在一個統(tǒng)一的文檔中,這就形成了我們可以看得見的網(wǎng)頁。那么,HTML都有哪些常用的標(biāo)簽?zāi)兀?/p>
html5文檔類型聲明:<!doctype html>
html4文檔類型聲明:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
這個標(biāo)簽是html最外層的標(biāo)簽,所有其它的HTML標(biāo)簽都要放在這個標(biāo)簽的內(nèi)部。
<html>
<head></head>
<body></body>
</html>
在HTML標(biāo)簽中,有的標(biāo)簽是成雙成對的,如:<html></html>(如下圖);而有的標(biāo)簽是單個的,如:<hr>橫線標(biāo)簽。
head頭部有以下幾種常用標(biāo)簽:
meta:主要提供有關(guān)頁面的元信息。
link:用來定義文檔與外部資源的關(guān)系,最常用的是調(diào)用CSS樣式文件。
title:頁面標(biāo)題的標(biāo)簽。
script:用來調(diào)用JS文件或JS代碼。當(dāng)然,script標(biāo)簽也可以在body主體中使用。
1、塊級標(biāo)簽。
塊級標(biāo)簽的特性是:獨自占有一行;標(biāo)簽的高與寬、邊距可以修改;沒有設(shè)置寬與高時,默認(rèn)繼承父標(biāo)簽。例如:
<div>div1</div>
<div>div2</div>
<style>
.aa1{ border:1px solid #000; width:150px; height:100px; margin:30px; }
.aa2{ border:1px solid #000; width:150px; height:100px; margin:30px; }
</style>
前端頁面顯示的效果如下圖:
常用的塊級標(biāo)簽有:div、h1、h2、h3、h4、h5、h6、hr、menu、ul、ol、li、dl、dt、dd、table、p、form 。
2、內(nèi)聯(lián)標(biāo)簽。
內(nèi)聯(lián)標(biāo)簽與塊級標(biāo)簽不同,它不能獨自占有一行,會與其它內(nèi)聯(lián)標(biāo)簽在同一樣展示;內(nèi)聯(lián)標(biāo)簽的高與寬、上下邊距是不能修改的,它里面的文字或圖片有多高,它就是多高。例如如下代碼:
<style>
.aa1{ border:1px solid #000; width:150px; height:100px; margin:30px; }
.aa2{ border:1px solid #000; width:150px; height:100px; margin:30px; }
</style>
<span>span1</span>
<span>span2</span>
CSS樣式代碼跟塊級標(biāo)簽的例子是一樣的,而顯示的效果就不一樣了,寬與高、上下邊距沒有效果。如下圖:
常用的內(nèi)聯(lián)標(biāo)簽有:span、a、b、strong、i、em 。
3、內(nèi)聯(lián)塊級標(biāo)簽。
內(nèi)聯(lián)塊級標(biāo)簽,既有一些內(nèi)聯(lián)標(biāo)簽的特性,也有一些塊級標(biāo)簽的特點:它不能獨自占有一行,但是可以修改它的寬度和高度。例如下面這段代碼:
<style>
.aa1{ border:1px solid #000; width:150px; height:100px; margin:30px; }
.aa2{ border:1px solid #000; width:150px; height:100px; margin:30px; }
</style>
<img src="w5.jpg" alt="">
<img src="w5.jpg" alt="">
CSS樣式代碼跟塊級標(biāo)簽的那個例子仍然是一樣的,圖片的寬和高、上下邊距修改成功,而2個圖片不能獨自占有一行,而是在同一行。如下圖:
常用的內(nèi)聯(lián)塊級標(biāo)簽有:img、input、textarea。
4、區(qū)域標(biāo)簽。
所謂區(qū)域標(biāo)簽,就是主要用來劃分布局頁面區(qū)域的。如:頭部、主體內(nèi)容、側(cè)邊欄、底部。這樣劃分的好處是:讓頁面布局更加清晰明了。
常用的區(qū)域標(biāo)簽有:header(頭部)、footer(底部)、nav(導(dǎo)航)、aside(側(cè)邊欄)、section(主體)、article(獨立內(nèi)容)。
5、表單標(biāo)簽。
這個表單標(biāo)簽我們也是會經(jīng)常用到的,如:登錄網(wǎng)站的時候、提交數(shù)據(jù)的時候。如下圖的評論表單:
?表單常用的標(biāo)簽有:form、input、select、option、textarea 。
以上就是我們開發(fā)網(wǎng)頁時,會常用到的HTML標(biāo)簽。當(dāng)然,HTML標(biāo)簽遠(yuǎn)不止這些,尤其是html5出來后,新增了許多的新標(biāo)簽。但是,有些標(biāo)簽在我們開發(fā)中很少用到,所以,這里就沒有做相應(yīng)的介紹。
注程序員耳東,編程轉(zhuǎn)碼真輕松
對于CSS中設(shè)置長度寬度等等尺寸的時候,初學(xué)者肯定見過最多的是px,但是隨著學(xué)習(xí)的深入你會發(fā)現(xiàn)還有em、rem、vh、vw等等很多單位,是不是開始慌了⊙﹏⊙
這篇筆記就聊聊CSS中的單位,歡迎大家學(xué)習(xí)和自查
在設(shè)置尺寸的時候,這些CSS單位可以大體分為兩類
一類是絕對單位,比如像px這種,你設(shè)置了多少就是多少,它就是以像素來做展示
另一類是相對單位,比如像em這種,你設(shè)置了CSS屬性之后,它會根據(jù)某個值去做計算才會得出來最后的結(jié)果,所以它是個相對的概念
所謂絕對單位,就是你設(shè)置了這個尺寸,它就一直是多少,它在同一個屏幕上就展示那么多像素,不會受到屏幕大小和字體大小的影響,它只和屏幕的分辨率相關(guān)
px這個單位可能是最常見的,也是新手用的最多的,這個單位的意思很直白:
1px=1邏輯像素
什么是邏輯像素呢?
首先說什么是物理像素,物理像素就是顯示屏幕上的1個像素點,比如說320480的屏幕,物理像素的個數(shù)就是320480個
那么什么是邏輯像素呢?就是早期的時候,1個邏輯像素就等于1個物理像素,但是后來某些廠商為了讓顯示屏幕更加的清晰,就在單位面積上增加更多的物理像素而且屏幕的尺寸不變,也就是說原來1個物理像素的位置可能要放2個物理像素了,但如果這樣的話,如果一個寬度是320px的網(wǎng)頁,在分辨率是320480的屏幕上可以占滿寬度,在分辨率是640960的屏幕上就只能占一半的寬度了
這顯然是不合理的,所以我們引入了邏輯像素的概念,在真正渲染的時候,會把邏輯像素和物理像素做一個轉(zhuǎn)換,我們平時在CSS里面寫的就是邏輯像素
pt(Point),平時用的很少,它的意識就是點(磅)
pt是排版印刷行業(yè)字體的常用單位,它是一個真實的物理長度單位,表示72分之一英寸
#### pc
pc 全程為 Picas,表示派卡。
它相當(dāng)于我國新四號鉛字的尺寸,它也是印刷的術(shù)語。它和 px 的換算關(guān)系如下: 1pc = 16px
cm 其實就是 Centimeters(厘米)
它和 px 的換算關(guān)系如下: 1cm = 37.8px
mm顧名思義就是毫米
1mm = 3.78px
in其實就是英寸(inches)的縮寫
1in = 96px
em和rem是相對于字號來計算尺寸的單位
先說em,它是相對于父元素的字體來做計算的,但如果當(dāng)前元素自身就設(shè)置了字體大小,那就根據(jù)自身的字體來做計算,比如說下面這段代碼:
px-box這個元素的寬高設(shè)置的是1em,同時又設(shè)置了font-size是20px,那么寬高計算出來就是1*20=20px
如果你不給它的父元素設(shè)置字體大小,它會一直往上找,如果找不到字體大小,那就按瀏覽器默認(rèn)的字體大小16px來算
然后再說rem,rem和em相比就是多了一個r,這個r的意思就是root(根元素)的意思,所謂根元素就是html元素
也就是說,以rem作為單位的屬性,會去找html元素上面設(shè)置的字體大小,然后根據(jù)html元素font-size的值計算出最終的rem結(jié)果
如果沒有給html設(shè)置font-size屬性,那么就按瀏覽器的默認(rèn)font-size來做計算
這幾個單位就是相對于視窗的單位,也是非常實用的
這里說的視窗指的是可視區(qū)域,視窗的尺寸發(fā)生變化時,這幾個單位的值也會相對發(fā)生變化
這兩個單位我沒使用過,我摘一段描述放在這里供大家參考:
ex 和 ch 都是排版用的單位,它們的大小取決于元素的font-size 和 font-family屬性
ex 指的是所用字體中小寫字母 x 的高度。因此,如果兩個字體不一樣,那么 ex 的值是不一樣的。因為每種字體的小寫 x 的高度是不一樣的
ch 和 ex 類似,不過它是基于數(shù)字 0 的寬度計算的。會隨著字體的變化而變化。而0 的寬度通常是對字體的平均字符寬度,它是一個估計值。由于 ch 是一個近似等寬的單元,所以在設(shè)置容器的寬度時很有用,比如一個容器想要顯示指定個數(shù)的字符串時,就可以使用這個單位
涉移動端設(shè)計和開發(fā)的同學(xué)們,基本都會在尺寸問題上糾結(jié)好一陣子才能摸到頭緒。我也花了很長時間才弄明白,感覺有必要寫一篇足夠通俗易懂的教程來幫助大家。從原理說起,理清關(guān)于尺寸的所有細(xì)節(jié)。由于是寫給初學(xué)者的,所以不要嫌我啰嗦。
現(xiàn)象
首先說現(xiàn)象,大家都知道移動端設(shè)備屏幕尺寸非常多,碎片化嚴(yán)重。尤其是Android,你會聽到很多種分辨率:480x800, 480x854, 540x960, 720x1280, 1080x1920,而且還有傳說中的2K屏。近年來iPhone的碎片化也加劇了:640x960, 640x1136, 750x1334, 1242x2208。
不要被這些尺寸嚇倒。實際上大部分的app和移動端網(wǎng)頁,在各種尺寸的屏幕上都能正常顯示。說明尺寸的問題一定有解決方法,而且有規(guī)律可循。
像素密度
要知道,屏幕是由很多像素點組成的。之前提到那么多種分辨率,都是手機屏幕的實際像素尺寸。比如480x800的屏幕,就是由800行、480列的像素點組成的。每個點發(fā)出不同顏色的光,構(gòu)成我們所看到的畫面。而手機屏幕的物理尺寸,和像素尺寸是不成比例的。最典型的例子,iPhone 3gs的屏幕像素是320x480,iPhone 4s的屏幕像素是640x960。剛好兩倍,然而兩款手機都是3.5英寸的。
所以,我們要引入最重要的一個概念:像素密度,也就是PPI(pixels per inch)。這項指標(biāo)是連接數(shù)字世界與物理世界的橋梁。
Pixels per inch,準(zhǔn)確的說是每英寸的長度上排列的像素點數(shù)量。1英寸是一個固定長度,等于2.54厘米,大約是食指最末端那根指節(jié)的長度。像素密度越高,代表屏幕顯示效果越精細(xì)。Retina屏比普通屏清晰很多,就是因為它的像素密度翻了一倍。
倍率與邏輯像素
再用iPhone 3gs和4s來舉例。假設(shè)有個郵件列表界面,我們不妨按照PC端網(wǎng)頁設(shè)計的思維來想象。3gs上大概只能顯示4-5行,4s就能顯示9-10行,而且每行會變得特別寬。但兩款手機其實是一樣大的。如果照這種方式顯示,3gs上剛剛好的效果,在4s上就會小到根本看不清字。
在現(xiàn)實中,這兩者效果卻是一樣的。這是因為Retina屏幕把2x2個像素當(dāng)1個像素使用。比如原本44像素高的頂部導(dǎo)航欄,在Retina屏上用了88個像素的高度來顯示。導(dǎo)致界面元素都變成2倍大小,反而和3gs效果一樣了。畫質(zhì)卻更清晰。
注:相關(guān)網(wǎng)站建設(shè)技巧閱讀請移步到建站教程頻道。
在以前,iOS應(yīng)用的資源圖片中,同一張圖通常有兩個尺寸。你會看到文件名有的帶@2x字樣,有的不帶。其中不帶@2x的用在普通屏上,帶@2x的用在Retina屏上。只要圖片準(zhǔn)備好,iOS會自己判斷用哪張,Android道理也一樣。
由此可以看出,蘋果以普通屏為基準(zhǔn),給Retina屏定義了一個2倍的倍率(iPhone 6plus除外,它達(dá)到了3倍)。實際像素除以倍率,就得到邏輯像素尺寸。只要兩個屏幕邏輯像素相同,它們的顯示效果就是相同的。
Android的解決方法類似,但更復(fù)雜一些。因為Android屏幕尺寸實在太多,分辨率高低跨度非常大,不像蘋果只有那么幾款固定設(shè)備、固定尺寸。所以Android把各種設(shè)備的像素密度劃成了好幾個范圍區(qū)間,給不同范圍的設(shè)備定義了不同的倍率,來保證顯示效果相近。像素密度概念雖然重要,但用不著我們自己算,iOS與Android都幫我們算好了。
如圖所示,像素密度在120左右的屏幕歸為ldpi,160左右的歸為mdpi,以此類推。這樣,所有的Android屏幕都找到了自己的位置,并賦予了相應(yīng)的倍率:
- ldpi [0.75倍]
- mdpi [1倍]
- hdpi [1.5倍]
- xhdpi [2倍]
- xxhdpi [3倍]
- xxxhdpi [4倍]
各型號iPhone的倍率比較簡單,我們后面會講到。那么Android手機那么多,具體怎么分?哪些手機是幾倍的倍率呢?我們先看一張表,這是友盟2014年10月到2015年03月的數(shù)據(jù):
就目前市場狀況而言,各種手機的分辨率可以這樣粗略判斷。雖然不全面,但至少在1年內(nèi)都還有一定的參考意義:
- ldpi 如今已絕跡,不用考慮
- mdpi [320x480](市場份額不足5%,新手機不會有這種倍率,屏幕通常都特別小)
- hdpi [480x800、480x854、540x960](早年的低端機,屏幕在3.5英寸檔位;如今的低端機,屏幕在4.7-5.0英寸檔位)
- xhdpi [720x1280](早年的中端機,屏幕在4.7-5.0英寸檔位;如今的中低端機,屏幕在5.0-5.5英寸檔位)
- xxhdpi [1080x1920](早年的高端機,如今的中高端機,屏幕通常都在5.0英寸以上)
- xxxhdpi [1440x2560](極少數(shù)2K屏手機,比如Google Nexus 6)
自然地,以1倍的mdpi作為基準(zhǔn)。像素密度更高或者更低的設(shè)備,只需乘以相應(yīng)的倍率,就能得到與基準(zhǔn)倍率近似的顯示效果。
不過需要注意的是,Android設(shè)備的邏輯像素尺寸并不統(tǒng)一。比如兩種常見的屏幕480x800和1080x1920,它們分別屬于hdpi和xxhdpi。除以各自倍率1.5倍和3倍,得到邏輯像素為320x533和360x640。很顯然,后者更寬更高,能顯示更多內(nèi)容。所以,即使有倍率的存在,各種Android設(shè)備的顯示效果仍然無法做到完全一致。
單位
不難發(fā)現(xiàn),真正決定顯示效果的,是邏輯像素尺寸。為此,iOS和Android平臺都定義了各自的邏輯像素單位。iOS的尺寸單位為pt,Android的尺寸單位為dp。說實話,兩者其實是一回事。
單位之間的換算關(guān)系隨倍率變化:
- 1倍:1pt=1dp=1px(mdpi、iPhone 3gs)
- 1.5倍:1pt=1dp=1.5px(hdpi)
- 2倍:1pt=1dp=2px(xhdpi、iPhone 4s/5/6)
- 3倍:1pt=1dp=3px(xxhdpi、iPhone 6)
- 4倍:1pt=1dp=4px(xxxhdpi)
單位決定了我們的思考方式。在設(shè)計和開發(fā)過程中,應(yīng)該盡量使用邏輯像素尺寸來思考界面。設(shè)計Android應(yīng)用時,有的設(shè)計師喜歡把畫布設(shè)為1080x1920,有的喜歡設(shè)成720x1280。給出的界面元素尺寸就不統(tǒng)一了。Android的最小點擊區(qū)域尺寸是48x48dp,這就意味著在xhdpi的設(shè)備上,按鈕尺寸至少是96x96px。而在xxhdpi設(shè)備上,則是144x144px。
無論畫布設(shè)成多大,我們設(shè)計的是基準(zhǔn)倍率的界面樣式,而且開發(fā)人員需要的單位都是邏輯像素。所以為了保證準(zhǔn)確高效的溝通,雙方都需要以邏輯像素尺寸來描述和理解界面,無論是在標(biāo)注圖還是在日常溝通中。不要再說“底部標(biāo)簽欄的高度是96像素,我是按照xhdpi做的”這樣的話了。
Web怎么辦
移動端頁面的絕對單位仍然是px,至少代碼里這么寫,但它的道理也和app一樣。由于像素密度是設(shè)備本身的固有屬性,它會影響到設(shè)備中的所有應(yīng)用,包括瀏覽器。前端技術(shù)可以善加利用設(shè)備的像素密度,只需一行代碼,瀏覽器便會使用app的顯示方式來渲染頁面。根據(jù)像素密度,按相應(yīng)倍率縮放。
可以通過這個測試頁面 http://greenzorro.github.io/demo/basic/響應(yīng)式斷點.html 來看看你的移動設(shè)備屏幕寬度,這是邏輯像素寬度。
以iPhone 5s為例,屏幕的分辨率是640x1136,倍率是2。瀏覽器會認(rèn)為屏幕的分辨率是320x568,仍然是基準(zhǔn)倍率的尺寸。所以在制作頁面時,只需要按照基準(zhǔn)倍率來就行了。無論什么樣的屏幕,倍率是多少,都按邏輯像素尺寸來設(shè)計和開發(fā)頁面。只不過在準(zhǔn)備資源圖的時候,需要準(zhǔn)備2倍大小的圖,通過代碼把它縮成1倍大小顯示,才能保證清晰。
實際應(yīng)用
大家最關(guān)心的還是實際運用,畫布該怎么設(shè)置。我們就iOS、Android、Web三個平臺來分別梳理一下。不過在這之前,我要為使用PS進(jìn)行設(shè)計的朋友介紹一個小技巧。
之前我說過,我們要以邏輯像素尺寸來思考界面。體現(xiàn)到設(shè)計過程中,就是要把單位設(shè)置成邏輯像素。打開PS的首選項——單位與標(biāo)尺界面,把尺寸和文字單位都改成點(Point)。這里的點也就是pt,無論設(shè)計iOS、Android還是Web應(yīng)用,單位都用它。當(dāng)然,各平臺單位名稱還是要記住的。這里我們用的只是它的原理,不用在意名稱。
要調(diào)節(jié)倍率,則通過圖像大小里的DPI來控制。這個DPI,其實就是PPI,像素密度。有個常識大家都知道,屏幕上的設(shè)計DPI設(shè)成72,印刷品設(shè)計DPI設(shè)成300。為什么是這兩個數(shù)字?
首先說300,這和人眼的分辨能力有關(guān)。由于1英寸是固定長度,每1英寸有多少個像素點決定了畫質(zhì)清晰程度。之前說過,這就是像素密度,也就是DPI。DPI達(dá)到300以上,其細(xì)膩程度就會給人真實感,像真實世界中的物件。相反,DPI只有10的話,在你一個食指指節(jié)大小的長度內(nèi)只有10個像素,這明顯就是馬賽克了。所以印刷品要設(shè)成300,才能保證清晰。
再說72,這有一定的歷史原因。最早的圖形設(shè)計是在mac電腦上進(jìn)行的,mac本身的顯示器分辨率就是72。PS中把圖像DPI也設(shè)成72,就能保證屏幕上顯示的尺寸和打印尺寸相同,便于設(shè)計。72的PC顯示器分辨率逐漸成為一種默認(rèn)的行業(yè)標(biāo)準(zhǔn),這套規(guī)則就這么沿用下來。
現(xiàn)在回到正題,我們怎么通過DPI來調(diào)節(jié)倍率?既然屏幕本身的分辨率是72,DPI設(shè)成72剛好是1倍尺寸,那設(shè)成72的兩倍就是倍率為2的屏幕了,就這么簡單。
下面來看看3個平臺各自的畫布設(shè)置:
iPhone
iPhone的屏幕尺寸各不相同,我說的是邏輯像素尺寸,這確實是讓人很頭疼的事情。如果想用一套設(shè)計涵蓋所有iPhone,就要選擇邏輯像素折中的機型。
從市場占有率數(shù)據(jù)來看,目前最多的是iPhone5/5s的屏幕。倍率為2,邏輯像素320x568。上升勢頭最猛,未來有望登上第一的是iPhone 6的屏幕。倍率為2,邏輯像素375x667。
按照這兩種尺寸來設(shè)計,都是比較主流的做法。可以兼顧短一些的iPhone 4s,大一點的6 plus也不會過于空曠。
不過在切圖的時候要注意,由于iPhone 6 plus的3倍圖是由2倍圖放大而來,所以位圖要注意保證清晰。
Android
都說Android碎片化嚴(yán)重,但它現(xiàn)在反而比iOS好處理。因為如今的Android屏幕邏輯像素已經(jīng)趨于統(tǒng)一了:360x640,就看你設(shè)成幾倍了。想以xhdpi為準(zhǔn),就把DPI設(shè)成72x2=144。想以xxhdpi為準(zhǔn),就把DPI設(shè)成72x3=216。
對于那些比較老的低端機,寬度是480px的那批,畫面確實會小一些,顯示內(nèi)容會更少。稍微留意一下,重要內(nèi)容盡量保持在界面中上部分。
當(dāng)然,這些機型不出一年就會被邊緣化,基本淘汰。現(xiàn)在能運轉(zhuǎn)的也是當(dāng)作功能機在用,軟件多了必卡無疑,用戶體驗無從談起。不作考慮也是OK的。
Web
手機端網(wǎng)頁就沒有統(tǒng)一標(biāo)準(zhǔn)了,比較流行的做法是按照iPhone 5的尺寸來設(shè)計。倍率2,邏輯像素320x568。
這樣的做法比較實在,倍率2的屏幕無論在iOS還是Android方面都是主流,而且又是2倍屏幕中邏輯像素最小的。所以圖片的尺寸可以保持在較小的水平,頁面加載速度快。當(dāng)然,缺點就是在倍率3的設(shè)備上看,圖片不是特別清晰。
如果追求圖片質(zhì)量,愿意犧牲加載速度,那么可以按照最大的屏幕來設(shè)計。也就是iPhone 6 plus的尺寸,倍率3,邏輯像素414x736。
總結(jié)
移動端的尺寸比PC端復(fù)雜,關(guān)鍵就在倍率。但也正因為倍率的存在,把大大小小的屏幕拉回到同一水平線,得以保證一套設(shè)計適應(yīng)各種屏幕。站在這條水平線的角度看,會發(fā)現(xiàn)它很好理解。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。