웹 프론트엔드 HTML 튜토리얼 一次完整打包:工程師最需要的前端開發指南大補帖_html/css_WEB-ITnose

一次完整打包:工程師最需要的前端開發指南大補帖_html/css_WEB-ITnose

Jun 24, 2016 am 11:30 AM

  • HTML

語義

HTML5 為我們提供了很多旨在精確描述內容的語義元素。確保你可以從它豐富的詞彙中獲益。

你需要理解你正在使用的元素的語義。用一種錯誤的方式使用語義元素比保持中立更糟糕。

簡潔

保持代碼的簡潔。忘記原來的 XHTML 習慣。

可訪問性

可訪問性不應該是以後再想的事情。提高網站不需要你成為一個 WCAG 專家,你完全可以通過修復一些小問題,從而造成一個巨大的變化,例如:

1. 學習正確使用 alt 屬性

2. 確保連結和按鈕被同樣地標記(不允許

3. 不專門依靠顏色來傳遞資訊

4. 明確標注表單控制項

語言

當定義語言和字元編碼是可選擇的時候,總是建議在文檔級別同時聲明,即使它們在你的 HTTP 標頭已經詳細說明。比任何其他字元編碼更偏愛 UTF-8。

性能

除非有正當理由才能在內容前載入腳本,不要阻塞頁面的渲染。如果你的樣式表很重,開頭就孤立那些絕對需要得樣式,並在一個單獨的樣式表中推遲二次聲明的載入。兩個 HTTP 請求顯然比一個慢,但是感知速度是最重要的因素。

  • CSS

分號

雖然分號在技術上是 CSS 一個分隔符號,但應該始終把它作為一個結束字元。

  • 盒子模型

盒子模型對於整個文檔而言最好是相同的。全域性的 * { box-sizing: border-box; }就非常不錯,但是不要改變預設盒子模型的特定元素,如果可以避免的話。

不要更改元素的預設行為,如果可以避免的話。元素盡可能地保持在自然的文檔流中。例如,刪除圖像下方的空格而不改變其預設顯示:

同樣,如果可以避免的話,不要關閉元素流。

定位

在 CSS 中有許多定位元素的方法,但應該儘量限制以下屬性 / 值。按優先順序排列:

選擇器

最小化緊密耦合到 DOM 的選擇器。當選擇器有多於 3 個結構偽類,後代或兄弟選擇器的時候,考慮添加一個類到你想匹配的元素。

當你不需要的時候避免超載選擇器。

特異性

不要讓值和選擇器難以覆蓋。儘量少用 id,並避免!important。

覆蓋

覆蓋樣式使得選擇器和調試變得困難。如果可能的話,避免覆蓋樣式。

繼承

不要重複可以繼承的樣式聲明。

簡潔

保持代碼的簡潔。使用簡寫屬性,沒有必要的話,要避免使用多個屬性。

語言

英語表達優於數學公式。

瀏覽器引擎首碼

果斷地刪除過時的瀏覽器引擎首碼。如果需要使用的話,可以在標準屬性前插入它們。

動畫

視圖轉換優於動畫。除了 opacity 和 transform,避免動畫其他屬性。

單位

可以的話,使用無單位的值。如果使用相對單位,那就用 rem 。秒優於毫秒。

顏色

如果你需要透明度,使用 rgba。另外,始終使用十六進位格式。

繪畫

當資源很容易用 CSS 複製的時候,避免 HTTP 請求。

Hacks

不要使用 Hacks。

  •  JavaScript

性能

可讀性,正確性和可表達性優於性能。JavaScript 基本上永遠不會是你的性能瓶頸。圖像壓縮,網路接入和 DOM 重排來代替優化。如果從本文中你只能記住一個指導原則,那麼毫無疑問就是這一條。

無狀態

儘量保持函數純潔。理論上,所有函數都不會產生副作用,不會使用外部資料,並且會返回新物件,而不是改變現有的對象。

  • 本地化

盡可能地依賴本地方法。

強制性

如果強制有意義,那麼就使用隱式強制。否則就應該避免強制。

迴圈

不要使用迴圈,因為它們會強迫你使用可變物件。依靠 array.prototype 方法。

如果不能避免,或使用 array.prototype 方法濫用了,那就使用遞迴。

這裡有一個通用的迴圈功能,可以讓遞迴更容易使用。

參數

忘記 arguments 對象。餘下的參數往往是一個更好的選擇,這是因為:

你可以從它的命名中更好地瞭解函數需要什麼樣的參數

真實陣列,更易於使用。

應用

忘掉 apply()。使用操作符。

綁定

當有更慣用的做法時,就不要用 bind() 。

函數嵌套

沒有必要的話,就不要嵌套函數。

合成函數

避免調用多重嵌套函數。使用合成函數來替代。

緩存

緩存功能測試,大資料結構和任何奢侈的操作。

變數

const 優於 let ,let 優於 var。

條件

IIFE 和 return 語句優於 if, else if,else 和 switch 語句。

對象迭代

如果可以的話,避免 for…in。

map 對象

在物件有合法用例的情況下,map 通常是一個更好,更強大的選擇。

Curry

Curry 雖然功能強大,但對於許多開發人員來說是一個外來的範式。不要濫用,因為其視情況而定的用例相當不尋常。

可讀性

不要用看似聰明的伎倆混淆代碼的意圖。

代碼重用

不要害怕創建小型的,高度可組合的,可重複使用的函數。

依賴性

最小化依賴性。協力廠商是你不知道的代碼。不要只是因為幾個可輕易複製的方法而載入整個庫:

(本文轉載自《 碼農網 》,圖片來源: pbyrne CC Licensed,未經授權請勿使用。)

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

공식 계정 웹 페이지의 캐싱 업데이트에 어려움 : 버전 업데이트 후 사용자 경험에 영향을 미치는 이전 캐시를 피하는 방법은 무엇입니까? 공식 계정 웹 페이지의 캐싱 업데이트에 어려움 : 버전 업데이트 후 사용자 경험에 영향을 미치는 이전 캐시를 피하는 방법은 무엇입니까? Mar 04, 2025 pm 12:32 PM

공식 계정 웹 페이지 업데이트 캐시, 이것은 간단하고 간단하며 냄비를 마시기에 충분히 복잡합니다. 공식 계정 기사를 업데이트하기 위해 열심히 노력했지만 사용자는 여전히 기존 버전을 열었습니까? 이 기사에서는이 뒤에있는 비틀기와 회전을 살펴 보고이 문제를 우아하게 해결하는 방법을 살펴 보겠습니다. 읽은 후에는 다양한 캐싱 문제를 쉽게 처리 할 수있어 사용자가 항상 가장 신선한 콘텐츠를 경험할 수 있습니다. 기본 사항에 대해 먼저 이야기 해 봅시다. 액세스 속도를 향상시키기 위해 브라우저 또는 서버는 일부 정적 리소스 (예 : 그림, CSS, JS) 또는 페이지 컨텐츠를 저장합니다. 다음에 액세스 할 때 다시 다운로드하지 않고도 캐시에서 직접 검색 할 수 있으며 자연스럽게 빠릅니다. 그러나 이것은 또한 양날의 검입니다. 새 버전은 온라인입니다.

HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? Mar 17, 2025 pm 12:27 PM

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? Mar 17, 2025 pm 12:20 PM

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

웹 페이지의 PNG 이미지에 뇌졸중 효과를 효율적으로 추가하는 방법은 무엇입니까? 웹 페이지의 PNG 이미지에 뇌졸중 효과를 효율적으로 추가하는 방법은 무엇입니까? Mar 04, 2025 pm 02:39 PM

이 기사는 CSS를 사용한 웹 페이지에 효율적인 PNG 테두리 추가를 보여줍니다. CSS는 JavaScript 또는 라이브러리에 비해 우수한 성능을 제공하며, 미묘하거나 눈에 띄는 효과를 위해 테두리 너비, 스타일 및 색상 조정 방법을 자세히 설명합니다.

& lt; datalist & gt의 목적은 무엇입니까? 요소? & lt; datalist & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:33 PM

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? Mar 12, 2025 pm 04:05 PM

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

& lt; Progress & Gt의 목적은 무엇입니까? 요소? & lt; Progress & Gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:34 PM

이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

& lt; meter & gt의 목적은 무엇입니까? 요소? & lt; meter & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:35 PM

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

See all articles