css編碼技巧css
linear-gradient background-size 搭配使用////傾斜條紋使用repeating-lineat-gradient////靈活的同色繫條紋,background和background-image搭配使用
css3
(1)網格中的方格用background和background-image, background-size搭配使用,background-image中有多個line-gradient 以逗號分隔,搭配使用,/////
(2)相似於輔助線,background、background-image和background-size搭配使用
//////(3)波點 background和background-image, background-size、background-position 搭配使用,能夠利用兩個疊加造成更好看的/////
(4)棋盤,使用三角形拼接造成svg
background和background-image, background-size搭配使用, 蟬原則,根據質數設置background-size,函數
兩種方法
上述方法能夠衍生出「螞蟻行軍」
!!注意斜紋變虛線,理解background-position百分比的含義;佈局
頂部邊框裁切
字體
半橢圓
flex
四分之一橢圓
動畫
這種狀況內容也會被旋轉,不符合設計要求!
解決辦法: 使用僞元素編碼
菱形圖片:
使用強大的clip-path屬性,點對應的連線就是變換的圖形;spa
無弧形切角
弧形切角:
顏色比較突兀,爲了明顯,有點醜哈哈!
內聯svg與border-image方案:
以後補充,
裁切路徑方案: 使用clip-path()屬性;
鄰邊陰影
雙側陰影,以上陰影均利用四個值進行實現,而且能夠有多個陰影,以逗號分隔;
使用filter: drop-shadow() 裏面的參數和box-shadow同樣,只是沒有陰影尺寸和inset,且不能用逗號分開,filter: blur() grayscale() drop-shadow();濾鏡能夠串聯使用;
基於濾鏡的方式:filter: sepia(1) saturate(4) hue-rotate(295deg);能夠有動畫效果,
基於混合模式: mix-blendmode 能夠爲整個元素設置混合模式, background-blend-mode 能夠爲每層
背景單獨指定混合模式。 前者須要將圖片包裹在div中,向上包裹元素混合!後者須要將圖片做爲背景圖片,向下背景元素混合,且無動畫效果!
三種方法各有利弊!
使用僞元素和filter屬性完成
使用僞元素和漸變完成,
background-origin: content-box;
background-image: linear-gradient(rgba(0,0,0,.2) 50%,
transparent 0);三者結合使用,單位設置爲em,能夠使條紋寬度隨着文字大小的變化而變化
no-discretionary-ligatures
no-historical-ligatures; 使用此屬性解決問題
font-family: Ampersand;
src: local('Baskerville-Italic'),
local('GoudyOldStyleT-Italic'),
local('Palatino-Italic'),
local('BookAntiqua-Italic');
unicode-range: U+26;
}
h1 {
font-family: Ampersand, Helvetica, sans-serif;
}
background: linear-gradient(gray, gray) no-repeat;
background-size: 100% 1px;
background-position: 0 1.15em;
text-shadow: .05em 0 white, -.05em 0 white;
使用此方法生成下劃線
color: hsl(210, 13%, 30%);
text-shadow: 0 1px 1px hsla(0,0%,100%,.8);
空心字效果: 使用svg(推薦) 或者使用text-shadow
文字外發光效果:filter: blur() 或 text-shadow
文字凸起效果: 陰影逐漸加深,用mixin設置
環形文字: 利用svg
background: rgba(0, 0, 0, .8);
}
table-layout: fixed;
width: 100%;
}
/ 只有一個列表項時的樣式 /
}
開始的全部子元素。 舉例來講, :nth-child(n+4) 將會選中除了第1、 2、
三個子元素以外的全部子元素
padding: 1em;
padding: 1em calc(50% - 450px);
background: #333;
}三行代碼解決,calc()函數的用處真多!
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
} transfrom基於自身的寬高進行百分比計算
(2)基於視口單位,但有限,只能使用在視口中main {
width: 18em;
padding: 1em 1.5em;
margin: 50vh auto 0;
transform: translateY(-50%);
}
(3) 基於flexBox解決方案,很推薦,body {
display: flex;
min-height: 100vh;
margin: 0;
}
main {
margin: auto;
} flex和margin: auto;結合使用,而且上下和左右都會居中;;;或者使用main {
display: flex;
align-items: center;
justify-content: center;
width: 18em;
height: 10em;
} 此中運用了justify-content屬性和align-items屬性
# 第八章 過渡與動畫
未完,兩天後會更新徹底,有些地方也比較粗略,後期再看一遍的時候進行補全!