提高CSS開發能力的技巧大全
1 使用:not()給導航條添加間隔線
我們通常使用如下代碼給導航條增加間隔線
/* add border */
li {
border-right: 1px solid #666;
}
/* remove border */
li:last-child {
border-right: none;
}
現在,我們可以使用:not()選擇符簡化操作,代碼簡潔易讀,不錯吧。
li:not(:last-child) {
border-right: 1px solid #666;
}
或者,我們增加左邊框。
li:first-child ~ li {
border-left: 1px solid #666;
}
2 給body元素增加Line-Height屬性
我們不需要給每個p、h1元素設置line-height,只需要給body元素設置,其他文本元素會自動繼承body的特性。
body {
line-height: 1;
}
3 任意元素垂直居中
不是黑魔法,確實可以讓任意元素垂直居中。
html, body {
height: 100%;
margin: 0;
}
body {
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-flex;
display: flex;
}
4 逗號分隔的.列表
讓html列表貌似現實中逗號分隔的列表
ul > li:not(:last-child)::after {
content: ",";
}
5 在nth-child中使用負數
在css的nth-child中使用負數選擇1~n條記錄。
li {
display: none;
}
/* select items 1 through 3 and display them */
li:nth-child(-n+3) {
display: block;
}
6 使用svg圖標
沒有理由不使用svg圖標,在大多數分辨率和瀏覽器裏能夠實現縮放,甚至兼容到IE9,所以不用再用.png、.gif等等。
{
background: url("");
}
7 文本顯示優化
一些字體不能再所有設備中最優展示,所以需要設置。
html {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
注意optimizeLegibility屬性值的使用問題,同時IE/Edge不支持text-rendering。
8 在Pure CSS Sliders中使用max-height
使用max-height實現隱藏、顯示的動畫。
er ul {
max-height: 0;
overlow: hidden;
}
er:hover ul {
max-height: 1000px;
transition: .3s ease;
}
參見本博《Auto值的CSS3 Transition解決方案》
9 初始化box-sizing
從html中繼承box-sizing屬性,這樣的話,後期維護比較方便。
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
10 表格單元格等寬
ndar {
table-layout: fixed;
}
11 使用Flexbox擺脱各種Margin Hacks
在實現側欄時,我們不再需要各種nth-、first-和last-child等設置margin,可以使用Flexbox輕鬆實現均勻分佈。
{
display: flex;
justify-content: space-between;
}
on {
flex-basis: 23%;
}
12 給空連接使用屬性選擇符
對於那些擁有href屬性但是內容為空的a,自動添加內容。
a[href^="http"]:empty::before {
content: attr(href);
}
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
-
ASP.NET 2.0 程序的基礎知識
成員關係的概念在人類社會中是一個層次比較低的概念,源於希望屬於某個羣組的意識。我們希望能覺得自己是某個團隊的一部分,讓別人知道我們是誰,因此Web搭上這個流行趨勢,採用這個概念只是時間早晚的問題。如果坐下來想一想曾經登錄過多少個站點並在這些站點上保存...
-
javascript包裝對象的用法
js對象是一種複合值:它是屬性或已命名值得集合。參考以下代碼:vars="helloworld";varlen=th;在該例子中,s是字符串,而字符串不是對象,但為何會有屬性呢?其實只要引用了字符串s的屬性,js就會將字符串通過調用newString(s)的方式轉換為對象,該對象繼承了字符串的方法,並被...
-
ASP 時間函數及獲取服務器時間的寫法
一、常用的ASP時間函數1、now()獲取當前系統日期和時間,ASP輸出格式:<%=now()%>2、Year(now())獲取年份,ASP輸出格式:<%=year(now())%>3、Month(now())獲取當前月份,ASP輸出格式:<%=month(now())%>4、day(now())獲取當天數,ASP輸出格式:<%=day(now())%>5、hour(now())...