SVG:一種新的 Web 圖像格式

已發表: 2023-01-16

SVG 或可縮放矢量圖形是一種越來越受歡迎的圖像格式,因為它能夠縮放到任何尺寸而不會降低質量。 所有主要瀏覽器也支持該格式。 SVG 優於其他圖像格式的優勢之一是它可以在 HTML 文檔中內聯使用。 這意味著 SVG 圖像可以直接包含在 HTML 代碼中,而不是使用傳統的 img 元素。 但是,使用內聯 SVG 有一些限制。 一個問題是 Internet Explorer 不支持內聯 SVG。 另一個潛在的問題是某些瀏覽器的舊版本(例如 Firefox 3.6)可能難以正確顯示內聯 SVG。 儘管有這些限制,內聯 SVG 可以成為創建在任何設備上看起來都很棒的響應式 Web 設計的有用工具。

使用 JavaScript,在 >object> 標籤內插入一個 SVG。 與 HTML DOM 訪問不同的是,對SVG DOM的訪問是完全可用的。 如果不支持瀏覽器,將顯示隨附的文本消息。 我有軼事證據表明,當 SVG 以內聯方式編寫時,標記很難看,但在 Chrome 中編寫時要好得多。 重要的是要記住內部 (SVG) 文檔是通過內容文檔訪問的。 上面的代碼包含所有有趣的東西作為 window.onload 函數。 它確保在我們開始操作之前加載 SVG 和主 DOM。

與嵌入文件相比,使用內聯 SVG 文件可以獲得許多優勢。 此外,與 CSS 的交互要容易得多,因為可以像對待文檔中的所有其他元素一樣對待 SVG。 因此,可以更精確地避免懸停效果和其他類似交互。

首先需要 Aria 描述以獲得更好的可訪問性。 只需包括以下內容。 無需等到打開文檔 svg後出現 URL title>。 如果需要,您必須將 aria-describedby 插入到 svg> 中。 這個 aria-attribute 可以在關於 Amelia 的頁面上找到。

Martin Becker 將內聯元素定義為 SVG。

你如何在 Html 中內聯 Svg?

你如何在 Html 中內聯 Svg?
圖片來源:css-tricks.com

要在 HTML 中內聯 SVG,您可以使用 標籤。 此標籤用於在 HTML 文檔中嵌入SVG 文件。 該標籤具有一些用於配置 SVG 文件的屬性。 最重要的屬性是“src”屬性。 此屬性指定 SVG 文件的 URL。

網頁中包含的標記稱為內聯 SVG。 Viget 與 Dick's 體育用品合作創建了 Women's Fitness,以互動方式展示女性健身服裝和配飾。 儘管我過去曾使用 .svg 文件作為圖像源和圖標字體,但這是我第一次真正以官方身份調查使用它們的機會。 它是最強大的用例之一,因為它內嵌在 HTML 中。 可以在 Backbone 應用程序(例如 Women's Fitness:)中使用 Backbone.js 覆蓋此行。 設置屬性 5.2 Internet Explorer 不支持 CSS 轉換、轉換和動畫。 CSS 動畫可用於變換旋轉和屬性,例如下圖中的描邊和填充。

svg 標籤用途極為廣泛,可用於多種用途。 您可以使用 svg> /svg> 標籤將圖像直接嵌入到 HTML 文檔中。 為此,請在 VS 代碼或您喜歡的 IDE 中打開 SVG 圖像,複製代碼並將其粘貼到 HTML 文檔的“body”元素中。 如果一切按計劃進行,您的網頁應該與下圖完全一樣。 圖像和外部對像元素在 SVG 中用於支持嵌入內容。 HTML“視頻”、“音頻”、“iframe”和“畫布”元素在 SVG 中也可用。 可以將 SVG 圖像嵌入到 HTML 文檔中,以便在不需要單獨文件的情況下提供圖形。

你可以直接在 Html 中嵌入 Svg 嗎?

HTML 頁麵包含可以直接嵌入其中的SVG 元素

什麼是內聯 Svg?

這只是包含帶有內聯 SVG 的HTML 標記的網頁的 URL。


Svg 應該內聯嗎?

Svg 應該內聯嗎?
圖片來源:wp.com

在為響應式設備設計時,不需要多個尺寸的相同 SVG,因為它們適用於高分辨率顯示器。 根據 Sitepoint 的說法,內聯 SVG 的優勢在於比標準 SVG更易於訪問,因為它在所有尺寸下都更加可見。

建議內聯 SVG將減少 HTTP 請求的數量,從而減少頁面的加載時間。 無論緩存是否存在,任何小數乘以 1k 都優於任何大數乘以相同數量的請求。 雖然有許多變量需要考慮,但這裡有一些可以組合或單獨使用的基本策略。 Magnus72Magnus72 691 silver badge3, bronze badges 0, 是 Claudiu Creanga 的徽章。 將圖像包含在 SVG 中更有意義,因為它們可以被緩存。 我使用的 CSS 蒙版使我能夠像在內聯 SVG 中一樣更改圖標的顏色; 與 HTML 相比,我更喜歡這種跨瀏覽器兼容性的方法。

Web 開發人員面臨著一個艱難的決定:通過數據 URI 在 CSS 中使用 SVG() 或使用 encodeURI 對 SVG 進行編碼。 encodeURIComponent() 可以在所有現代瀏覽器中使用,但數據 URI 只能在基於 Webkit 的瀏覽器中找到。 xmlns=' http://www.w3.org/2000/svg' 是解決此問題的簡單方法。 任何瀏覽器都可以輕鬆解釋 SVG 文件。 因為它們缺少像素,所以在使用 SVG 文件製作網頁圖形時很難顯示高質量的數碼照片。 細節照片通常以 JPEG 格式拍攝效果更好。 SVG 圖像只能使用現代瀏覽器查看。 使用SVG 命名空間 xmlns='http://www.w3.org/2000 /svg' 可以很簡單地解決此問題。

為什麼 Svg 文件不推薦用於徽標?

因為 SVG 基於矢量圖形,所以它不能用於具有復雜紋理和精細細節的圖像以及照片。 它最適用於徽標、圖標和其他具有簡單顏色和形狀的平面圖形。 此外,儘管大多數現代瀏覽器都支持 SVG,但舊版瀏覽器可能無法正常使用它。

Svg 圖形的缺點是什麼?

無法在 sva 圖像中提供盡可能多的細節。 由於 SVG 基於點和路徑而不是像素,因此它們無法提供與標準圖像格式一樣多的細節。