摘要:翻譯瘋狂的技術宅原文許多前端開發人員都在用為他們的網站設計樣式。一些人喜歡在中添加一些自己偏好的樣式,我也一樣。我認為這是令人難以置信和奇怪的。不同的瀏覽器為表單元素和按鈕設置了不同的邊框樣式。這種風格的問題是它的特異性低。
翻譯:瘋狂的技術宅
原文:https://medium.freecodecamp.o...
許多前端開發人員都在用 Normalize 為他們的網站設計樣式。一些人喜歡在 Normalize.css 中添加一些自己偏好的樣式,我也一樣。
在本文中,我會與你分享我自己的 CSS reset 項目(除了 Normalize.css 之外我還使用它們)。
我將 reset 項分為8類:
盒子大小
刪除邊距和填充
列表
表格和按鈕
圖像和嵌入視頻
表格
隱藏屬性
Noscript
調整盒子大小box-sizing 屬性改變了 CSS 盒子模型的工作方式。它會改變計算 width、 height、 padding、 border 和 margin 的方式。
box-sizing 的默認設置是 content-box。我更喜歡將其改為 border-box,因為這樣更容易設置 padding 和 width.。
有關 Box Sizing 的更多信息,你可能對“了解Box大小”感興趣。
html { box-sizing: border-box; } *, *::before, *::after { box-sizing: inherit; }刪除邊距和填充
瀏覽器對不同元素 margin 和 padding 的設置各不相同。當我不了解這些時,默認設置會讓我失望。但是我更喜歡通過自己編碼設置所有邊距和填充。
/* Reset margins and paddings on most elements */ body, h1, h2, h3, h4, h5, h6, ul, ol, li, p, pre, blockquote, figure, hr { margin: 0; padding: 0; }列表
我在很多情況下都使用無序列表,而且很多情況下都不需要 disc 樣式。在這里我將 list-style 設置為 none 。當我需要 disc 樣式時,會在特定的 上手動設置它。
/* Removes discs from ul */ ul { list-style: none; }表單和按鈕
瀏覽器不會繼承表單和按鈕的排版。他們將 font 設置為 400 11px system-ui。我認為這是令人難以置信和奇怪的。所以我總是要手動讓它們從祖先元素繼承樣式。
input, textarea, select, button { color: inherit; font: inherit; letter-spacing: inherit; }
不同的瀏覽器為表單元素和按鈕設置了不同的邊框樣式。我很不喜歡這些默認樣式,寧愿將它們設置為 1px solid gray。
input, textarea, button { border: 1px solid gray; }
我對按鈕做了一些調整:
將按鈕的 padding 設置為 0.75em 和 1em ,因為這看起來更符合我經驗中的合理默認值。
刪除了應用于按鈕的默認 border-radius 。
強制背景顏色是透明的
button { border-radius: 0; padding: 0.75em 1em; background-color: transparent; }
最后,我將 pointer-events: none 設置為按鈕內的元素。這主要用于 JavaScript 交互。
(當用戶點擊按鈕中的某些內容時,他們點擊的內容是 event.target ,而不是按鈕。如果按鈕內有 HTML 元素,這種風格可以更輕松地處理 click 事件)。
button * { pointer-events: none; }
媒體元素包括 img、 video、 object、 iframe 和 embed。我傾向于讓這些元素符合其容器的寬度。
I also set these elements to display: block because inline-block creates unwanted whitespace at the bottom of the element.
我還將這些元素設置為 display: block ,因為 inline-block 在元素的底部創建了不需要的空格。
embed, iframe, img, object, video { display: block; max-width: 100%; }表格
我很少使用表格,但有時它們可??能很有用。這是我的默認樣式:
table { table-layout: fixed; width: 100%; }
當元素具有 hidden 屬性時,應該從視圖中隱藏它們。 Normalize.css 已經為我們做了這件事。
[hidden] { display: none; }
這種風格的問題是它的特異性低。
我經常將 hidden 添加到用類設置的其他元素中。類的特異性高于屬性,并且 display: none 屬性不起作用。
這就是為什么我選擇用 !important 提高[hidden]的特異性。
[hidden] { display: none !important; }Noscript
如果一個組件需要 JavaScript 才能工作,我會添加一個 標簽讓用戶知道(如果他們已經禁用了JavaScript)。
這樣為 標記創建默認樣式:
/* noscript styles */ noscript { display: block; margin-bottom: 1em; margin-top: 1em; }總結
很多人對我提到的這些樣式風格感興趣。這個鏈接是我在 Github 的 CSS Resets 倉庫(https://github.com/zellwk/css...)。
本文首發微信公眾號:jingchengyideng 歡迎掃描二維碼關注公眾號,每天都給你推送新鮮的前端技術文章 歡迎繼續閱讀本專欄其它高贊文章:12個令人驚嘆的CSS實驗項目
世界頂級公司的前端面試都問些什么
CSS Flexbox 可視化手冊
過節很無聊?還是用 JavaScript 寫一個腦力小游戲吧!
從設計者的角度看 React
CSS粘性定位是怎樣工作的
一步步教你用HTML5 SVG實現動畫效果
程序員30歲前月薪達不到30K,該何去何從
7個開放式的前端面試題
React 教程:快速上手指南
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/116018.html
摘要:層疊樣式表二修訂版這是對作出的官方說明。速查表兩份表來自一份關于基礎特性,一份關于布局。核心第一篇一份來自的基礎參考指南簡寫速查表簡寫形式參考書使用層疊樣式表基礎指南,包含使用的好處介紹個方法快速寫成高質量的寫出高效的一些提示。 迄今為止,我已經收集了100多個精通CSS的資源,它們能讓你更好地掌握CSS技巧,使你的布局設計脫穎而出。 CSS3 資源 20個學習CSS3的有用資源 C...
摘要:通過面試者的答案可以得知他都知道哪些開發語言。這個問題的答案能夠知道求職者有沒有可靠的資源,這些資源在未來開展項目時可能會派上用場。對這個問題的誠實回答可以幫助面試官為求職者提供合適的團隊。 翻譯:瘋狂的技術宅原文:https://www.indeed.com/hire/i... 不管你是面試官還是求職者,里面的思路都能讓你獲益匪淺。 你用 CSS 多久了? 解析: 這個問題可以讓面...
摘要:按鈕樣式的正確方式如果你正在建立一個網站或一個應用,你可能會用到按鈕,也許看起來像按鈕的鏈接。這是我們想要做的事情可應用于鏈接或按鈕的按鈕樣式我們希望有選擇地應用它,因為我們的頁面中會有其他鏈接和按鈕樣式。 按鈕樣式的正確方式 如果你正在建立一個網站或一個web應用,你可能會用到按鈕,也許看起來像按鈕的鏈接。不管怎樣,讓這些正常展示是很重要的。 在本教程中,我們將為和元素以及一個自定義...
摘要:只是需要把要改變的屬性在重新重置一下,需要在媒體查詢中擁有自己的選擇器,但會招致額外的大量代碼,像下面這樣查看效果新方法下面讓我們來看如何使用變量來解決這個問題。 在創新的2018年已經過去,在2019年看看如何簡單做成響應性的網站 如果你未曾聽說過CSS變量,那么我告訴你,它就是CSS的一種新功能,可以讓你擁有在樣式表中使用變量的能力,這樣做時并不需要什么特別的設置呦。 從本質上講,...
摘要:只是需要把要改變的屬性在重新重置一下,需要在媒體查詢中擁有自己的選擇器,但會招致額外的大量代碼,像下面這樣查看效果新方法下面讓我們來看如何使用變量來解決這個問題。 在創新的2018年已經過去,在2019年看看如何簡單做成響應性的網站 如果你未曾聽說過CSS變量,那么我告訴你,它就是CSS的一種新功能,可以讓你擁有在樣式表中使用變量的能力,這樣做時并不需要什么特別的設置呦。 從本質上講,...
閱讀 6197·2021-11-22 15:32
閱讀 822·2021-11-11 16:54
閱讀 3162·2021-10-13 09:40
閱讀 2168·2021-09-03 10:35
閱讀 1830·2021-08-09 13:47
閱讀 1874·2019-08-30 15:55
閱讀 1938·2019-08-30 15:43
閱讀 2460·2019-08-29 17:06