首先無論你承不認可幹前端這一行除了沒 bug 還須要界面美觀度達到必定的值。不然是不可能讓你經過的,這篇文章不是講如何用 css 作酷炫的效果,好比實現個三角形、多邊形、土星的。這裏寫的都是最普通的經常使用的操做,例如如何快速重置默認樣式,如何實現文字最多隻有三行,超過三行省略顯示,這裏總結的是日常很是常見的操做可是比起設置元素的寬、高、顏色、字體又沒那麼好記憶。因而我幫你分門類別的記錄了一下
原始的 button 按鈕要重置挺麻煩的。洋洋灑灑的要設置好幾個屬性,就像下面這樣:css
button {
background: none;
border: none;
color: inherit;
font: inherit;
outline: none;
padding: 0;
}複製代碼
其實你只須要這樣就能夠(像平時用的特別多的 input textarea ):html
button { all: unset; }複製代碼
文本省略號是很是常見的需求,而省略號展現又一般分爲倆種狀況折行和不折行。不折行:前端
div {
white-space:nowrap;/* 規定文本是否折行 */
overflow: hidden;/* 規定超出內容寬度的元素隱藏 */
text-overflow: ellipsis;
/* 規定超出的內容文本省略號顯示,一般跟上面的屬性連用,由於沒有上面的屬性不會觸發超出規定的內容 */
}複製代碼
折行(能主動控制行數,這裏設置的超出 4 行顯示省略號):css3
div {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box; /* 將對象做爲彈性伸縮盒子模型顯示 */
-webkit-line-clamp: 4; /* 控制最多顯示幾行 */
-webkit-box-orient: vertical; /* 設置或檢索伸縮盒對象的子元素的排列方式 */
}複製代碼
默認:盒模型的寬高 = 內容寬 + padding + borderweb
一般咱們寫頁面的時候會直接固定好元素的寬高,後面纔會在接着設置 padding,border 這些細節。而後設置了 padding,border 以後發現元素尺寸發生了變化,這種狀況非常煩人,因此咱們須要下面的理想狀況↓瀏覽器
理想: 盒模型直接設置的寬爲最終寬,不會隨 padding,border 改變bash
box-sizing:border-box;複製代碼
首先要明確滾動條的組成分爲三個部分,滾動條容器 scrollbar, 滾筒條軌道 scrollbar-track,滾動條滑塊 scrollbar-thumb。然而我寫這篇文字的時候嘗試了一下軌道的內容能夠直接在容器設置,也就是沒有清晰的區分容器和軌道之間的區別,有知道的同窗還麻煩告知,謝謝。微信
div::-webkit-scrollbar {
/* 這裏的寬是指豎向滾動條的寬,高是指橫向滾動條的高*/
width: 16px;
height: 16px;
background: pink;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
background:
linear-gradient(red,orange);
}複製代碼
div:not(:last-child) /* 匹配非最後一個 div 元素的 div 元素 */複製代碼
div { width: 100px; padding: 0 10px; background: pink; margin-bottom: 10px; text-align-last:justify; /* 這是關鍵屬性 */}
<div>帳號</div><div>密碼設置</div><div>手機號</div>複製代碼
顯示圖片的時候會遇到這種問題,對面返回的圖片寬高比例是不同的。可是設置的容器大小是同樣的,這個時候須要讓圖片保持比例最大填充容器。佈局
object-fit:fill | contain | cover | none | scale-down複製代碼
具體的例子能夠看這個:codepen.io/pen/?&e…post
這些是使用場景特別多的不易記錄的技巧,若是想看更多的騷操做能夠看這篇文章:
佈局最經常使用的就是垂直居中,水平居中的實現。而後元素分爲塊狀元素和行內元素,所以致使實現的方式大有不一樣,因此我來幫你歸歸類
讓行內元素垂直居中對其你確定知道只要設置行高=包裹元素的高度,text-align=center便可。那若是是不一樣字體大小的行內元素放在同一個水平線上呢?
能夠很明顯看到大號字體是垂直居中了,小號字體並無垂直居中。要想居中內就要用到 vertical-align 屬性了。這個屬性用起來是有區別於正常的頂對齊,底對其的,講解這個不在本篇文章的範圍,不過我幫你找了倆片文章好讓你輕鬆理解。
上面的行內元素垂直居中的場景仍是蠻多的,像圖片跟文字組合。像字體圖表跟文字組成的按鈕,像付款的時候金額永遠標紅而且字號要大
1.將塊元素變爲行內元素,繼續沿用上文的方式進行垂直居中
2.變爲 flex 佈局。設置主軸和交叉軸垂直
align-items:center
justify-content:center
複製代碼
3.採用定位,這種方式多見於作一些提示框。而且一般都根據瀏覽器定位的比較多
position:absolute
top:50%
left:50%
transfrom:translate(-50%, -50%)複製代碼
專門寫垂直居中佈局的文章列舉的花樣是我這個的好幾倍,但我這邊不是爲了增長記憶負擔。只分析最長見得狀況,用最樸素的代碼實現最簡單的效果快速交付
自從 css3 出來以後涌現了大量簡單實用的技巧,界面開始加入的漸變、陰影、旋轉、動畫也愈來愈多。因此這些屬性不只僅要知道,還要更好的投入實戰當中。
線性漸變
/* 第一個參數倆種形式一種是角度另外一正是英文描述例如: to left, to right */
/* 語法, [] 中的內容爲一組, + 表明內容可以出現 1 - N 次 */
background: liner-gradient([angle]+, color-stop[, color-stop]+)
/* 舉例 */
background: linear-gradient(0deg, red, blue, ...)複製代碼
漸變當中最簡單的漸變,能夠設置多種顏色,顏色之間的漸變距離是等分的。須要注意的是漸變方向的問題。你能夠理解爲角度指向的方向就是定義最後顏色的方向。
重複線性漸變
/* 單位不只僅侷限於百分比,像素也是能夠的 */
background: repeating-linear-gradient(45deg, white, white 10%, black 10%, black 20%)複製代碼
能夠看出來它可以控制漸變的範圍,是 linear-gradient 的升級版。不加範圍效果跟 linear-gradient 是同樣的。而這個屬性使用的整個難度也都在範圍上。但其實你稍加註意一下這些規則就沒問題了。
徑向漸變
這個語法蠻複雜的,貼一下 MDN 上的語法
看懂這個須要注意幾個限定符和特殊字符(語法跟正則挺像)
background: radial-gradient(circle closest-corner at 50% 50%, red, blue, green);複製代碼
重複徑向漸變
/* 關鍵詞*/
repeating-radial-gradient複製代碼
跟重複徑向漸變差很少,就不過多敘述了
box-shadow:[inset] offset-x offset-y color [, [inset] x-shadow y-shadow color]+複製代碼
box-shadow: -10px 0 10px red,
10px 0 10px yellow,
0 -10px 10px blue,
0 10px 10px green;複製代碼
這篇文章給個人整體感受並不怎麼突出主題,除了上面的第一部分常用又記不住的 css 感受還能夠。剩下的並無太多心意,可是給本身定的每週一篇的目標又必須完成,因此只能先發表後期在完善了。廣大同窗若是有好的意見還請多多評論。有喜歡用微信看文章的能夠關注一波個人公衆號《點滴前端》