前端開發(fā)需要知道的 10 個 CSS 技巧
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
:前端開發(fā)需要知道的 10 個 CSS 技巧 個人覺得 CSS 是每個前端開發(fā)人員都必須掌握的基礎(chǔ),以完成相應的交互和終端設(shè)備的響應。在項目開發(fā)中,有些容易被忽略的小問題帶來項目后期的膠水代碼。本文總結(jié)一些項目開發(fā)中 CSS 的 10 個小技巧。 1. 使用相對單位通常我們在項目開發(fā)中,使用 絕對單位
相對單位
/* 不提倡 */.wrap { font-size: 14px; margin: 10px; line-height: 24px; }/* 建議 */.wrap { font-size: 1.2rem; margin: 0.5rem; line-height: 1.6em; }復制代碼 2. 代碼復用很多開發(fā)人員在談到 CSS 時都覺得代碼重復性很高,在項目開發(fā)中這不是一個好的做法。好在現(xiàn)在有 CSS 預處理器(sass/scss、less、stylus、Turbine),能夠讓我們可以更好的規(guī)劃 CSS 代碼,提高其復用性。 當然需要提高代碼復用,還是需要一定的 CSS 的基礎(chǔ),來設(shè)計好代碼結(jié)構(gòu),如下: /* 不提倡 */.container { background-color: #efefef; border-radius: 0.5rem; }.sidebar { background-color: #efefef; border-radius: 0.5rem; }/* 建議 */.container,.sidebar { background-color: #efefef; border-radius: 0.5rem; }復制代碼 3.CSS 重置每個瀏覽器都有自己的默認樣式,因此,當網(wǎng)頁不包含 CSS 時,瀏覽器會為文本添加一些基本的默認樣式、填充、邊距等。 可以通過使用通用選擇器 像這樣: * { padding: 0; margin: 0; box-sizing: border-box; font-family: Arial, Helvetica, sans-serif; }ul,li { list-style: none; }復制代碼
4. 不使用顏色名稱不要使用 為什么呢?因為當使用像 /* 不提倡 */.container { background-color: red; }/* 建議 */.container { background-color: #ff0000; }復制代碼 5. 使用簡寫屬性在 CSS 中,多用簡寫屬性,少用單獨屬性,具體哪些是簡寫屬性,哪些是單獨屬性,下面列舉一下常見的一些屬性,是以通常項目為原則。 簡寫屬性
單獨屬性
/* 不提倡 */.container { background-image: url(bg.png); background-repeat: no-repeat; background-position: center; }/* 建議 */.container { background: url(bg.png) no-repeat center; }復制代碼 6. 文本截取在項目開發(fā)中,有些列表只需要顯示一行文字,有些列表需要顯示固定函數(shù)的文字,過去通過字符截取的方式來實現(xiàn),但存在截取不統(tǒng)一(文本內(nèi)容不同英文、中文、標點符號等),再加上現(xiàn)在各種終端的適配,不足就被放大了。 現(xiàn)在最佳的方式是通過 CSS 來實現(xiàn),在文本最后增加省略號( 單行截取元素必須是 p { display: inline-block; max-width: 300px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }復制代碼 多行截取p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; /* 需要顯示的行數(shù) */ overflow: hidden; }復制代碼 7. 垂直居中垂直居中是一個很常見的需求,有很多實現(xiàn)方式,在伸縮容器內(nèi)的任何東西垂直居中: .flex-vertically-center { display: flex; align-items: center; }復制代碼
img { /* 只對block有效 */ display: inline-block; vertical-align: middle; }復制代碼 相對容器中垂直居中的絕對元素,下面代碼是 .container { position: relative; }.sub-container { position: absolute; top: 50%; transform: translateY(-50%); }復制代碼 8. 水平居中與垂直對齊類似,不過水平居中更容易一點。 塊居中 .block-element { display: block; margin: 0 auto; }復制代碼 內(nèi)聯(lián)或內(nèi)聯(lián)塊文本居中 .container { text-align: center; }復制代碼 在相對容器內(nèi)水平居中絕對元素: .container { position: relative; }.sub-container { position: absolute; top: 50%; transform: translateX(-50%); }復制代碼 flex 容器內(nèi)的任何內(nèi)容水平居中: .flex-vertically-center { display: flex; justify-content: center; }復制代碼 9. 設(shè)置下一個或上一個兄弟元素樣式對元素前面和后面的元素進行樣式設(shè)置,在項目開發(fā)中很有用。例如 10 個按鈕,當前按鈕下一個及下一個的兄弟元素設(shè)置不同的顏色。 html 代碼如下: <div> <button>1</button> <button>2</button> <button>3</button> <button>4</button> <button class="current">current</button> <button>+ button</button> <button>~ button</button> <button>~ button</button> <button>~ button</button> <button>~ button</button></div>復制代碼 css 代碼: .current ~ button { background-color: #000; color: #ffffff; }.current { background-color: #ff0000; }.current + button { background-color: #333; }復制代碼 效果如下: 接下來設(shè)置當前按鈕前面樣式,css 代碼如下: button { padding: 10px 15px; border: 1px solid #444444; font-size: 14px; background-color: #ff0000; color: #000; }.current { background-color: #000; color: #fff; }.current ~ button { background: initial; }.container { width: 1000px; margin: 50px auto; text-align: center; }復制代碼 效果如下: 10. 寬高比如果想讓盒子容器有一定的寬高比,如視頻播放器尺寸,可以用幾種方法來實現(xiàn),其中有一種方法最直觀??梢允褂?nbsp; 如下,創(chuàng)建一個 html 代碼: <div class="container"> <div class="box"></div></div>復制代碼 css 代碼: .container { width: 720px; }.box { padding-top: calc((9 / 16) * 100%); background: #efefef; }復制代碼 效果如下 還可以使用 .box::after { content: ""; display: block; padding-top: calc((9 / 16) * 100%); background: #eee; }復制代碼 上面的方案會導致里面所有的元素都必須向上移動或需要使用絕對定位。不過好消息是,CSS 增加了 aspect-ratio 為 box 容器規(guī)定了一個期待的縱橫比,這個縱橫比可以用來計算自動尺寸以及為其他布局函數(shù)服務。 該文章在 2023/10/28 10:59:53 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |