Web 開發人員使用 CSS 樣式語言為語義 HTML 文檔添加動態、富有創意且用戶友好的樣式。
剛接觸 CSS 的 Web 開發人員通過練習基本的 CSS 選擇器語法、屬性、@ 規則和偽類/元素來開始學習樣式。
了解這些 CSS 功能足以構建一個易于訪問、美觀、用戶友好的現代網站,但要了解 CSS 的全部潛力,還有很多東西需要學習。
當 Web 開發人員廣泛使用 CSS 設計網站前端并嘗試使用 CSS 時,他們經常會發現新功能、解決方法和技術,這些功能、解決方法和技術可以幫助他們提高工作效率并提高 CSS 技能。
這些技巧和竅門可幫助每個人高效地實施快速、有吸引力的 CSS 純解決方案來解決設計問題,而無需編寫基于 JavaScript、SVG 和 HTML Canvas 的實現。例如,現在 Web 開發人員無需編寫一行 JavaScript 代碼即可創建快速、輕量級的倒計時器。
在本文中,我將介紹10個 CSS 技巧和竅門,幫助您充分利用 CSS,高效地構建現代 Web 界面,而無需使用 JavaScript、SVG、HTML Canvas 或集成繁重的第三方 UI 工具包和庫。練習這些技巧可以擴展您的 CSS 掌握能力!
正確放置 UI 元素是設計高質量界面的必備條件。在大多數情況下,Web 開發人員必須將子元素垂直和水平居中。由于布局系統和定位功能不同,CSS 無法提供單一屬性來讓任何元素居中。
在響應式設計流行之前,Web 開發人員使用負邊距技巧來讓 HTML 元素居中——現在,您會發現使用各種現代和舊 CSS 屬性讓元素居中的無數方法,但在 CSS 中讓元素居中的最簡單方法是什么?
現代 CSS 網格功能支持使用 place-items 簡寫屬性讓網格塊居中,因此我們可以使用它來讓子元素居中,如下所示:
您可以通過使用 calc() 和 mod() CSS 數學函數調整全局計時器變量的結束值來創建顯示分鐘、秒和毫秒的倒計時器。
瀏覽器將 DOM 元素渲染為瀏覽器視口邊界內的可視 UI 元素。
但是,HTML 表單元素通常會打開在標準 DOM 視口之外渲染的原生 UI 元素,因此沒有跨瀏覽器的解決方案來自定義原生表單元素的平臺特定、瀏覽器特定的彈出元素。
例如,我們無法自定義 HTML 選擇元素的下拉彈出窗口,但我們可以使用 CSS 在所有瀏覽器中自定義選擇框的初始視圖,因為初始表單控件視圖在 DOM 內渲染:
<div> <select> <option>React</option> <option>Angular</option> <option>Svelte</option> <option>Vue</option> <option>Lit</option> </select></div><style> div { position: relative; min-width: 200px; } select { appearance: none; padding: 6px; font-size: 14px; border-radius: 4px; width: 100%; border: 2px solid #ccc; outline: none; } select:focus { border: 2px solid #aaa; } div::after { border-right: 6px solid transparent; border-top: 6px solid #333; border-left: 6px solid transparent; position: absolute; top: 42%; right: 12px; content: ""; pointer-events: none; }</style>
上述 CSS 定義通過添加自定義圖標和邊框來定制 HTML 選擇元素的初始視圖的瀏覽器特定外觀,如下面的預覽所示:
使用相同的技術,您可以覆蓋用戶代理樣式表中的默認樣式,以自定義其他本機表單控件并向其添加額外的子元素,而無需使用 JavaScript 嵌入元素。
眾所周知的 border-radius CSS 屬性可幫助我們為矩形 DOM 元素創建圓形或橢圓形邊緣。
此外,使用 clip-path 屬性,我們可以創建漂亮的花式角。您知道我們可以使用漸變填充創建創意花式角嗎?
通過為元素填充徑向漸變背景,可以創建一個完美、尖銳的圓圈。如果我們使生成的圓圈透明,將其用作蒙版,然后移動到角落,它會切開所有四個角,從而創建類似相框的角:
<div></div><style> div { width: 200px; height: 100px; background: darkcyan; mask: radial-gradient(14px at 40px 40px, transparent 98%, black) -40px -40px; }</style>
CSS 滾動捕捉模塊提供了一組 CSS 屬性,用于提高可滾動容器的可用性和可訪問性。
例如,以下代碼片段會自動在主要部分停止滾動,并避免在部分部分停止:
<section style="background: #ccc">1</section><section style="background: #aaa">2</section><section style="background: #ccc">3</section><section style="background: #aaa">4</section><style> section { height: 100vh; scroll-snap-align: start; display: grid; place-items: center; font-size: 7em; } :root { background-color: #eee; scroll-snap-type: y mandatory; }</style>
CSS 滾動捕捉功能可幫助我們為移動應用中支持滑動的界面實現無 JavaScript、極簡的純 CSS 解決方案
每個 Web 開發人員都有使用類開始樣式的習慣。使用組織良好的類無疑是創建干凈、易于管理的網頁的良好做法。
但是,創建類對于創建極簡網頁來說并不是強制性的——無類 Web 設計概念激勵我們使用語義 HTML 標簽來編寫 CSS:
nav {}ul {}ul li {}summary {}
:not()、:has() 和 :is() 等功能選擇器(以偽類形式實現)可幫助我們避免在無類樣式表中選擇器中出現重復片段,從而編寫簡潔的代碼。
例如,以下代碼片段使用 :not() 為導航菜單項(最后一個除外)添加了顏色樣式:
<nav> <ul> <li>Home</li> <li>Services</li> <li>About</li> <li>Contact</li> </ul></nav><style> nav ul { display: flex; list-style: none; gap: 1em; background: #eee; padding: 1em; :not(li:last-child) { color: darkcyan; } }</style>
假設您需要為呈現 SVG 圖標的菜單項添加自定義樣式。然后,您可以使用 :has() 功能選擇器選擇這些菜單項,如下所示:
li:has(svg) { /* ... */}
:has() 偽類可以與屬性選擇器和 CSS 變量結合使用,實現交互式主題更改:
<div> <label><input type="radio" value="t1" name="t" checked>Theme 1</label> <label><input type="radio" value="t2" name="t">Theme 2</label></div><style> body { background-color: var(--background-color); color: var(--text-color); transition: all 0.5s; } :root:has(input[value="t1"]:checked) { --background-color: darkcyan; --text-color: white; } :root:has(input[value="t2"]:checked) { --background-color: skyblue; --text-color: black; } </style>
:is() 功能選擇器幫助我們為逗號分隔的長選擇器編寫替代的簡寫選擇器:
/* old-fashioned */section h1, section h2, section h3, section h4, section h5, section h6 { color: darkcyan;}/* modern */section :is(h1, h2, h3, h4, h5, h6) { color: darkcyan;}
以上就是我今天想與你分享的全部內容,希望這些技能可以幫助您編寫更簡潔、更高效的CSS代碼。
本文鏈接:http://www.www897cc.com/showinfo-26-103165-0.html聊一聊 CSS 的十個技巧和竅門
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com