CSS 2.1 vs CSS3 比較工具

本工具提供CSS 2.1與CSS3之間的主要差異比較,協助開發者了解各版本的功能與限制。

選擇器 (Selectors)
CSS 2.1
基本選擇器
支援元素、類別、ID、屬性和後代選擇器。
/* 元素選擇器 */ element { property: value; } /* 類別選擇器 */ .class { property: value; } /* ID選擇器 */ #id { property: value; } /* 屬性選擇器 */ [attribute] { property: value; } [attribute=value] { property: value; } /* 後代選擇器 */ parent descendant { property: value; }
CSS3
增強選擇器
新增了許多功能強大的選擇器,包括兄弟選擇器、屬性選擇器擴展、偽類和偽元素。
/* 兄弟選擇器 */ element ~ sibling { property: value; } /* 相鄰兄弟選擇器 */ element + adjacent { property: value; } /* 子元素選擇器 */ parent > child { property: value; } /* 擴展屬性選擇器 */ [attribute^=value] { property: value; } /* 開頭匹配 */ [attribute$=value] { property: value; } /* 結尾匹配 */ [attribute*=value] { property: value; } /* 包含匹配 */ /* 結構偽類 */ :nth-child(n) { property: value; } :nth-of-type(n) { property: value; } :first-child { property: value; } :last-child { property: value; } :only-child { property: value; } :empty { property: value; } /* 狀態偽類 */ :checked { property: value; } :enabled { property: value; } :disabled { property: value; }
顏色與透明度 (Colors & Opacity)
CSS 2.1
顏色表示
支援十六進制、RGB和顏色名稱。沒有內建透明度支援。
/* 顏色名稱 */ color: black; /* 十六進制 */ color: #000000; /* RGB */ color: rgb(0, 0, 0);
CSS3
擴展顏色模型
新增RGBA、HSL、HSLA和透明度支援。
/* RGBA */ color: rgba(0, 0, 0, 0.5); /* 50%透明度的黑色 */ /* HSL (色相、飽和度、亮度) */ color: hsl(0, 100%, 50%); /* 紅色 */ /* HSLA (帶透明度) */ color: hsla(0, 100%, 50%, 0.5); /* 50%透明度的紅色 */ /* 透明度屬性 */ opacity: 0.5; /* 整個元素50%透明 */
圓角與陰影 (Rounded Corners & Shadows)
CSS 2.1
不支援
CSS 2.1不支援原生圓角和陰影效果,需要使用圖片或其他技巧實現。
/* 需要使用背景圖片或其他方法 */ .rounded-corner { background-image: url('corner.png'); }
CSS3
內建圓角和陰影
提供border-radius和box-shadow屬性,可以輕鬆創建圓角和陰影效果。
/* 圓角 */ border-radius: 10px; /* 所有角 */ border-radius: 10px 20px 30px 40px; /* 左上, 右上, 右下, 左下 */ /* 陰影 */ box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); /* x偏移, y偏移, 模糊, 顏色 */ box-shadow: inset 0 0 10px #000000; /* 內陰影 */ /* 文字陰影 */ text-shadow: 1px 1px 2px black;
漸變 (Gradients)
CSS 2.1
不支援
CSS 2.1不支援原生漸變,需要使用圖片實現。
/* 需要使用背景圖片 */ background-image: url('gradient.png');
CSS3
多種漸變類型
支援線性漸變、徑向漸變和圓錐漸變。
/* 線性漸變 */ background: linear-gradient(to bottom, #ffffff, #000000); background: linear-gradient(45deg, red, blue); /* 徑向漸變 */ background: radial-gradient(circle, yellow, red); /* 重複漸變 */ background: repeating-linear-gradient(45deg, #606dbc, #606dbc 10px, #465298 10px, #465298 20px);
轉換與動畫 (Transforms & Animations)
CSS 2.1
不支援
CSS 2.1不支援原生轉換和動畫效果,需依賴JavaScript或Flash。
/* 不支援 */
CSS3
全面的轉換和動畫支援
提供transform、transition和animation屬性,實現豐富的視覺效果。
/* 2D轉換 */ transform: translate(50px, 100px); transform: rotate(45deg); transform: scale(1.5); transform: skew(20deg, 10deg); /* 3D轉換 */ transform: rotateX(45deg); transform: perspective(500px) rotateY(45deg); /* 過渡效果 */ transition: all 0.5s ease; transition: width 2s, height 4s; /* 動畫 */ @keyframes example { 0% { background-color: red; } 50% { background-color: blue; } 100% { background-color: green; } } animation: example 5s infinite;
多欄佈局 (Multi-column Layout)
CSS 2.1
不支援
CSS 2.1沒有多欄佈局功能,需要使用多個div元素模擬。
/* 需要使用多個浮動的div元素 */ .column { float: left; width: 33.33%; }
CSS3
原生多欄支援
提供column-count和column-width等屬性,輕鬆創建類似報紙的多欄佈局。
/* 欄數定義 */ column-count: 3; /* 欄寬定義 */ column-width: 200px; /* 欄間距 */ column-gap: 40px; /* 欄分隔線 */ column-rule: 1px solid #dddddd;
Flexbox與Grid佈局
CSS 2.1
不支援
CSS 2.1主要使用float、position和display屬性進行佈局。
/* 使用浮動和定位進行佈局 */ .container { position: relative; } .left-column { float: left; width: 30%; } .right-column { float: right; width: 70%; }
CSS3
強大的佈局系統
引入Flexbox和Grid佈局系統,大幅提升佈局能力。
/* Flexbox */ .flex-container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; } .flex-item { flex: 1 0 200px; } /* Grid */ .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 20px; grid-template-areas: "header header header" "sidebar content content" "footer footer footer"; } .header { grid-area: header; }
媒體查詢 (Media Queries)
CSS 2.1
基本媒體類型
CSS 2.1支援基本媒體類型,但功能有限。
/* 媒體類型 */ @media print { body { font-size: 12pt; } } @media screen { body { font-size: 14px; } }
CSS3
增強的媒體查詢
提供豐富的媒體查詢功能,支持響應式設計。
/* 基於螢幕寬度 */ @media (max-width: 600px) { .container { width: 100%; } } /* 組合查詢條件 */ @media (min-width: 601px) and (max-width: 900px) { .container { width: 80%; } } /* 基於設備方向 */ @media (orientation: landscape) { .sidebar { float: left; } } /* 高解析度螢幕 */ @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { .logo { background-image: url('logo@2x.png'); } }
Web字體 (Web Fonts)
CSS 2.1
有限支援
只能使用用戶系統上已安裝的字體。
/* 使用系統字體 */ font-family: Arial, Helvetica, sans-serif;
CSS3
@font-face規則
允許下載並使用自定義字體,極大擴展了網頁設計的可能性。
/* 自定義字體 */ @font-face { font-family: 'MyWebFont'; src: url('myfont.woff2') format('woff2'), url('myfont.woff') format('woff'); font-weight: normal; font-style: normal; } body { font-family: 'MyWebFont', Arial, sans-serif; }