本系列文章,主要是圍繞css3屬性,實現咱們常見的各類效果,這些效果都是咱們實戰開發中常常能夠用到的效果:javascript
- 選用合適的鼠標光標
- 擴大點擊區域
- 經過陰影來弱化背景
- 經過模糊來弱化背景
- 滾動提示
平時開發中,咱們常常會這是鼠標光標的效果,那最長設置的就是cursor:pointer;表示可點擊的,那麼其實還有其餘一些咱們不經常使用,但卻很是有用的光標效果:css
- pointer: 可點擊
- not-allowed: 不容許點擊
- context-menu:表示元素有上下文菜單
- move: 表示元素能夠移動的時候
- help: 有幫助信息的時候
- copy: 好比:某一按鈕點擊會將文案複製到其餘地方或者剪切板的效果,就能夠設置爲copy
- none: 不顯示鼠標光標(某些不但願用戶操做的時候,該效果是可使用的)
如下是全部光標的效果:咱們只須要記住上面這些經常使用的效果便可。 css2.1內置光標效果: java
css3 內置光標效果:這也是咱們平時作頁面的時候,能夠優化的一點,儘量的擴大可點擊區域,這樣用戶更容易到底可點擊的區域。css3
例以下圖:咱們不要只給➕ 設置點擊 事件,而是給整個圓圈區域設置點擊事件。 瀏覽器
首先,咱們來看一下效果:bash
方案一:陰影部分用一層div包括,而且設置透明度,函數
/* 用於遮擋背景 */ position: fixed;
.overlay {
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,.8);
}
/* 須要吸引用戶注意的元素 */
.lightbox {
position: absolute; z-index: 1;
/* [其他樣式] */
}
複製代碼
方案二:用僞元素代替 外層的div佈局
.lightbox::before {
position: fixed; top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
background: rgba(0,0,0,.8);
}
複製代碼
缺點:僞元素沒法綁定獨立的javascript事件處理的回調函數。post
方案三:採用box-shadow字體
box-shadow: 0 0 0 999px rgba(0,0,0,.8); //此時陰影半徑必須設置的足夠大
或者
box-shadow: 0 0 0 50vmax rgba(0,0,0,.8); //將陰影半徑設置爲視口的寬高。
複製代碼
缺點:陰影也沒法綁定獨立的javascript事件處理的回調函數。
方案四:採用dialog的backdrop屬性
//設置dialog元素的::backdrop僞元素,
dialog::backdrop {
background: rgba(0, 0, 0, .8);
}
複製代碼
肯定:瀏覽器的兼容性有限
首先,來看一下咱們想要實現的效果:
代碼以下:
<main>Bacon Ipsum dolor sit amet...</main>
<dialog>
O HAI, I'm a dialog. Click on me to dismiss. </dialog> 複製代碼
main{
filter: blur(3px) contrast(.8) brightness(.8);
}
複製代碼
首先,咱們看一下效果:
思路講解: 首先,上下的陰影效果能夠經過設置radial-gradient實現,滾動到頂部或者底部的時候,陰影消失,能夠經過另外加一層白色陰影去覆蓋便可,而後經過backgroud-attachment控制陰影是否在滾動時顯示。代碼以下:
ul {
overflow: auto;
width: 20em;
height: 12em;
padding: .3em .5em;
border: 1px solid silver;
background: linear-gradient(white, white) 0 0 / 100% 50px,
radial-gradient(at top, rgba(0,0,0,.2), transparent 70%) 0 0/ 100% 15px,
linear-gradient(to top, white, white) bottom/ 100% 50px,
radial-gradient(at bottom, rgba(0,0,0,.2), transparent 70%) bottom/ 100% 15px;
background-repeat: no-repeat;
background-attachment: local, scroll, local, scroll;
}
複製代碼