載說明:原創(chuàng)不易,未經(jīng)授權,謝絕任何形式的轉載
層疊樣式表(CSS)是一種強大的樣式表語言,可以幫助前端開發(fā)人員為簡單的網(wǎng)頁添加樣式。然而,在使用這種樣式表語言時,開發(fā)人員可能會犯一些錯誤。這些錯誤會妨礙開發(fā)人員編寫高效的代碼。本文探討了一些常見的錯誤,并為每個錯誤提供了解決方案。
以下是我們開發(fā)人員經(jīng)常犯的九個最常見的錯誤;你也犯過其中一些嗎?
!important 是 CSS 中的一個關鍵字,它可以幫助我們將屬性值設置為比其他樣式選項更重要。例如,如果您將 !important 聲明應用于元素樣式,那么該樣式將覆蓋該屬性類別的所有其他樣式。以下是語法:
selector {
property: value !important;
}
例如,如果您有一個標題元素 - h1 ,就像這樣:
<h1 class="css-mistake">CSS Mistakes</h1>
然后您應用以下樣式規(guī)則:
h1 {
color: red;
}
.css-mistake {
color: green;
}
默認情況下,標題文本的顏色將為“綠色”,因為類選擇器具有比元素(標簽)選擇器更高的CSS特異性選擇器。但是使用 !important ,您可以覆蓋該樣式CSS規(guī)則(從而使元素(標簽)選擇器覆蓋類選擇器)。通過這種方式,標題文本的顏色將為紅色,優(yōu)先于類選擇器設置的綠色。
h1 {
color: red !important;
}
過度使用 !important 會導致特異性戰(zhàn)爭-一種狀態(tài),其中樣式開始互相覆蓋,無法按照樣式表的作者定義的方式工作。下一節(jié)將通過列舉適當使用 !important 的實例來提供解決此問題的方法。
什么時候應該使用?
就像本節(jié)標題所說的那樣——“過度使用 !important ”,我們在使用這個關鍵詞時必須小心謹慎。只有在迫切需要時才應該節(jié)制地使用 !important 。以下是一些使用它的情況:
在進行樣式設計時,使用正確的長度單位對于創(chuàng)建響應式設計至關重要。CSS有兩類長度單位:絕對單位和相對單位。許多CSS屬性,如“寬度”、“高度”、“字體大小”等,都使用單位來表示其值。下面的代碼片段給出了單位的使用示例:
selector {
font-size: 14px;
}
在上面的代碼片段中,我們聲明了“font-size”CSS屬性,然后給它賦了一個14px的值。
什么是絕對單位?
這些是長度單位,無論渲染媒體如何,都具有固定的值,與設備的屏幕尺寸無關。這些單位非常適合在不同屏幕尺寸上保持元素的相同大小。你可能已經(jīng)使用過一些標準的絕對單位,如像素 - px, 點 - pt, 英寸 - in, 毫米 - mm, 厘米 - cm, 和派卡 - pc. 絕對單位為我們提供了準確、固定和精確的樣式值,但它們不會根據(jù)屏幕尺寸進行縮放。絕對單位不適用于實現(xiàn)響應式設計。因此,將它們限制在不需要根據(jù)瀏覽器尺寸或設備屏幕尺寸進行調整的元素上。另一方面,相對單位如其名稱所示,是相對于另一個屬性(大多數(shù)情況下是父元素)的。這些單位具有靈活性,可以根據(jù)視口動態(tài)增長,適應響應式設計,與絕對單位不同。一些相對單位的例子是百分比(%)- rem, em, 等等。
如何使用相對單位及其解釋
了解每個相關單位的重要性,使您具備有效使用它們的知識。以下是一些相關單位及其解釋:
% - 這個單位完全依賴于父元素。因此,它是相對于父元素的。例如,如果你將一個元素的寬度設置為80%,它將是父元素寬度的80%。請注意,在以下屬性的值中使用百分比:寬度、高度、邊距和內邊距。
em - 這與父元素的字體大小相關。例如,如果您將元素的字體大小設置為4em,則它將是父元素字體大小的四倍。在處理排版(文本)時使用 em - 這使文本按比例縮放。
rem - 這是相對于根元素的字體大小。通常使用 rem 來實現(xiàn)整個布局的一致樣式。
vh - 相對于視口高度的1%。
vw - 相對于視口寬度的1%。
內聯(lián)樣式是一種通過 style 屬性將直接樣式傳遞給HTML元素的樣式系統(tǒng)。雖然存在這種樣式系統(tǒng),但重要的是要理解它的使用不支持應用程序構建的最佳實踐,因為它會創(chuàng)建不可重用的代碼。只有在測試或美化簡單的HTML文件時才使用內聯(lián)樣式。以下是一些避免使用這種樣式系統(tǒng)的原因:
最佳實踐
為了克服內聯(lián)樣式的缺點,您必須使用內部樣式表(位于 <style> 標簽內的樣式)或外部樣式表來保持您的代碼健康和有組織。
不同的瀏覽器具有各種默認樣式,這些樣式不同,導致元素的外觀不一致。這就是為什么我們必須定義一些樣式,以便在其他瀏覽器上為網(wǎng)頁樣式提供一致的起點。這些樣式被稱為“CSS重置”。CSS重置是一種CSS樣式,用于刪除瀏覽器默認樣式的規(guī)則。如果您熟悉CSS,并且在使用過程中有時會注意到某些特定屬性的默認樣式,如 margin. ,CSS重置可以幫助我們將樣式基礎調整到一致的水平。以下是使用這些重置的原因:
如何創(chuàng)建自己的CSS重置
這里是要遵循的簡單步驟:
* {
margin: 0;
padding: 0;
border: 0;
}
上面的代碼是一個基本的CSS重置,它針對邊距、內邊距和邊框屬性,將每個屬性的值設為0。這個過程被稱為“標準化過程”,它可以消除瀏覽器默認的間距和邊框。這里有一些在線的CSS重置:
CSS中的單行代碼是CSS代碼的速記樣式。它可以使代碼更加清晰和有結構。掌握這些速記技巧將有助于您編寫更簡潔的代碼(將多行代碼壓縮為單行)。例如,當您想要在所有邊緣(上,下,左,右)處對元素邊距進行樣式設置時,您不需要明確地指定所有屬性(如 margin-top, margin-right, margin-bottom, 和 margin-left, ),您可以直接使用邊距屬性的速記方式。下面的代碼解釋了這一點:
/* Don't do this */
margin-top: 10px;
margin-bottom: 10px;
margin-right: 15px;
margin-left: 15px;
/* Instead, use Margin Shorthand */
margin: 10px 20px 10px 20px;
/* Margin Shorthand can even be more simplified */
margin: 10px 20px;
這些簡短的話語帶來了許多優(yōu)點:
CSS選擇器可以在外部或內部樣式表中定位HTML元素。CSS中有許多選擇器方法,包括標簽(元素)、類、ID和偽元素。知道何時使用選擇器以及何時不使用選擇器非常重要。此外,您還必須了解CSS選擇器的工作原理。
如何避免使用過于復雜的選擇器
如果你在你的樣式表中遇到了像下面這樣的代碼片段,那就意味著你正在使用過于復雜的選擇器。
#container > .box > content .section .title p > span .italic {
color: blue;
font-weight: bold;
}
以下是避免過于復雜選擇器的技巧:
瀏覽器兼容性很重要,因為你不希望樣式在一個瀏覽器上良好運行,在另一個瀏覽器上則運行不正常。忽略瀏覽器兼容性可能會導致用戶在不同瀏覽器上的體驗不一致。這是因為不同的瀏覽器有其自己的CSS樣式渲染方式。但是,你可以通過考慮瀏覽器兼容性并確保你的樣式與不同瀏覽器兼容來實現(xiàn)樣式一致性。實現(xiàn)瀏覽器兼容性代碼的一種方法是實施以下操作:
使用供應商前綴:某些CSS屬性需要您使用前綴來渲染,無論使用哪種瀏覽器。需要這些前綴的瀏覽器包括Internet Explorer,Mozilla Firefox和Safari。這些前綴被稱為供應商前綴,因為它們是特定類型的瀏覽器獨有的。前綴的示例: -webkit-, -moz-, 和 -ms-. 。
/* webkit-prefixed version - used by browsers that use the WebKit layout engine, such as Chrome and Safari- */
-webkit-border-radius: 8px;
/* ms-prefixed version -used by browsers that use the Microsoft layout engine, such as Internet Explorer. */
-ms-border-radius: 10px;
/* standard version */
border-radius: 8px;
聲明字體回退:在為“font-family”等屬性分配值時,您必須添加回退字體。如果自定義字體不可用,回退字體將是實施的選項之一。
利用Can I Use網(wǎng)站檢查CSS屬性在各種瀏覽器中的兼容性。(https://caniuse.com/)
Hex碼是顏色的十六進制表示。它是一個由“#”符號前綴的6位代碼,后跟三對十六進制數(shù)字,其中第一對表示紅色值,第二對表示綠色值,最后一對表示藍色值。語法:
使用直接的顏色關鍵詞有一些限制:
顏色名稱在不同的瀏覽器中是不一致的。例如,如果你將顏色屬性設置為綠色,不同的瀏覽器對其解釋的方式也會有所不同。因此,不同瀏覽器之間的渲染是不一致的。
顏色名稱受到限制,因為您無法調整它們的色調、陰影等。
顏色名稱的選擇有限。由于使用顏色名稱的限制,我們需要選擇使用十六進制代碼,這些代碼沒有這些限制。以下是十六進制代碼比顏色關鍵字更合適的原因:
尋找十六進制代碼的高效方法
以下是獲取十六進制代碼的幾種方法:
使用0px替代0:毫無疑問,這可能不會對樣式表產(chǎn)生影響,但為了最佳實踐,請確保使用0而不是0px。
selector {
/*Don't do this*/
padding: 10px 12px 15px 0px;
/*Do this*/
padding: 10px 12px 15px 0;
}
設置高的z-index值:給 z-index 分配高值是非常不必要和過度的。遲早,這將在你的樣式表中造成問題,特別是當 z-index. 有多個實現(xiàn)時。
selector {
/*Don't do this*/
z-index: 50;
/*Do this*/
z-index: 2; /*Let the value be minimal*/
}
本文深入探討了常見的CSS錯誤,并為每個錯誤提供了深入的解決方案。通過閱讀本指南,毫無疑問您已經(jīng)了解了一些常見的CSS錯誤,并且從此以后,您將知道如何解決它們,因為我們還要研究每個錯誤的解決方案。
由于文章內容篇幅有限,今天的內容就分享到這里,文章結尾,我想提醒您,文章的創(chuàng)作不易,如果您喜歡我的分享,請別忘了點贊和轉發(fā),讓更多有需要的人看到。同時,如果您想獲取更多前端技術的知識,歡迎關注我,您的支持將是我分享最大的動力。我會持續(xù)輸出更多內容,敬請期待。
avaScript最初只是為開發(fā)網(wǎng)頁的客戶端而知名的,而且隨著新的框架被開發(fā)用于服務器端。JavaScript已經(jīng)成為當今世界上最流行的編程語言之一也就不足為奇了。
隨著越來越多的程序員學習用JavaScript編寫代碼,偉大的項目也在不斷增加。
1. React.js
88,356★
JavaScript主要用于客戶端項目,React.js是用于開發(fā)出色的前端設計和交互的框架示例。由Facebook創(chuàng)建,React是一個用于創(chuàng)建功能強大的可重用UI組件的庫。
使用React的優(yōu)勢之處在于它通過使用虛擬DOM來隱藏復雜性,這有助于提高應用程序的性能。React的功能包括JavaScript語法擴展,單向數(shù)據(jù)流,組件等等。
學習React是非常容易的,如果你對JavaScript有很好的把握。您可以從React.js網(wǎng)站訪問該教程。React的安裝和設置非常簡單。
npm install -g create-react-app
create-react-app my-app
cd my-app
npm start
2. Vue.js
83,742★
就像React一樣,Vue是構建優(yōu)秀用戶界面的另一個框架。這種漸進式框架的設計,隨著時間的推移很容易適應,這使得庫很容易與其他項目整合并隨時使用。
Vue.js以其簡單性而廣為人知,除此之外,它是輕量級的,有良好的文檔記錄,并且在開發(fā)期間具有靈活性。Vue鼓勵開發(fā)人員編寫“簡單的JavaScript”,因此,初學者很容易掌握。
Vue非常易于安裝和設置。
npm install -g vue-cli
vue init webpack my-app
cd my-app
npm install
npm run dev
3. Node.js
45,478★
這里是有史以來最好的服務器端開發(fā)框架之一,這使得JavaScript在服務器端腳本項目中非常受歡迎。
Node.js帶來了包管理工具NPM,它幫助許多開發(fā)人員更輕松地生活。開發(fā)人員也喜歡它提供了一個非阻塞的I / O模型,可用于開發(fā)實時Web應用程序,易于學習,并且擁有一個大型社區(qū)。
Windows和Linux上Node的安裝過程不同。對于Windows,只需下載并安裝Node.js 可執(zhí)行應用程序即可 。
對于Linux,下面的Linux終端命令會安裝它:
sudo apt-get update
sudo apt-get install nodejs
安裝后,應運行以下命令以確認安裝是否成功。
node -v
4.Atom
43,368★
這是您將找到的最好的文本編輯器之一。它與Sublime Text和Visual Studio等競爭,因為它具有功能強大,并且具有智能自動完成功能,集成的拼寫檢查功能,并且非常易于使用。
然而,開始使用Atom非常困難,這是因為需要花費時間來設置插件,以幫助創(chuàng)造出色的體驗。
在Linux上安裝Atom并不困難,運行下面的命令可以完成這項工作。
curl -L https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" >
/etc/apt/sources.list.d/atom.list'
sudo apt-get update
sudo apt-get install atom
在Windows上安裝它也不困難,可以從GitHub頁面下載可執(zhí)行文件。
5. HTML5
Boilerplate
39,744★
隨著時間的推移,網(wǎng)頁的發(fā)展變得越來越復雜。由于生產(chǎn)力越來越成為瓶頸,減少日常工作具有重要意義。
借助HTML5 Boilerplate項目,開發(fā)過程變得更加愉快。這會是您發(fā)現(xiàn)的最流行的前端樣板框架,因為它有助于構建快速,健壯和適應性強的Web應用程序。
它包括Normalize.css,jQuery,Modernizr人臉檢測庫的自定義版本,并且提供高性能。
HTML5 Boilerplate框架可以從他們的GitHub頁面下載。
6.Three.js
39,297★
有幾個流行的3D計算機圖形框架,Three.js就是其中之一。Three.js用于通過使用WebGL引擎在Web瀏覽器中創(chuàng)建漂亮的3D計算機圖形。
Three.js帶有一些功能。諸如效果和場景,相機,皮膚網(wǎng)格和變形混合網(wǎng)格,燈光 , 動畫等功能已經(jīng)幫助它獲得了普及。
其龐大的開發(fā)人員和用戶群體是非常積極的,所以您可以期待該項目的穩(wěn)定改進。
Three.js易于安裝,可以從GitHub頁面下載。
7. MeteorJS
39,213★
構建所有平臺應用程序的框架而言,MeteorJS是您找到的最好的應用程序之一。
MeteorJS支持實時的Web開發(fā),使得客戶端,服務器端和應用程序數(shù)據(jù)庫的開發(fā)變得容易得多,易于初學者編寫代碼,并且擁有龐大的開發(fā)者社區(qū)。
尋找指南?這是Meteor的開發(fā)者寫的一個。
Meteor很容易安裝,運行下面的終端命令將完成這項工作。
sudo curl https://install.meteor.com/ | sh
要檢查安裝是否成功,請使用以下命令:
meteor --version
8. Express.js
36,624★
在文章的前面,我們討論了Node.js框架。Express實際上是建立在Node.js之上的!
Express.js是一個靈活的基于Node.js的Web應用程序框架,用于開發(fā)高質量的Web和移動應用程序。
用于構建Web應用程序和API,Express.js在JavaScript社區(qū)中非常流行。如果你在業(yè)務中待了一段時間,那么你很可能聽說過MEAN堆棧--Express構成了堆棧的后端部分。
Express使開發(fā)過程更快,配置和定制更容易,可以集成大量模板引擎,并且不會與數(shù)據(jù)庫連接造成麻煩。
由于Express構建在Node.js上,因此可以使用NPM工具進行安裝。
npm init
然后安裝并將Express添加到依賴關系列表中:
npm install express --save
或者在沒有將Express添加到依賴關系列表的情況下進行安裝:
npm install express --no-save
9. Chart.js
35,151★
在這個大數(shù)據(jù)的世界里,數(shù)據(jù)的可視化已經(jīng)變得非常重要,不僅對統(tǒng)計人員而且對web開發(fā)人員也是如此。
借助Chart.js,您可以在網(wǎng)頁上顯示精美的圖表,確保在可視化數(shù)據(jù)之前不必經(jīng)歷環(huán)境變化。
Chart.js重量輕,速度快,可用于創(chuàng)建響應式圖表,具有非常明確的文檔,并支持多達8種圖表類型。如果這還不夠的話,Chart.js擁有一個龐大的用戶社區(qū),因此您可以快速找到問題的解決方案。
該圖表庫可以使用npm工具進行安裝,只需使用以下命令:
npm install chart.js --save
10.Yarn
30,168★
這是一個JavaScript包管理工具,有助于簡化開發(fā)過程。
和react一樣,yarn也是由facebook開發(fā)的,它可以被看作是對npm工具的改進,因為它可以將npm沒有的操作并行化,從而更有效地利用網(wǎng)絡。
Yarn受歡迎的一些原因是它的執(zhí)行速度,強大的工作系統(tǒng),許可證檢查的可用性以及與NPM和Bower軟件包管理工具的令人難以置信的兼容性。
Yarn可以使用npm工具進行安裝:
npm install yarn --global
在Linux上,它也可以使用下面的命令進行安裝:
curl - sS https: //dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee / etc / apt / sources.list.d / yarn.list
然后:
sudo apt-get update && sudo apt-get install yarn
有需求的小伙伴趕緊轉發(fā)收藏吧~~!
文共2830字,預計學習時長9分鐘
來源:Pexels
GitHub網(wǎng)站上包含了目前所有與web開發(fā)相關的內容,提供一站式服務。這里有框架,有演示,包羅萬象,可能沒有什么是你找不到的。但這也是問題所在——其中有很多有趣的東西,但也許你永遠不會知道,原因就在于GitHub上可用的存儲庫實在太多。
所以,小芯決定在此介紹一些GitHub上最流行的存儲庫,其中每個存儲庫都至少擁有30000顆星星。
首先要推薦的存儲庫是Realworld,其創(chuàng)造者稱之為“演示應用程序之母”。這個說法自然很大膽,但卻不夸張。
Realworld是Medium.com的一個典型翻版(沒錯,可能就是你正在瀏覽的這個平臺!)。不僅如此,Realworld允許開發(fā)者在不同的前端和后端實現(xiàn)之間進行選擇,甚至可以將兩者結合。
Vue.js+Node/Express或React/Redux+Rust,都能搞定!
通過Realworld,開發(fā)者會發(fā)現(xiàn),同一個社交軟件卻可以用任何不同的流行語言或框架進行建構,這不神奇嗎?
這一存儲庫實際上是一套十分流行的系列叢書,作者為Kyle Simpson,以筆名Getify廣為人知。這套書深入探討了JavaScript的機制,涵蓋了以下內容:
·開始著手
·作用域和閉包
·對象和類
·類型和語法
·同步和異步
·ES.Next及其他
這套書的優(yōu)點在于對讀者完全開放!這絕對是關于JavaScript最好的系列叢書之一,它也幫助筆者理解了JavaScript的真正含義。即使你認為自己很懂JavaScript,也應該好好讀這套書,你一定會得到意外的收獲!
學習JavaScript最合理的途徑
Airbnb JavaScript Style Guide是最常見也最流行的風格指南之一,可以幫助開發(fā)者編寫更好的JS代碼,在團隊合作中或者在與ESLint結合時特別實用。
下面是來自文件中的一個示例,使用了const而非var:
// bad
var a = 1;
var b = 2;
// good
const a = 1;
const b = 2;
Storybook 是一個用于UI組件的開發(fā)環(huán)境。它允許開發(fā)者瀏覽組件庫,查看每個組件的不同狀態(tài),并交互式地開發(fā)和測試組件,同時支持React、Vue、Angular、React Native、Ember、Web等眾多組件!
Storybook的運行獨立于應用程序。這就允許開發(fā)者單獨開發(fā)UI組件,從而提高組件的重用性、可測試性和開發(fā)速度。開發(fā)者可以快速構建,而不必擔心與特定應用程序之間的依賴關系。
HTML5Boilerplate是一個專業(yè)的前端模板,也是網(wǎng)絡上最流行的前端模板之一。它可以幫助開發(fā)者建立快速、耐用、適應性強的網(wǎng)站或應用程序,微軟、NASA和耐克等公司都在使用。
以下是HTML5 Boilerplate的一些重要特征:
·配置HTML5。
·設計時考慮到漸進增強。
·包括:Normalize.css、jQuery和Modernizer。
·通過配置提高網(wǎng)站的性能和安全性。
·占位符CSS媒體查詢。
·默認打印樣式,性能優(yōu)化。
·谷歌通用分析工具平臺的優(yōu)化版本。
這一存儲庫廣泛整合了有關Node.js開發(fā)的各種最佳實踐,它目前由80多個最佳實踐、樣式指南和架構技巧組成。
其中包含以下內容:
·項目結構實踐
·錯誤處理實踐
·代碼風格實踐
·測試和總體質量實踐
·投入生產(chǎn)實踐
·安全性實踐
·效果實踐
這無疑是一個優(yōu)秀的存儲庫,包含了眾多信息。如果想嘗試Node.js開發(fā),這一存儲庫會是不錯的選擇!
在啟動web應用程序之前,你是否問過自己其中需要包含哪些東西?需要進行哪些測試?Front-End Checklist中就涵蓋了這些!
以下所列對大多數(shù)項目來說都是必須的,其架構方式如下:
·標題
·HTML
·網(wǎng)絡字體
·CSS
·圖像
·JavaScript
·安全
·性能
·可實現(xiàn)性
·SEO
·翻譯
以下是來自蘋果網(wǎng)站應用MetaData的示例:
<!-- Apple Touch Icon (atleast 200x200px) -->
<link rel="apple-touch-icon" href="/custom-icon.png">
<!-- To run web application in full-screen -->
<meta name="apple-mobile-web-app-capable"content="yes">
<!-- Status Bar Style (see Supported Meta Tags below for available values)-->
<!-- Has no effect unless you have the previous meta tag -->
<meta name="apple-mobile-web-app-status-bar-style"content="black">
NW.js是一個基于Chromium和node.js的應用程序運行時。在NW.js上,開發(fā)者可以用HTML和JavaScript編寫本地應用程序。它還允許開發(fā)者直接從DOM調用Node.js模塊,形成一種編寫本地應用程序的新方法,對任何Web技術都適用。
以下為它的主要功能:
·使用現(xiàn)代HTML5、CSS3、JS和WebGL編寫應用程序。
·完全支持Node.js API及其所有第三方模塊。
·性能良好:Node和WebKit運行在同一線程中。
·易于打包和分發(fā)應用程序。
·可在Linux、Mac OS X和Windows上使用。
Alvaro Trigo提供的fullPage.js是一個簡單易用的存儲庫,它允許開發(fā)者創(chuàng)建SPA(單頁應用程序)和橫向滑塊,可用于Vue、React和Angular,對移動設備完全響應。
開發(fā)者可在開源項目中自由使用這一存儲庫,但如果想在商業(yè)環(huán)境中使用,則必須購買許可證。
這一存儲庫非常酷炫,值得一看!
來源:Pexels
希望大家能夠在自己的項目中或在其他地方使用以上存儲庫。
留言點贊關注
我們一起分享AI學習與發(fā)展的干貨
如轉載,請后臺留言,遵守轉載規(guī)范
*請認真填寫需求信息,我們會在24小時內與您取得聯(lián)系。