在過去的幾年中我們時常會聽見別人說“極簡風格(英: Minimalism)”這個詞,但這究竟是什麼,我們又該怎麼使用呢?這一次,就讓我們一起來看看極簡風格具體的使用方法與參考案例吧。 Continue reading
-
7個秘密,讓你設計出良好體驗的網頁表單!
表單是網頁設計中最常見的元素,幾乎每個網站都會包含一種甚至幾種不同類型的表單。從簡單的電子郵件蒐集和訂閱,到註冊、下單、購買,表單一直伴隨著網頁而存在。所以,設計出好看易用的表單是非常有必要的。 Continue reading
-
設計趨勢:創新懸停效應,你看過了嗎?
動效是如今UI設計中的重要組成部分,也是目前最熱門的設計趨勢之一。在之前的《在現代網頁設計中,動效有哪些常見的用法》這篇文章中,我們探討了動效對於交互和用戶的重要意義,動效在不同的環節發揮的作用越越來越大。而今天我們要聊的是光標懸停特效,這也是近年動效設計的熱點之一。 Continue reading
-
現在網頁設計中圖片有哪些常見的使用技巧?
圖片在網頁中所扮演的角色越來越重要。作為最常見也是最早使用的網頁多媒體,圖片對於網頁設計師而言至關重要。如何用好圖片已經成為了一項成熟、完善而又講究的技巧,而在高清屏幕無處不在的今天,稍有瑕疵的圖片都在高密度的像素下無所遁形,而不合理的圖片設計也不會逃過訪客的雙眼。 Continue reading
-
如何告訴用戶APP的隱藏手勢?這兒有3個技巧!
手勢操作,是通過手指輕微移動來讓用戶操作應用。觸屏界面提供了許多自然的手勢,比如點按、滑動、雙指縮放。但這些交互方式不像UI控件,通常對於用戶是不可見的。除非用戶事先了解手勢存在,否則他們並不會嘗試使用。 Continue reading
-
Flexible boxes更加優雅的Web佈局
在前端中實現居中是一件很頭疼的事情,尤其是實現垂直居中,之前看到一篇實現置中的七種方法,其中提到一種最簡單的方法就是使用transform ,需要5行代碼可以實現完全置中。
Flexible boxes可以解決什麼問題
完全居中
在前端中實現居中是一件很頭疼的事情,尤其是實現垂直居中,之前看到一篇實現置中的七種方法,其中提到一種最簡單的方法就是使用transform ,需要5行代碼可以實現完全置中。
下面看一下Flexible boxes實現置中:
.flex-container{ display:flex; justify-content: center; align-items: center; }
Flexible boxes只要3行代碼就可以實現置中。
等高的卡片式布局
在沒有用Flexible boxes之前很多卡片設計的網站都有這樣一個問題,由於卡片裡面的內容多少不同,而產生的不等高問題。
Flexible boxes簡單的實現等高列:
.flex-container{ display:flex; align-items: stretch; }
Flexible boxes實現的原理邏輯
display
dislpay:flex
使父容器表現為塊盒子display:inline-flex
使容器表現為行盒子
flex
flex
是flex-grow
,flex-shrink
,flex-basis
的縮寫形式。默認值是0 1 auto
。flex-basis
flex-basis:flex-basis
可以理解為我們給子元素設置的寬度。默認值是auto
,寬度設置為auto
時,盒子的寬度取決你們元素的寬度。flex-grow和flex-shrink
grow和shrink是一對雙胞胎,grow表示伸張因子,shrink表示是收縮因子。
grow在flex容器下的子元素的寬度和比容器和小的時候起作用。 grow定義了子元素的寬度增長因子,容器中除去子元素之和剩下的寬度會按照各個子元素的grow值進行平分加大各個子元素上。
公式:
計算容器還剩空間
available_space(容器还剩的空间)=container_size(容器宽度)-flex_item_total(子元素宽度之和)計算增長單位
grow_unit(增長單位)=available_space/flex_grow_total(子元素增長因子之和)得到子元素的宽度
flex-item-width(子元素计算得到的宽度)=flex-basis+grow-unit*flex-grow上面例子的計算
container-size=480px; flex-item-total=100*3=300px;flex-grow-total=3+2+1=6
available_space=480–300=180px;
grow_unit=180/6=30px;子元素1的寬度為:
flex_item_width1=100+3*30=190px;子元素2的寬度為:
flex_item_width1=100+2*30=160px;子元素3的寬度為:
flex_item_width1=100+30=130px;[codepen_embed height=”400″ theme_id=”0″ slug_hash=”ZLYJYQ” default_tab=”css,result” user=”frankbite”]See the Pen ZLYJYQ by frankbite (@frankbite) on CodePen.[/codepen_embed]
shrink則是在寬度和比容器寬度大時候,才有用。按照shrink的值減去相應大小得到子元素的值。
align-content
對單行和單列不起作用,多行時才有效,需設置
flex-direction:row
;flex-wrap:wrap
; 或者flex-flow:row-wrap
,對flex container中的行進行佈局排版。flex-start
:行填充到容器的開始。flex-bottom
:行填充到容器的結束。center
:行居中分佈space-between
:行平均分佈,第一行在容器開始,最後一行在容器結束。space-around
:行平均分佈,但行與行之間有空隙。
實例效果
[codepen_embed height=”400″ theme_id=”dark” slug_hash=”QdbXgm” default_tab=”css,result” user=”frankdo”]See the Pen <a href=’http://codepen.io/frankdo/pen/QdbXgm/’>QdbXgm</a> by frank (<a href=’http://codepen.io/frankdo’>@frankdo</a>) on <a href=’http://codepen.io’>CodePen</a>.[/codepen_embed]
align-items
用於當前行中的子元素進行對齊佈局。
flex-start
: 子元素的上邊緣對齊到行的上邊緣。
flex-end
: 子元素的上邊緣對齊到行的下邊緣。
center
: 以中軸線居中。
baseline
: 子元素的基線對齊。
stretch
:子元素拉伸至充滿容器。實例效果
[codepen_embed height=”400″ theme_id=”dark” slug_hash=”MJwMvP” default_tab=”html,result” user=”frankdo”]See the Pen <a href=’http://codepen.io/frankdo/pen/MJwMvP/’>MJwMvP</a> by frank (<a href=’http://codepen.io/frankdo’>@frankdo</a>) on <a href=’http://codepen.io’>CodePen</a>.[/codepen_embed]
justify-content
水平方向上佈局排版
flex-start
:子元素靠容器的左邊線對齊
flex-end
:子元素靠容器的右邊線對齊
center
: 子元素居中
space-between
: 子元素被平均分佈,第一子元素在容器最左邊,最後一個子元素在最右邊。
space-around
: 子元素平均分佈,但子元素與子元素之間有空隙。實例效果
[codepen_embed height=”400″ theme_id=”dark” slug_hash=”KapjXe” default_tab=”css,result” user=”frankdo”]See the Pen <a href=’http://codepen.io/frankdo/pen/KapjXe/’>KapjXe</a> by frank (<a href=’http://codepen.io/frankdo’>@frankdo</a>) on <a href=’http://codepen.io’>CodePen</a>.[/codepen_embed]
order
用來改變子元素之間的排列循序,默認值是0,值越小,越往前排。
Flexible boxes解決的一些問題。
優雅的實現響應式佈局。
[codepen_embed height=”400″ theme_id=”dark” slug_hash=”WRvqdz” default_tab=”css,result” user=”frankdo”]See the Pen <a href=’http://codepen.io/frankdo/pen/WRvqdz/’>WRvqdz</a> by frank (<a href=’http://codepen.io/frankdo’>@frankdo</a>) on <a href=’http://codepen.io’>CodePen</a>.[/codepen_embed]
frankbite-關注UI設計/前端/網頁,如果您喜歡我們的文章,歡迎 Follow 我們的 Facebook 專頁,我們將為您提供最新、最實用的資訊!
原文地址:w3cplus
-
網頁配色設計應用:綠色稚嫩
綠色是一種存在感極強的色彩,很多人都覺得綠色很難與其他色彩搭配,相對來說,它的配色顯得比較單一。我們曾經探討過橙色,由於橙色介於紅色和黃色之間,因此看上去有種曖昧感。而綠色雖然介於藍色與黃色之間,卻與橙色完全不同,綠色的存在感極強,和藍色黃色相近卻擁有完全不同的視覺感受。 Continue reading
-
等太久無聊嗎?用CSS實現的Loading特效!
在網頁等待的過程中,常會覺得無聊嗎?
有時候簡單的Loading特效,會讓網友更有耐心的等待網頁載入,
趁著這個機會不曉得大家是否有發現FrankBite有做些改變呢((笑~
那今天簡單的跟大夥兒分享, Continue reading
-
網頁配色設計應用:橙色曖昧
橙色是一種次級原色,它是紅色和黃色的合體。因此,它的性格中帶著紅色的熱情和黃色的暖意,但這種熱情加暖意的方式並不是簡單相加,而是有機結合後反而成就了橙色的曖昧中性的魅力。 Continue reading
-
視差滾動快速入門!我們用CSS來實現吧!
相信很多讀者,也覺得視差滾動的網頁很酷吧!常常會讓人不斷的往上又往下的滾哈~
這邊我會簡單的教大家,只單純用CSS實現簡單的視差滾動,篇幅不多,很適合入門。
有興趣的可以先從這篇開始,很有趣的,且容易入手,我們一起來看看吧! Continue reading