本教程將會告訴你如何用 Html 和 Css 實現卡片界面。教程會重點使用 Css filter 屬性處理圖片,以便給它添加一些過渡效果。css
在建立 HTML 代碼前,你首先應該想象它的結構。當你有一個好的模型時,應該第一時間把你想象的頁面結構或者你的 CSS 模塊及時地在紙上羅列出來。一個設計合理、結構良好的 HTML 頁面會讓你在接下來的工做過程當中變的一異常輕鬆。html
<a id="case-title" href=" http://www.loveo.cc/using-css-to-make-cards-ui.html"> 利用css製做卡片UI -- 墨丶水瓶 </a> <div class="card"> <a href="#."> <div class="card-image"> <img src="http://www.loveo.cc/wp-content/uploads/2017/02/card-image.jpg" alt="Orange" /> </div> <div class="card-body"> <div class="card-date"> <time> 20 Novembre 1992 </time> </div> <div class="card-title"> <h3> Lorem Ipsum </h3> </div> <div class="card-exceprt"> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam voluptatibus autem consectetur voluptate facere at, omnis ab optio placeat officiis! Animi modi harum enim quia veniam consectetur unde autem inventore. </p> </div> </div> </a> </div>
一旦確立了 Html 結構,接下來咱們將開始爲它編寫 Css 樣式。我將在下面分別貼出每一部分的 Css 代碼。post
.card字體
.card { width:400px; margin:0px auto; background-color:white; box-shadow:0px 5px 20px #999; } .card a { color:#333; text-decoration:none; } .card:hover .card-image img { width:160%; filter:grayscale(0); }
將 .card 設置爲固定大小。ui
居中方式爲 margin:0px auto;spa
爲了在稍暗的背景中便於區分,將塊元素設置爲白色。翻譯
增長了一個小陰影產生疊加效應。設計
定義元素 a 標籤的顏色與下劃線修飾。code
定義鼠標移上時放大元素並將濾鏡灰度設置爲「0」。orm
.card-image
.card-image { height:250px; position:relative; overflow:hidden; } .card-image img { width:150%; position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); filter:grayscale(1); transition-property:filter width; transition-duration:.3s; transition-timing-function:ease; }
固定塊元素的大小,其中包含咱們的圖片,這使咱們可以在知足尺寸要求的狀況下,任何圖片均可用於製做成卡片。
設置相對的定位方式,由於它裏面包含了絕對定位的元素。
定義內容溢出元素框時裁剪並隱藏。
咱們能夠根據須要在固定大小的100%基礎上增長圖像的默認大小,可是不要添加小於400px的圖像,也不要忘記遵照其寬度/高度比,以避免出現空白。
爲了將圖像在父元素中徹底顯示及將 .card-image 的中心做爲起點 ,咱們須要同時設置定位方式爲 absolute 。top 、left 爲50% , 而後能過 transform:translate(-50%, -50%) 設置位移,使 .card-image
的中心點做爲起點 。
定義元素爲 100% 灰度。
使元素在鼠標移上時在300毫秒內慢速開始,而後變快,而後慢速結束的過渡方式放大。
.card-body
.card-body { text-align:center; padding: 15px 20px; box-sizing: border-box; }
定義 .card-bady 元素的文本對齊方式爲居中對齊。
設置元素的內邊距。
元素 box-sizing 屬性值爲 border-box。
字體及其餘
.card-date { font-family: 'Source Sans Pro', sans-serif; } .card-title, .card-excerpt { font-family: 'Playfair Display', serif; } .card-date, .card-title { text-align:center; text-transform:uppercase; font-weight: bold; } .card-date, .card-excerpt { color: #777; }
博文連接:利用 Css 製做精美的卡片 UI
源碼連接:利用 Css 製做精美的卡片 UI
原文連接:Tutoriel - Réaliser une carte en CSS ( Card UI CSS )
翻譯:墨丶水瓶