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
eb開發(fā)是一個(gè)很依賴經(jīng)驗(yàn)的領(lǐng)域,然而這對(duì)初學(xué)者很不友好。
知識(shí)一旦脫離了應(yīng)用場(chǎng)景就會(huì)變得晦澀、空洞,且知識(shí)本身也滿足“二八定律”,“抓大放小”是提高學(xué)習(xí)效率的關(guān)鍵。
下文向大家介紹了HTML和CSS之間的關(guān)系。內(nèi)容選自《HTML 5與CSS 3核心技法(全彩)》一書。本書主線清晰,講解簡(jiǎn)潔,并提供在線效果演示效果,非常適合小白上手!
1 HTML是骨架
很難想象一個(gè)人在桌前對(duì)著一塊砧板坐一夜,隔一會(huì)兒就噼里啪啦敲幾下,一會(huì)兒哭一會(huì)兒笑,是一種什么景象。事實(shí)上,在貓眼中我們就是這樣的。只不過我們面對(duì)的是一塊會(huì)發(fā)光的“砧板”而已。但為什么這塊“板子”如此吸引人?“上網(wǎng)”到底是在做什么?
獲取信息。
重點(diǎn)在“信息”,一種看不見摸不著卻真實(shí)存在的東西。無論“1 + 1 = 2”這段字符顯示得多么粗糙,都不會(huì)影響它傳遞了完整的信息,以及這條信息的內(nèi)在邏輯是正確的,不是嗎?HTML就是用來盛放最核心的內(nèi)容——信息。
所以,在CSS和JavaScript出現(xiàn)之前,HTML就出現(xiàn)了。這是必然的,因?yàn)槿绻B最核心的信息都無法有效傳遞,那圍繞著它的一切裝飾物和附屬品都是毫無意義的。
除滿足承載核心信息的需求外,HTML還解決了一個(gè)重要的問題——將信息結(jié)構(gòu)化。
試想有這樣一篇文章:
背影
我說道:“爸爸,你走吧。”他望車外看了看,說:“我買幾個(gè)橘子去。你就在此地,不要走動(dòng)。”我看那邊月臺(tái)的柵欄外有幾個(gè)賣東西的等著顧客。走到那邊月臺(tái),須穿過鐵道,須跳下去又爬上去。父親是一個(gè)胖子,走過去自然要費(fèi)事些。我本來要去的,他不肯,只好讓他去。我看見他戴著黑布小帽,穿著黑布大馬褂,深青布棉袍,蹣跚地走到鐵道邊,慢慢探身下去,尚不大難。可是他穿過鐵道,要爬上那邊月臺(tái),就不容易了。他用兩手攀著上面,兩腳再向上縮;他肥胖的身子向左微傾,顯出努力的樣子。
評(píng)論
王花花 大概,天底下的父親,老去的樣子都有些共同的特質(zhì)吧
李拴蛋 我們都不愿意承認(rèn)他老了
劉備備 想吃橘子...
此時(shí)上面的信息基本沒有結(jié)構(gòu),只能通過斷行或縮進(jìn)盡可能讓內(nèi)容更易讀,編輯時(shí)的狀態(tài)就是其最終的顯示效果。
HTML就派上了用場(chǎng),見下方的代碼:
代碼
<artcle>
<h1>背影</h1>
<p>
我說道:“爸爸,你走吧。”他望車外看了看,說:“我買幾個(gè)橘子去。你就在此地,不要走動(dòng)。”我看那邊月臺(tái)的柵欄外有幾個(gè)賣東西的等著顧客。走到那邊月臺(tái),須穿過鐵道,須跳下去又爬上去。父親是一個(gè)胖子,走過去自然要費(fèi)事些。我本來要去的,他不肯,只好讓他去。我看見他戴著黑布小帽,穿著黑布大馬褂,深青布棉袍,蹣跚地走到鐵道邊,慢慢探身下去,尚不大難。可是他穿過鐵道,要爬上那邊月臺(tái),就不容易了。他用兩手攀著上面,兩腳再向上縮;他肥胖的身子向左微傾,顯出努力的樣子。
</p>
</artcle>
<section id="comment-list">
<div class="title">評(píng)論</div>
<div class="comment">
<strong class="username">王花花</strong>
<span class="content">大概,天底下的父親,老去的樣子都有些共同的特質(zhì)吧</span>
</div>
<divclass="comment">
<strong class="username">李拴蛋</strong>
<span class="content">我們都不愿意承認(rèn)他老了</span>
</div>
<div class="comment">
<strong class="username">劉備備</strong>
<span class="content">想吃橘子...</span>
</div>
</section>
一頭霧水沒關(guān)系,后面我們會(huì)細(xì)說每一個(gè)部分。總之這段內(nèi)容給人感覺反而更繁瑣。但繁瑣是代價(jià),重要的是現(xiàn)在這段信息有結(jié)構(gòu)了。這就意味著計(jì)算機(jī)可以通過結(jié)構(gòu)的規(guī)律將其顯示得更便于閱讀(甚至是交互)。
以下是不加任何裝飾性內(nèi)容直接讓瀏覽器呈現(xiàn)的結(jié)果:
效果
這是純HTML在沒有引入任何裝飾時(shí)的顯示效果。很明顯,即便是這樣也比純文字狀態(tài)易讀了許多。但注意,HTML本身沒有樣式,字體大小和粗細(xì)有變化的原因是瀏覽器的默認(rèn)樣式起了作用,與HTML沒有關(guān)系。而重點(diǎn)就在這里,這意味著我們可以基于這個(gè)結(jié)構(gòu)設(shè)計(jì)自己的頁面效果,見下方的示例。
代碼
<style>
body { font-family: 'Microsoft YaHei', sans-serif; }
#comment-list { background: #f0f0f0; padding: 10px; border: 1px solid #ccc; margin-top: 25px; }
#comment-list .comment { margin-top: 10px; margin-bottom: 10px; }
#comment-list .title {
color: #777; font-size: 1.1rem; padding-bottom: 5px;
border-bottom: 1px solid #ccc;
}
</style>
<artcle>
<h1>背影</h1>
<p>
我說道:“爸爸,你走吧。”他望車外看了看,說:“我買幾個(gè)橘子去。你就在此地,不要走動(dòng)。”我看那邊月臺(tái)的柵欄外有幾個(gè)賣東西的等著顧客。走到那邊月臺(tái),須穿過鐵道,須跳下去又爬上去。父親是一個(gè)胖子,走過去自然要費(fèi)事些。我本來要去的,他不肯,只好讓他去。我看見他戴著黑布小帽,穿著黑布大馬褂,深青布棉袍,蹣跚地走到鐵道邊,慢慢探身下去,尚不大難。可是他穿過鐵道,要爬上那邊月臺(tái),就不容易了。他用兩手攀著上面,兩腳再向上縮;他肥胖的身子向左微傾,顯出努力的樣子。
</p>
</artcle>
<section id="comment-list">
<div class="title">評(píng)論</div>
<div class="comment">
<strong class="username">王花花</strong>
<span class="content">大概,天底下的父親,老去的樣子都有些共同的特質(zhì)吧</span>
</div>
<div class="comment">
<strong class="username">李拴蛋</strong>
<span class="content">我們都不愿意承認(rèn)他老了</span>
</div>
<div class="comment">
<strong class="username">劉備備</strong>
<span class="content">想吃橘子...</span>
</div>
</section>
效果
這里只是舉了一個(gè)小示例。你可以輕而易舉地讓頁面的風(fēng)格千變?nèi)f化,進(jìn)而讓用戶體驗(yàn)有所差異(或差距)。“千變?nèi)f化”因CSS靈活、強(qiáng)大,“輕而易舉”因HTML簡(jiǎn)潔、有序。結(jié)構(gòu)的力量!
CSS是皮膚
一個(gè)充滿活力的生態(tài)是不滿足于現(xiàn)狀的。人們?cè)谶m應(yīng)了便利地瀏覽核心信息之后,就會(huì)想方設(shè)法改進(jìn)瀏覽的體驗(yàn)。比如,讓自己的博客以多欄顯示,以便在視覺上區(qū)分不同板塊;修改字體顏色,以便強(qiáng)調(diào)一些重要信息等。
起初的做法是——準(zhǔn)備幾種特殊的標(biāo)簽,專門用于樣式的指定。涉及布局的地方,如果沒有特殊標(biāo)簽就直接用表格布局。以下沒有任何樣式的狀態(tài)(以下代碼均不需要看懂):
代碼
<h1>標(biāo)題</h1>
<p>
從前有座山,山里有個(gè)廟,廟里...
</p>
效果
此時(shí)的頁面結(jié)構(gòu)下。
如果想讓標(biāo)題居中,則需要給其添加元素<center>,見下方的示例。
代碼
<center>
<h1>標(biāo)題</h1>
</center>
<p>
從前有座山,山里有個(gè)廟,廟里...
</p>
效果
此時(shí)的頁面結(jié)構(gòu)如下。
居中標(biāo)題的目的確實(shí)達(dá)到了,但是有一個(gè)很大的問題:如果我改變主意了,不想讓其居中了,那么我還得再去將<center>元素去掉。這對(duì)于簡(jiǎn)單的頁面確實(shí)可行,但如果是復(fù)雜的頁面,這種做法的工作量就是噩夢(mèng),因?yàn)槊總€(gè)地方都得修改,無論是對(duì)齊方式、顏色、背景色,還是大的布局都必須通過修改結(jié)構(gòu)才能完成。這種做法的最大問題是可維護(hù)性太差,很多時(shí)候?yàn)榱艘环N樣式要修改很多不必要的結(jié)構(gòu),枯燥、重復(fù)、削足適履的工作太多,基本上寫一次就再也不想改了。
這個(gè)問題亟待解決,而且解決方案還要兼容現(xiàn)有規(guī)則。現(xiàn)有規(guī)則是什么?HTML的語法及結(jié)構(gòu)。不過既然HTML已經(jīng)有結(jié)構(gòu)了,為什么不好好利用呢?
以前面示例中的文章頁面為例,如果我們想更改標(biāo)題,是否可以先統(tǒng)一選中所有標(biāo)題,然后說明想要什么樣式規(guī)則呢?就像下面這樣:
所有h1 元素聽著
對(duì)齊方式 居中。
字體顏色 黑色。
如果想將所有段落字體放大,則像下面這樣:
所有p 元素聽著
字體大小 150%。
這種方式的確很高效!同時(shí)這個(gè)規(guī)則與HTML語法無關(guān),相當(dāng)于另一種語言。這樣結(jié)構(gòu)和樣式就不會(huì)互相影響,結(jié)構(gòu)是結(jié)構(gòu),樣式是樣式,兩者隔離開了。如果想修改樣式,則完全不需要?jiǎng)贖TML大駕,只需要修改樣式文件即可,更便于管理和維護(hù)。這就是CSS,只不過其語法更簡(jiǎn)潔。
下面以修改標(biāo)題對(duì)齊方式為例:
h1 { /* 所有h1 元素聽著 */
text-align: center; /* 對(duì)齊方式 居中 */
}
通過批量選擇和處理,極大地提高了開發(fā)效率,降低了維護(hù)成本,四兩撥千斤。
(完)
圖書推薦
《HTML 5與CSS 3核心技法(全彩)》
表嚴(yán)肅 著
本書能夠為自學(xué)Web開發(fā)初學(xué)者建立一套HTML與CSS的核心知識(shí)框架,同時(shí)借助豐富的示例讓初學(xué)者有一個(gè)愉悅、輕松的學(xué)習(xí)過程。
想從事前端開發(fā)的,可將本書作為學(xué)習(xí)的起點(diǎn)。正從事前端開發(fā)的,可將本書作為速查的手冊(cè)。
?不會(huì)寫代碼又需要HTML文件怎么呢?會(huì)編輯Word文檔就可以,因?yàn)閃ord文檔能直接轉(zhuǎn)換為HTML文件,當(dāng)然還是需要借助轉(zhuǎn)換工具,PDF轉(zhuǎn)換器就可以實(shí)現(xiàn)Word轉(zhuǎn)HTML。下面,就給大家詳細(xì)介紹下如何用迅捷PDF轉(zhuǎn)換器實(shí)現(xiàn)Word轉(zhuǎn)HTML。具體操作步驟都準(zhǔn)備好了,一起來看一下吧。
??第一步,雙擊打開迅捷PDF轉(zhuǎn)換器,在主頁的左側(cè)選擇轉(zhuǎn)換格式,展開【PDF轉(zhuǎn)換成其他文件】選項(xiàng),然后選擇【文件轉(zhuǎn)HTML】。?
??第二步,點(diǎn)擊頁面上方的【添加文件】可以把單個(gè)的文件加進(jìn)來進(jìn)行轉(zhuǎn)換,也可以點(diǎn)擊【添加文件夾】按鈕,批量添加Word文檔進(jìn)行批量轉(zhuǎn)換。?
??第三步,點(diǎn)擊右上角的【開始轉(zhuǎn)換】就完成Word轉(zhuǎn)HTML了,如果想要更換文件存儲(chǔ)位置,可以勾選【自定義】按鈕,,然后選擇新的存儲(chǔ)位置即可。?
??就這么簡(jiǎn)單的三步就可以實(shí)現(xiàn)Word轉(zhuǎn)HTML,你學(xué)會(huì)了吧。快來本站下載迅捷PDF轉(zhuǎn)換器解鎖更多文件轉(zhuǎn)換功能,雄雌文件格式轉(zhuǎn)換不求人,本站提供迅捷PDF轉(zhuǎn)換器最新版免費(fèi)下載。
近臨近開學(xué)了,大家都在忙著準(zhǔn)備各種學(xué)習(xí)的資料,準(zhǔn)備在新的學(xué)期好好學(xué)習(xí),充實(shí)自己。小編身邊的同學(xué)也是如此,最近,小編的同學(xué)小麗就遇到了一個(gè)很棘手的問題。
她想將一個(gè)網(wǎng)頁的Python學(xué)習(xí)的教程打印下來,方便自己來學(xué)習(xí),但是上千頁的教程,如果通過手動(dòng)的方式,一個(gè)一個(gè)的去轉(zhuǎn)成pdf并保存到本地,實(shí)在是麻煩的不。
這就是一個(gè)html轉(zhuǎn)pdf的問題,其實(shí)網(wǎng)上有很多不錯(cuò)的html資源,但是苦于學(xué)習(xí)起來,不方便!于是小編就跟小麗保證,這點(diǎn)小事包在我身上。今天,小編就跟分享一下如何用Python把html資料變成pdf。
如今網(wǎng)上的在線學(xué)習(xí)資料可謂是多如牛毛,為了方便講解,小編就利用python3.9.2的中文文檔作為演示的例子,來將其抓取并保存到本地,其網(wǎng)頁鏈接如下:
https://docs.python.org/zh-cn/3.9/tutorial/index.html
打開上述鏈接后,大家會(huì)在網(wǎng)頁中找到不同內(nèi)容的鏈接地址,包括了基礎(chǔ)的python字符、python語法等內(nèi)容。
在上圖中,我們需要格外關(guān)注的是紅色方格標(biāo)注的鏈接,每個(gè)鏈接都會(huì)跳轉(zhuǎn)到對(duì)應(yīng)的子網(wǎng)頁中,而在子網(wǎng)頁中,就是我們想要保存的內(nèi)容。
可以看到,上圖中,在python速覽子頁面中,包含了我們需要提取的文字內(nèi)容。所以將html內(nèi)容保存為pdf的第一步便是獲取到子頁面的鏈接。由于教程大都是固定內(nèi)容,因此對(duì)于教程的網(wǎng)頁,大都采用的是靜態(tài)頁面,在網(wǎng)頁源代碼中可以很輕松地找到子頁面的網(wǎng)頁鏈接。
對(duì)于子網(wǎng)頁的鏈接抓取,程序如下圖所示:
程序中,通過BeautifulSoup庫來解析網(wǎng)頁源代碼,然后提取所有的子頁面鏈接地址并返回,如果抓取失敗,則直接返回None。
03.html轉(zhuǎn)pdf
在得到子網(wǎng)頁的鏈接后,接下來就是將html的子網(wǎng)頁保存為pdf文件。小編使用的pdfkit庫,pdfkit庫可以將網(wǎng)頁保存為pdf文檔。首先小編來介紹一下pdfkit庫的安裝。
按照上述的操作流程,就可以安裝pdfkit庫。對(duì)于pdfkit庫的使用,常見的用法有以下三種:
上面的程序主要完成以下幾步:
首先需要指定wkhtmltopdf.exe文件的路徑;
因此,pdfkit庫只能將子網(wǎng)頁保存為單獨(dú)的pdf文檔,無法直接通過pdfkit庫將所有的子網(wǎng)頁拼接成一個(gè)完整的pdf文檔,小編通過PyPDF2庫中的PdfFileMerger類來實(shí)現(xiàn)pdf文檔的拼接。程序如下圖所示。
程序中首先將所有的html網(wǎng)頁保存為單獨(dú)的pdf文檔,然后通過PdfFileMerger類對(duì)象來實(shí)現(xiàn)pdf文檔的拼接。最后就可以得到全部的pdf內(nèi)容。最后我們通過視頻的展示,來看一下程序的效果吧。
除此之外,程序不光可以抓取python3.9的中文文檔,針對(duì)其他的在線文檔,只需要對(duì)獲取網(wǎng)頁鏈接的程序進(jìn)行修改即可抓取,例如對(duì)于Flask中文文檔的抓取,程序只需要按照下圖進(jìn)行修改,即可將Flask的在線文檔保存為PDF文檔。
學(xué)習(xí)Python其實(shí)非常有趣,也很有用。因?yàn)镻ython有大量的現(xiàn)成的庫,可以幫助我們把工作中的很多瑣碎的煩事輕松解決。小編將上述的程序稍加修改,很快就幫阿麗搞定了教程,保存為pdf發(fā)送給了她,小編與女神的關(guān)系更拉近了一步
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。